風になりたい奴だけがEmacsを使えばいい 2020
2020-09-26T14:58:12+0900
先日、Emacsに一生入門できねえ2020という記事を目にした。
確かにEmacsは難しい。まったくもって増田の言う通りだ。うんうんと頷きながら、過去に自分が書いた「風になりたい奴だけが Emacs を使えばいい。」という記事が脳裏に浮かんだ。
10年間の出来事 #
僕が「風になりたい奴だけがEmacsを使えばいい」と言った記事は2010年9月4日に投稿されていて、あれから実に10年の月日が経過していた。とても懐しい。
振り返ればこの10年間でエディタの世界は大きく変わった。次世代エディタを銘打ったAtomが誕生し、エディタにおける表現の限界をぶち壊した。そして後続で登場したVSCodeが一気にシェアを奪い、一瞬でトップシェアの座に立ってしまった。予想しなかった未来があった。
一方、Emacsはどうなったかと言えば、メジャーバージョンが23から27になった。しかし、起動したてのEmacsはまるで時が止まっているかのように見た目に変化がなく、表面からのぞかせるEmacsの顔は驚くほど何も変化していなかった。
2010年10月のEmacs | 2020年9月のEmacs |
---|---|
Emacsは荒木飛呂彦 #
この10年、見た目がまったく変化していないEmacsをどう捉えれば良いのか考えてみて、荒木飛呂彦と同じと捉えれば良いことが分かった。
荒木飛呂彦先生の比較表2020年版を作りました pic.twitter.com/ADUBHF0r6W
— 男爵芋 (@Japerrin_1838) February 15, 2020
荒木飛呂彦先生(荒木飛呂彦と入力すると吸血鬼がサジェストされる)もまた10年間まるで時が止まっているかのように見た目の変化がないことが分かる。
つまり、Emacsは荒木飛呂彦であり、吸血鬼であり、石仮面をかぶって「人間を止めるぞ!ジョジョーーッ!!」といって、永遠の若さを手に入れていたのである。もしかすると、すでにエイジャの赤石を使って究極生命体になっていてもおかしくはない。
Emacsはハッカーのためのエディタ #
話を元に戻そう。Emacsがなぜ難しいのかだ。
端的に言えば、Emacsはリチャード・ストールマン(RMS)が作ったハッカーのためのエディタだからに他ならない。ハッカーのハッカーによるハッカーのためのエディタなのだ。
Emacsを使っているハッカーと言えば、ドナルド・クヌース(Donald Knuth)、グイド・ヴァン・ロッサム(Guido van Rossum)、まつもとゆきひろ(Matz)、スティーブ・イエギ(Steve Yegge)など、早々たるメンバーが顔を揃えている。それを聞いて、「じゃあ俺も」と憧れを抱くのは自然な流れだと言える。
しかし、グイドは「Emacsは新しいエンジニアには本当にオススメしない(つまり使うな)」と言っていて、その理由として「It just exists for old brain compatibility.(古い頭脳との互換性のために存在している)」と述べている。
Really I don't recommend Emacs to new developers. It just exists for old brain compatibility.
— Guido van Rossum (@gvanrossum) July 22, 2016
この理由がEmacsがなぜ難しいのかの問いに答えるすべての鍵だ。
古い頭脳との互換性 #
「古い頭脳との互換性」とはどういう意味だろうか。
あくまで主観による解釈になるが、例えば今日において、一般的なプログラマは何種類の文字コードを扱っているのだろうか。おそらく、90%以上の人が1種類(そしてUTF-8)だけの文字コードで事足りていると思われる。
しかし、Emacsで扱える文字コードが何種類あるかと言えば、実に200種類以上ある。
2010年以降に登場したエディタで、200種類の文字コードをサポートするエディタが現れることおそらくないだろう。なぜならその必要がないからだ。だが、Emacsはおそらく今後もこれらの文字コードをサポートし続けるだろう。
片や、EmacsはLSPといった近代的なエディタのテクノロジーもサポートしている。つまり、Emacsは過去40年間受け継がれてきた技術資産と、新たに生まれてくる技術を同時に取り込みながら進化し続けているのである。
そのため、過去につちかった技術を持つ者も、Emacsを使い続けているかぎり、それらを捨てることなく今後も開発を続けることができるし、新しい技術と組み合わせながら開発することも可能なのである。これが古い頭脳との互換性なのだ。
風になりたい奴だけがEmacsを使えばいい #
Emacsはフリーソフトウェアであり、誰もが自由にエディタを選ぶ権利がある。だから、使いたい人だけがEmacsを使えばいい。
ただし、人がエディタを選ぶように、Emacsも人を選ぶ。かつて、自分はEmacsをレーシングマシンに例えたが、いまもその考えは変わっていない。モンスターマシンであるEmacsを乗りこなすにはどうしても訓練が必要になる。
エディタを使うために訓練が必要なんてバカバカしいと思う人がいるのも当然だ。いまは過去と違い豊富な選択肢があるのだから、その選択肢の中から自分にあったエディタを自由に選べばいいのである。
もし、あなたがやりたいことが少しばかり特殊で、それをエディタを使ったワークフローに落とし込みたいときは、Emacsの門戸を叩いてみるといい。おそらくEmacsはそれを受け入れ、あなたの望みを叶えてくれるはずだ。しかし、そのためには、マシンを華麗に乗りこなすための訓練を要することを忘れないで欲しい。
まとめ #
最新の技術のみを必要とする人にとって、Emacsの持つ古い頭脳との互換性は、はっきり言って役に立たない。そればかりか、情報量が多過ぎて逆に足枷になってしまう。
ただ、過去につちかった技術をいまも必要としていたり、これから古い頭脳に触れたいと思う人にとっては、古い頭脳との互換性を持たない近代的なエディタよりも、Emacsを使う方が圧倒的に快適なはずだ。
古い頭脳も悪いものばかりではない。新しい技術は古い技術の上で成り立っているものが多く、新しいものをから学び始めた人も、深掘りし続けていればいつか古い技術に辿りつく。そのとき、選択肢としてEmacsが最適であれば入門してみればいいだけのことなのである。
幸いにも、Emacsの開発はまだまだ衰えていない。だから、あなたの学びの交差路にEmacsが現れる日がくるとき、Emacsは元気よく「こんにちは」とあなたを出迎えてくれるだろう。