7月25日、EmacsやLispに関するブログ「Emacs, Lisp and related technical subjects」は「1976年におけるEmacsの起源について(On the Origin of Emacs in 1976 (Emacs blog articles))」という記事を公開した。このブログ記事では、1976年にMIT AIラボで開発されたEmacsの起源について詳しく紹介されている。
本記事は、以下のエキスパートの皆様に監修していただきました:
tadsan(Emacs Lisper)
Emacsの開発の背景
Emacsは1976年にMIT AIラボで開発されたエディタである。
前身となったTECOというエディタに対して、どんどん開発されるマクロを集め、リチャード・ストールマン(RMS)が作り上げたシステムが、Editing MACroSやE with MACroSを意味するEMACSと呼ばれることになったのが始まりだと言われている。
しかし実際には、その起源については議論も多い。Wikipediaには以下の記述がある。
原典であるEMACSは1972年にCarl Mikkelson、デイビット・A・ムーン、およびガイ・L・スティール・ジュニアらによりTECOエディタ用のEditor MACroSのセットとして書かれたものであり、TECOマクロエディタの概念に触発されている。
ここに記されているように、ムーンとガイ・スティールがTECO Emacsの原作者であるという意見と、自分がEmacsの作者だとするストールマンの主張には、一見矛盾がある。しかし、これらの矛盾したように見える主張は、実は両立する — ガイ・スティール氏もTECO Emacsの開発の大部分はストールマンの仕事だと認めているためだ。
例えば、故 Dan Weinreb 氏のブログで議論され、archive.org によって保存された興味深いスレッドがある。最終的に、ガイ・スティール氏が (印刷された電子メールの形で) 彼の記録を引っぱりだしたことで、1976年初頭のEmacsに関する、歴史的に興味深い内容を参照できるようになった。
主な結論
ガイ・スティール氏によると、1976年末からその後、リチャード・ストールマン(RMS)がEmacsの開発作業の大部分を担当していたが、それは一夜にして行われたものではなかった。最初の数週間、少なくともGLS(ガイ・スティール)、MOON(デビッド・ムーン)、JLK(ジョン・クルプ)などの他のメンバーから実装の支援を受けていた。また、設計やデバッグの面でもこれらのメンバーやその他の人々(DLW、EAK、ED)から支援を受けていた。
メールの内容から見る開発の詳細
以下に、当時のメールの内容を引用して、どのようにしてEmacsが開発されたかを眺めてみる(以下は本記事の著者によるいくつかの抜粋)。
1976年10月23日のRMSからGLSへのメールには、次のように記されている。
I HAVE HACKED ?MACS A LOT. IT NOW HAS
AN IMPROVED LOADER MACRO AND SUITABLE PURIFY MACRO.
THE PURIFY MACRO HAS BEEN DEBUGGED, AND WINS;
I HAVEN’T TESTED THE LOADER ON THE RESULT THOUGH.
参考訳:
「?MACSをかなりハックした。現在、改良されたローダーマクロと適切なピュリファイマクロがある。ピュリファイマクロはデバッグされ、成功している。ただし、結果としてのローダーはまだテストしていない。」
この時点で、新しい統合されたTECOマクロセットは「?」と呼ばれており、RMSがその主要なハッカーとしての役割を果たしていたことがわかる。
1976年10月31日のRMSからGLSへのメールでは、次のように述べられている。
I MOVED ?VARS INTO ?MACS
UNDER THE NAME ^^ VARIABLES (THAT’S 2 UPARROWS).
I PARTIALLY DEBUGGED IT; READING AND WRITING WORK BUT
NOT PUSHING AND POPPING.
TO GET A ?, DO :XT ?;
THEN DO MMLIST COMMANDS$$ AND MMLIST REDEFINITIONS$$.
参考訳:
「?VARSを?MACSに移し、名前を^^ VARIABLES(二つの上矢印)とした。一部デバッグした;読み書きはできるが、プッシュとポップはできない。?を得るには、:XT ?を実行;次にMMLIST COMMANDS$$とMMLIST REDEFINITIONS$$を実行する。」
このメールから、RMSがプロジェクトの統合とデバッグを進めていたことがわかる。
1976年11月10日のRMSからのメールでは、名前の変更について議論されている。
Unless anyone can think of a better idea, I think we should
rename ? to E.
参考訳:
「他に良いアイデアがなければ、?をEに改名すべきだと思う。」
この提案に対して、DLWが次のように応じている。
Another idea is to call it formally “QMARK” with a link
existing for “QM”.
参考訳:
「別の案としては、“QMARK”と正式に呼び、それに“QM”のリンクを設けるというものがある。」
こうした議論を経て、結局RMSの提案が採用され、最終的に「E」と「EMACS」という名前が採用された経緯が明らかになっている。
まとめ
ガイ・スティール氏は、RMSの功績は完全に認めながらも(「99%、99.9%、99.99%、99.999% の功績がある」と述べている)、彼を支えた初期のコミュニティの努力もまた重要であり、その功績を認めるべきであるとまとめている。
詳細はOn the Origin of Emacs in 1976 (Emacs blog articles)を参照していただきたい。