高い拡張性を持つテキストエディタ「Emacs」。
vi/Vimとならび2大テキストエディタと評されることもありますが、長い歴史を持つソフトウェアなだけに設計が古いと批判される事もあるようです。
今回、このEmacsの精神的後継者が「VS Code」であるかどうかについて、ハッカーのVivek Haldar氏が持論を展開しています。
同氏は、Pythonを開発したGuido von Rossum氏がポッドキャストで「私にとってある意味、VS CodeはEmacsの精神的後継者だ」と発言したのに驚かされたと記事を書いたきっかけを説明しています。
Guido van Rossum氏の主張は以下の通りです。
The key part of Emacs is that it’s mostly written in Lisp … There’s a core implementation that can read the file, put bits on the screen, and manage memory and buffers. Then, what makes it an editor full of features is all the lisp packages and, of course, the design of how the lisp packages interact with each other and with that base layer of the core immutable engine.
Emacsの重要な点は、ほとんどがLispで書かれていることです。ファイルを読み、画面にビットを表示し、メモリとバッファを管理できるコア実装があります。そして、Emacsを機能満載のエディタにしているのは、すべてのLispパッケージと、もちろん、Lispパッケージが互いに、そしてコアとなる不変のエンジンのベースレイヤーとどのように相互作用するかの設計なのです。
… almost everything in that core engine in Emacs’ case, can still be overridden or replaced. And so, VS Code has a similar architecture, where there is like a base engine … and it has a sort of a package manager and a whole series of interfaces for packages and an additional series of conventions for how packages should interact with the lower layers and with each other.
Emacsの場合、そのコアエンジンのほとんどすべてが、上書きや置き換えが可能なのです。VS Codeも同じようなアーキテクチャで、ベースエンジンがあって......パッケージマネージャのようなものがあって、パッケージのための一連のインタフェースと、パッケージが下位層や互いにどう作用すべきかという追加の一連の規則があります。
…. And so, the sort of extreme extensibility and the package ecosystem that you see in VS Code is a mirror of very similar architectural features in Emacs.
....VS Codeに見られるような極端な拡張性とパッケージのエコシステムは、Emacsの非常によく似たアーキテクチャの特徴を映し出しているのです。
VS Codeのアーキテクチャは、ほとんどのコアエンジンが上書き・置き換え可能なEmacsと同じで、拡張性の高さやパッケージのエコシステムも似ているとの主張です。
ブログを書いたVivek Haldar氏は、VS CodeがEmacsがコアとなる言語ランタイムの上にほとんどの機能が構築されているという点で、似たようなアーキテクチャである事には同意するものの、コア言語がEmacsはLispで、VS CodeはJavaScriptであるという点が、非常に異なっていると説明しています。
同氏によると、Emacsの核となるのは、Emacs上のどこででもEmacs Lispの式を書いて評価することで動作を変更することができる「バリアレス・エクステンション」と、すべてのテキストがバッファの中にある「すべてはバッファである」という2つの原理で、これによって無限の力が生まれているとのこと。
VS Codeはこの2つの考え方が欠けおり、VS CodeがEmacsの精神的後継者とは思えないと結論づけています。
Hacker Newsでもこの記事に関する議論が行われていますので、興味を持った方は確認する事をおすすめします。