第4回 Emacs対vi:まつもとゆきひろのハッカーズライフ(2/2 ページ)
ハッカーといっても一枚岩ではありません。いろいろな趣味、いろいろな文化のハッカーが存在します。そして彼らは、自分の意見や文化についてしばしば論争を起こします。今回は「Emacsかviか」を例に、ハッカー文化圏について眺めてみましょう。
ニュージャージー対マサチューセッツ
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の思想の名残だと思ってください。思想は形を変えながら、いまもハッカー文化の中に息づいているのです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
Lispは1958年ごろにMITで誕生
Lispの父はジョン・マッカーシー。実際にプログラミング言語として開発したのはスティーブ・ラッセルだといわれている。
morq
morqは全文検索ベースのメールリーダー。
本記事は、オープンソースマガジン2005年7月号「まつもとゆきひろのハッカーズライフ」を再構成したものです。
関連記事
- まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇
知られざる「ハッカー」の生態や心理についてまつもとゆきひろ氏が紹介する人気連載がITmediaに登場。ハッカーの生き方を知ることは、あなたがより良いプログラマーになるのに役立つかもしれません。もちろん保証はできませんが。 - まつもとゆきひろのハッカーズライフ:第2回 キーボードへのこだわり
生産性にこだわる職人は、自分の道具を選びます。現代のコンピュータ職人が最も接する道具といえば、キーボードではないでしょうか。今回は、ハッカーのキーボードへのこだわりについて考察します。 - まつもとゆきひろのハッカーズライフ:第3回 ハッカーと仕事
ハッカー傾向のある人々は、正直あまりビジネス向きではないように思います。しかし、いくらハッカーでも、霞を食べて生きていくわけにはいきません。そこで今回は、ハッカーの仕事生活を紹介しましょう。 - まつもとゆきひろ――第1回:オープンソースという「お仕事」
オープンソースソフトウェアの開発にかかわっている人のインタビューをシリーズでお届けする「Open Source People」。記念すべき第1回はMatzのニックネームでも知られるまつもとゆきひろ氏の「人となり」に迫る。 - まつもとゆきひろ――第2回:Rubyを開発するということ
周囲がまつもと氏のまれたぐいまれなプログラミング言語アーキテクトとしての才能に気づき、まつもとがそれに専念できるような体制が自然に形作られつつある――Rubyはいま、そういう状況にあるように見える。今回は、Rubyの開発におけるまつもと氏の考えに迫る。 - まつもとゆきひろ――第3回:僕の存在価値はそこにある
過去2回にわたってお届けしてきたまつもとゆきひろ氏へのインタビューは今回が最終回となる。「誰かがRubyを実装し直したとしたら、いまのRubyよりもずっとエレガントで速いものができるはず」と語るまつもと氏は自身の存在価値をどのように見ているのかに迫る。
Copyright © ITmedia, Inc. All Rights Reserved.