vimユーザがemacsに改宗した過程

http://bradbeveridge.wordpress.com/2007/06/21/how-a-vim-user-converts-to-emacs/

emacsユーザは明かに狂気の異端者でvimが真実だと何年も信じていた。しかしある時ダークサイドに捕まってしまった。」

CプログラマLISPに関心を持ち、slimeデバッガーを使いたいと思うようになった。生粋のvim派なのでemacsでslimeするという発想は無く、vimにsimeを移植するためのSlim-Vimとうプロジェクトに貢献した。エミュレートするターゲットの本物のslimeを知るためviper(emacs上のviモード)でemacsを使い始めた。

Slim-Vimの開発はvimの拡張性限界にぶつかり頭打ちに。一方、viperをカスタマイズしているうちに「lisper達が言っていることが分った」。 Viperを変更し、瞬時にテストし、瞬時に反映させる。求めていたオープンシステムは目の前にあったのだ。

(ここでいう「オープンシステム」はオープンソースの意味ではなく実行中のプログラムを変更できるという意味だろう。 C言語などは走らせているプログラムをいじって変更することはできない。コンパイル(実行開始)したら変更に 対して閉じられるのでクローズ。一方、稼働中のプログラムのソースを変更できるシステムは、いつでも変更の扉が開いているのでオープンということだろう)

オープンシステムの良さを伝えるのは難しい。自分で体験しないと理解できないだろう。

「私はVim狂信者だった。Vimでもこのようなことは全てできるという者がいるだろう。それはそうかもしれない。しかし同じ感触じゃない。オープンで柔軟でダイナミックなシステムを知りたかったらEmacsを使ってEmacs LISPを書いてみるべし。私を信じなさい。戻ることはないでしょう」



このようなソフトウエアが指の延長になったような一体感を与えてくれる体験はランタイムと開発環境が同一なsmalltalklispなどのシステムでないと得られないようだ。その中でもemacsが一番手軽なものなのかもしれない。確かに他の言語では得られない感覚をelispハッキングで体験したことがある。