
2026/10/28 22:25
エマックスが誕生から50周年を迎える
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
本稿は、1946 年の手動によるハードウェア設定(例:ENIAC のスイッチの設定)から始まるコンピュータプログラミングの進化を追跡し、MIT における紙テープや穿孔カードを伴う初期のソフトウェア開発へと続きます。1960 年代には TECO(Dan Murphy が作成)のような対話形式の行エディタが登場し、テレタイプ端末上でコマンドを 1 行ずつ入力することを可能にしました。現代的な編集機能への重要な一歩として、1970 年代に登場したのが Carl Mikkelsen の TECO アドオン「Control-R」(1971 年)です。このツールは「ガラステレタイプ」端末に変更を表示しましたが、表示される行数はわずかでした。Richard Stallman は後から、スタンフォード大学でフルスクリーンのエディタ E を見聞きし、それを MIT に持ち帰り、Control-R を改善しました。その際、すべてのキーをカスタマイズ可能なマクロとして設定しました。Guy Steele Jr. が 1976 年から 1977 年に仲介した合意に基づき、該ツールは「EMACS」(Editor Macros)として標準化され、以前互換性のないバリエーションに悩まされていたユーザー間の断片化問題に対処しました。Bernard Greenberg は、Control-R が扱いにくい一方で、EMACS は不慣れなユーザーが編集を素早く習得することを可能にしたと指摘しています。Stallman は 1981 年に GNU Emacs を改良し、貢献者が改善点を共有することを条件に無償で配布するようになりました。この動きは、Mac OS X(当初 EMACS を搭載し、現在は隠れたキーコンビネーションによってレガシーな EMACS コマンドサポートを維持している)などオープンソースの標準に影響を与えました。商用版も存在しました:Honeywell は Greenberg の Multics バージョンを商品化し、James Gosling は Java 開発を主導する前に商用の EMACS を販売しました。現在、GNU Emacs は Linux およびその他の Unix システム上で継続的に使用されています。一方、Apple は 2019 年にフルバージョンの供給を停止しましたが(「mg」を維持)、元の Meta キー機能を Control-Option コービネーションで隠れたサポートとして保持しています。
本文
プログラミング体験の変遷と EMACS の歴史
プログラミングの進化
プログラミングの体験は現在と一昔前では全く異なり、以下の段階を経て発展しました。
- 物理的配線時代(1946 年):ペンシルベニア大学の ENIAC で、六人の女性がスイッチやケーブル、プラグボードを物理的に配線して作業を行いました。
- 紙テープと穴あきカードの登場:数年後には MIT のエンジニアたちが紙テープや穴あきカードを利用してコードを入力し、「ストレージ・プログラミング」方式を実現しました(Whirlwind)。
- ラインエディタの導入(1960 年代初頭):テレタイプ端末を使用するプログラマたちは「ラインエディタ」というツールを使い、大規模なキーボード兼プリンターにコードを入力できるようになりました。
- 当時はフルスクリーンテキストエディタ(ディスプレイ上で複数行の同時表示・編集)は存在しませんでした。
- EMACS の出現:現在でも広く利用されている初期ツールの一つである EMACS は、今年で50 周年を迎えています。
EMACS のルーツと技術的進化
EMACS は強力な核となる概念を持っており、多数の OS 向けに書き換えられました(Mac OS X などにも含まれる)。その起源は以下の経緯にあります。
- TECO テキストエディタ(1962 年):MIT の PDP-1 コンピューター向けに Dan Murphy が作成しました。
- コマンドは大文字アルファベットで表され、例として
で挿入、I
で削除を行いました。D - 保存媒体がテープからディスクへ移行するにつれ、名称の「T」は**Text(テキスト)**の意味に転じました。
- ユーザー自身によるコマンド作成(マクロ)機能を備え、完全な言語へと進化しました。
- コマンドは大文字アルファベットで表され、例として
- Control-R の改良(1971 年):Carl Mikkelsen が TECO の拡張プログラムを作成。
- 「グラステレタイプ」ターミナルで編集内容を即座に画面表示し、再印刷不要となりました。
- 欠点:表示できるコード行数が限られていました。
初期の評価と社会的背景
「経験豊かで洗練されたユーザーにとって、EMACS は以前任何形式的のエディタよりもはるかに使いやすかった。」 — Bernard S. Greenberg, SM '74
- 初心者にも親和性:技術的知識がなくても数分〜一時間でメールやプログラムの編集が可能でした。
- 上級者への適合:上記引用のように、高度なユーザーには以前のエディタよりも使いやすかったと評価されています。
標準化への歩み:EMACS の命名まで
1976 年、Richard M. Stallman は Stanford の「E」というフルスクリーンエディタに触発され、Control-R の改良を本格化させました。
- 根本的な構造変更:各キー押下ごとに独自のマクロを実行するようにし、大幅なカスタマイズが可能になりました。
- コミュニティの動き:研究所内のハッカーたちはコマンドを変更・追加するようになり、Guy Steele Jr. は「標準的なコマンドセット」への合意形成を課題としました。
- 標準化の実現:Stallman と David Moon が Meta キーを活用し、Meta-F(進め)や Meta-B(戻す)などの統一された設定を行いました。
- 結果として生まれたツールは「EMACS」と名付けられました。
- 名称由来:Editor Macros または Editing Macros の頭文字です。
「私の目標は優れた新しいテキストエディタを構築することではありませんでした」と Steele は述べています。「私が取り組んでいたのは社会的な問題でした。」
コミュニティとフリーソフトウェアへの展開
Stallman は EMACS を無料で配布し始め、以下の理念を広めました。
- 共有の精神:「EMACS は一切費用を要しません」。
- 参加条件:ユーザーが EMACS のあらゆる改良点を送り返すこと。
- 商用化との対比:Honeywell が Multics 向けに独自バージョンを開発・販売しましたが、Stallman とコミュニティは「無料から有料への移行」を避けようとしませんでした。
GNU プロジェクトの誕生
この「自由な共有」は Stallman の以下のプロジェクトへと繋がりました。
- Bell Labs の Unix への対抗:無料で自由に共有・改善できる OS を創出するため、「GNU プロジェクト」(GNU's Not Unix)を立ち上げました。
- 最初の主要アプリ:GNU Emacs が登場しました。
- 当初は Unix 上で動作(現在の Linux など存在しない時期)。
- やがて Linux や多数の Unix ベースシステム、Apple の Mac OS X でも動作可能となりました。
- Apple は 2001 年の初版発表時に GNU Emacs を包含していましたが、2019 年に出荷を停止しました。
現代における EMACS と代替品
現在では macOS などには完全な GNU Emacs が含まれていませんが、EMACS の精神と機能は残されています。
- Apple の代替策「mg」:
- 名:mg (Micro GNU Emacs)
- 特徴:EMACS の大多数のコマンドをサポートするが、統合プログラミング言語が欠けているため「代替的な EMACS」と呼ばれています。
- 隠れたサポートの残存:
- キーボードに Meta キーがない場合でも、以下の組み合わせで動作します。
Control-Option-B # カーソルを一単語分戻す Control-Option-F # カーソルを一単語分進める
- キーボードに Meta キーがない場合でも、以下の組み合わせで動作します。
これらは EMACS が単なるエディタツールではなく、フリーソフトウェア運動と GNU/Linux オペレーティングシステムの誕生に大きく寄与してきた歴史的事実を示しています。