Emacsを多用している理由

投稿日:

id:sugyanさんと飲みながらお話してたんだけど。
「Javaの開発だったら、Emacs使うよりもEclipse使う方がよくないですか?」
的な話。

んで、僕は当然「IDE嫌い。Emacsでここまでできるもん」的な反論をしたんですが、帰りの電車で考えてみると、Emacsでなんでもやってしまおう的な発想を持つようになったのがwebサイトの運用にずっと携わってきたからだということに気付いた。

例えばSIerさんのようなところや開発会社さんなどは、納期までにプロダクトを納品することで「開発」が終わる。僕も今の会社に転職する直前は開発会社に勤務していたので、そのためのツールとして、EclipseのようなIDEが非常に有効だという認識はある。
生産性も上がるし、何よりもチーム作業がとても効率的にできる。


一方で僕が今の所属会社でここ数年携わってきた業務は開発して納品したら終わり、というのはほとんど無くて、逆に複数のインターネットサービス(WEBコンテンツ)を複数年に渡って「運用」し続けるという仕事がメインだったし、多分これから先もそれは変わらない。
そうなると本番で稼動しているサーバーは勿論のこと、(所謂)ステージング環境やテスト環境にリモートログインして作業する時間の方が「開発」の時間よりも長くなる。

バリバリとスクラッチからコードを書き続けるのではなく、問題点を洗いだしてピンポイントで即座に修正する、という作業。
あるいは既存のソースコードを読み解いて、必要な箇所に修正&加筆していくという作業。

なので、EclipseなどのIDEを使わないとコード編集できないという状態では、逆に生産性が下がるのでEmacsやviのように「telnetでログインしたサーバー上で稼動するエディタ」への依存率が高くなる。

あってはいけないことだけどサービスが何らかのバグで停止しているなら、それは1秒でも早く復旧させないとビジネス的に機会損失になるし、お客様に迷惑をかける。

そういう土壇場作業をviでこなすhackerもいるし(同僚でもそういう人いたなぁ)たまたま僕はそれがemacsだったというだけ、かなぁ。。と。
emacs-lispは使いこなせてはいないけど、「本番反映hook」とかをちょこちょこっと書ける柔軟性は気に入ってる。
後輩や部下にも「とにかくコンソールでCUIベースで何でもできるようになっておけ」と良く説教してたなぁ。。

棲み分け? うーん。。 使い分け?ができると一番幸せなのかもしれない。ツブシがきく、という点で。

そんな感じ。