連載
» 2007年06月26日 00時00分 公開

第4回 Emacs対viまつもとゆきひろのハッカーズライフ(2/2 ページ)

[Yukihiro “Matz” Matsumoto,ITmedia]
前のページへ 1|2       

ニュージャージー対マサチューセッツ

 viはUNIX哲学の体現だといえます。ニュージャージー州にあるAT&Tベル研究所で始まったUNIXの哲学は、「単機能のツールを組み合わせた柔軟性」です。UNIXツールのことを良く知る人なら、各種フィルタを組み合わせた「パイプライン処理」のことを思い起こすはずです。cat、grep、awk、sed、nroff、pic、tblなどの単機能ツールをパイプラインでつなげて加工するのは、職人芸といっても良いでしょう。UNIX哲学では、もちろんエディタもそのようなツールの一種と見なされます。2つのファイルの差分を取るツールdiffは、「-e」オプションを指定するとed形式で出力します。この出力結果の最後に「w」を付加してedに渡すと、自動的に書き換えて保存してくれます。最もこのやり方では、ファイルが少しでも変更されていると悲惨な結果になるので、最近はedよりも少し賢いpatchコマンドを使うことがほとんどでしょうけど。

 このようにviは、「小さいことは良いことだ」あるいは「よけいなことはしない」という思想を反映したツールなのです。

 一方のEmacsは、また違う思想を反映しています。いまではUNIXで使われることが多く、UNIX系エディタと見なされやすいEmacsですが、オリジナルが開発されたのはUNIX上ではありません。

 Emacsが反映している(と思われる)のは、MIT(米マサチューセッツ工科大学)のLisp文化です。Lispは1958年ごろにMITで誕生*しました。もうすぐ50年になるんですね。ほとんどのLisp処理系は対話的に処理を行い、必要となる関数を次々に定義していくことで環境を整備するという開発スタイルを取ります。このような環境で育ったLispハッカーにとって、Lisp処理系に編集機能を追加し、エディタにまで育て上げるというアプローチは、ごく自然なものだったのだろうと想像します。1970年代、ストールマンが名うてのLispハッカーであったことを考えると、「彼にして、このエディタあり」ということだったのでしょう。

 Emacsの魅力はその拡張性、さらにいえばその「プログラム可能性」です。Emacsを開発のベースに使えば、画面操作などの標準で備わっている基本的な機能を利用して効率良くプログラムを開発できます。わたし自身、日常的な編集を支援するEmacs用の小さなツールをたくさん書いていますし、さらにRubyの編集とインデントを支援するrubymode、Emacs上のメールリーダーを2つ(cmailとmorq*)開発しています。

 しかし一方で、Emacsはエディタでありながら、あらゆる機能を飲み込んでいってしまい、どんどん複雑化、肥大化しています。これを称して「キッチンシンク」と呼ぶ人もいます。

 小さいツールを組み合わせることによって柔軟性を提供するUNIX思想、プログラム可能なツールによる柔軟性を提供するLisp思想。2つのエディタの対立は、2つの思想の対立でもあったのです。

NASAの乱入

 しかし、後にEmacsがUNIX上の代表的なエディタと見なされるようになって、戦況はやや混乱します。どちらもUNIXの仲間と思われてしまい、それまでのUNIX対Lispという分かりやすい対立軸が見えにくくなったからです。そして、別の「キッチンシンク」であるPerlの参戦によって、この対立軸は完全に見えなくなります。

 Perlは、UNIX系文化が個別のツールで提供していた機能をすべて1つの言語で提供しようというアプローチのものです。開発者のLarry Wall(当時、NASAのジェット推進研究所所属)がLisp系文化の影響を受けていたかどうかは定かではありませんが、「キッチンシンク」アプローチの有効性を広く示したことには変わりありません。結果的に、PerlはUNIX文化とLisp文化の架け橋になったといえるでしょう。

 皆さんも「Emacs対vi」の論争を見たら、それは遠い昔にあったUNIX対Lispの思想の名残だと思ってください。思想は形を変えながら、いまもハッカー文化の中に息づいているのです。

このページで出てきた専門用語

Lispは1958年ごろにMITで誕生

Lispの父はジョン・マッカーシー。実際にプログラミング言語として開発したのはスティーブ・ラッセルだといわれている。

morq

morqは全文検索ベースのメールリーダー。


本記事は、オープンソースマガジン2005年7月号「まつもとゆきひろのハッカーズライフ」を再構成したものです。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ