ハッカーといっても一枚岩ではありません。いろいろな趣味、いろいろな文化のハッカーが存在します。そして彼らは、自分の意見や文化についてしばしば論争を起こします。今回は「Emacsかviか」を例に、ハッカー文化圏について眺めてみましょう。
ハッカーといっても一枚岩ではありません。いろいろな種類のハッカーがいます。悪ぶっているだけの「自称ハッカー」は論外としても、いろいろな趣味、いろいろな文化のハッカーが存在します。そして彼らは、自分の意見や文化についてしばしば論争を起こします。そのような論争のテーマはたくさんありますが、典型的なものは「どのプログラミング言語が一番優れているか?」、「どのOSが最も良いか?」、または「サイコーのエディタはEmacsかviか?」などです。今回は最後に挙げた「Emacsかviか」を例に、ハッカー文化圏について眺めてみましょう。
オリジナルのEmacsは、リチャード・ストールマンがTECOエディタ用に開発したマクロです。リチャード・ストールマンといえばGNU活動で有名になりましたが、もとは超一流のハッカーで、ばりばりプログラムを書く人物であることを忘れてはいけません。TECOはマクロ機能を備えたラインエディタで、ストールマンはそのマクロ機能を駆使して、スクリーンエディタである最初のEmacsを書き上げたわけです。
TECOによるEmacsが実装されたのは1976年だといわれています。その後、Javaの設計者となるジェームズ・ゴスリングが1981年にUNIX版Emacsの開発を行います。ゴスリングによるEmacs(通称Gosling EmacsまたはGosmacs)は、MockLispと呼ばれるLispもどきの言語を使った拡張機能を持っていました。しかし、ゴスリングはGosmacsの権利をUniPress社に売却してしまい、ストールマンはGosmacsをベースにした新しいEmacsの開発を行えなくなってしまうのです。
いずれにしても、UniPress Emacsをベースに作業することができなかったストールマンは、再びゼロからEmacsを開発しました。これが現在広く使われているGNU Emacsです。GNU EmacsはGosmacsの拡張性を参考にしていますが、MockLispのようなまがいものの言語ではなく、より「ちゃんとした」LispであるEmacs Lispを内蔵しています。Emacsの本体は基本的な編集機能とEmacs Lispを内蔵しているだけで、便利な機能のほとんどはEmacs Lispを使って後付けで実装されています。ということは、一般のユーザーもEmacsの基本機能をベースにしてさまざまな機能を実装できるということです。事実、Emacsではプログラミング言語を支援する各言語モードなど、さまざまな編集支援機能がユーザーからの寄贈によって追加されています。また、エディタの機能を超えて、メールリーダー、ニュースリーダー、Webブラウザ、ゲームなどなど、あらゆる領域での拡張機能が提供されています。Emacsはもはや単なるエディタではなく、1つの環境、あるいは一種のOSと呼べるくらいにまで発展しているわけです。
viはVisual Editorの略だといわれています。BSDの立役者で、長らくサン・マイクロシステムズの副社長だったビル・ジョイによって1976年ごろに開発されたviは、UNIXの標準ラインエディタであったedおよびexをベースにスクリーンエディット機能を追加したものです。edマクロによる非対話モードの作業を簡単に行える点がメリットであり、いつでもラインエディットに戻れる安心感があります。最近では、どちらも必要になることは珍しくなりましたが、わたしが学生のころは端末がおかしくなってviをラインモードで使う*こともときどきありました。
そういえば、学生時代の友人で普段からラインエディタedを愛用していたEくんは、ある日「lessのように画面を直接見ながらedコマンドで編集できるエディタがあれば完璧だ。lessedと名付けよう*」といいながらlessのソースコードをハックしていました。見かねて「それはviというものなんだよ」と教えてあげたら、彼は感動していました。1988年のことです。毎日UNIXを使いながらviを知らなかった彼は大物なんだか、変人なんだか。
スクリーンエディットに必要な端末の制御コードが分からないとき、viはラインモードで起動する。これは要するにedとして動作するということ。
ここでviのことを黙っていたら、もしかしたらEmacs、viに並ぶ第三のハッカー用エディタができていたかもしれない。惜しいことをした。
Copyright © ITmedia, Inc. All Rights Reserved.