Emacsは生き続けるさ

サンがJava FXの実例をデモ − @IT

あえて釣られてみる。

Emacsは消滅すべきとは思わないな。すべての面でEmacsより優れた次世代テキストエディタはでてないんじゃないか。統合開発環境は好きな人は好きだろうけど、統合開発環境で通常のテキストファイルの編集は快適にできるのか?よくわからんけど。

Emacsはたしかに古い。だが慣れ親しんだ環境は捨てられない。Emacsを12年も使っていたらもう手の延長線上にある。膨大なelisp.emacsの蓄積がある。今更他のエディタには乗り換えられない。新しいものは歴史がないからノウハウがたまっていない。Emacsでできたことができないなんてことはザラだろ。だいたい乗り換えるとしたら、エディタの習得コスト、設定言語の習得コスト、設定の手間とかで何ヶ月かかると思ってんの。

ムーアの法則が15回も適用できる今だからこそ亀のように遅いelispでもある程度富豪的なことができるんだよね。それのひとつがanything.el。昔だったらあんな芸当できなかったはずだ。Emacsが今でも生き続けている理由としたら、やっぱりelispじゃないかな。腐ってもLispだからいろんな方向に拡張できるしね。

Emacsはこれからもずっと生きつづける。いいものは時がたっても残るんだよ、愛されつづけるんだよ。今なんてニンテンドーDSスーパーマリオが流行ってるだろ。スーパーマリオなんて23年前のゲームだぜ?今のマリオの原形であろうマリオ3は20年前だ。いいものはいつの時代でも欲しがられる。

だけどelispは進化すべきだな、あれは今でも遅すぎる。ムーアの法則で計算機の性能は向上したけど、扱うデータも増えている。だからもっと速くならないとだめ。遅すぎる最大の原因は、時代遅れなダイナミックスコープじゃなくてC言語で書かれたprimitiveが少なすぎることだろう。もっともっとprimitiveを増やさないとだめだ。split-stringがelispで書かれているのを知って愕然としたけど、基本的な処理はC言語で書かないとな。

compilation-modeでめちゃ長い行を出力したらfont-lockで何分も固まることがある。そのとき、elispって遅いんだなと実感する。それともfont-lockのアルゴリズムとデータ構造がまずいのか?なんとかしろよ。

あと、パッチはあるもののデフォルトでdynamic linkをサポートしていないから事実上拡張ライブラリが作れないのはとても痛い。rubyとかなら拡張ライブラリでやるような処理をクソ遅いelispで書かないといけないのは哀れでしかない。

そういやゴスリングって昔rmsとうまくいかなかったんだよね、たしか。だからあんなこと言ってるんだろう。発言の裏を読むとそんなところかと。