プロローグ
コンピュータサイエンスは、一九四五年以降、世界で最も聡明なそして最もクリエイティブな人たちを魅了し続けてきている。そして、エッカートとモークリーがENIACを開発していた頃、つまりコンピュータの歴史の黎明期と言っても過言ではない頃にも真のプログラマたちがいて、手早く作れ実際に使いものになるプログラムの創意工夫に熱中していた。とはいえ、「ハッカー」という呼び名が真のプログラマを指す意味で使われはじめるのは、一九八○年以降のことだから、昔むかしのプログラマたちが自分たちで「ハッカー」と名乗っていたわけではない。それはさておき、コンピュータの世界ではプログラマたちの手によって、どちらかというと自意識の強いテクノカルチャーが脈々と培われてきている。
コンピュータサイエンスの黎明期にプログラマとして活躍した人たちの多くは、工学系や物理学系の人たちだった。彼らは、白いソックス、化繊のシャツにネクタイ、そして分厚いめがねといういでたちでプログラムを書いていた。使っていたのは、マシン語やアセンブラ、FORTRANといった言語であり、今では存在していたことさえまったく忘れさられてしまったいくつかのコンピュータ言語である。ほとんど注目を集める存在ではなかったにせよ、彼らこそ真のプログラマ文化の先駆者たちだった。
第二次世界大戦の終了直後から一九七○年代初頭までの四半世紀は、巨大で高価なメインフレームとバッチ処理の全盛期であり、コンピュータ文化を真のプログラマたちが支配していた時代でもあった。今でも語り継がれている神話のいくつかは、もとをただせばこの時代にたどりつく。(Jargonファイルに採録されている)真のプログラマMelの伝説。様々なマーフィーの法則。いんちきドイツ語で書かれた「Blinkenlights」のポスターなどなど。これらはみんな当時作られたものである。
真のプログラマ文化育ちの人たちの中には、一九九○年代に入ってからも活躍し続けた人たちがいる。スーパーコンピュータのクレイシリーズの設計者であるシーモア・クレイもその一人だ。伝え聞くところによると、彼は、制御パネルのオン・オフスイッチを操作してブートシーケンスをマシン語で直接入力し、自作のオペレーティングシステムを立ち上げることができたそうだ。しかも、ひとつの間違いもなく−彼こそ究極のプログラマだったのかもしれない。
もっと風変わりなタイプの人も活躍している。たとえば、一九四八年、ちゃんと稼働した世界初のプログラム内蔵コンピュータ(ハーバード大の自動計算機)、Manchester Mark Iでプログラムを組んだスタン・ケリーブートル。彼は、『悪魔のDP辞典(The Devil's DP Dictionary)』(マグローヒル、一九八一)の著者でハッカー文化にも詳しく、最近ではコンピュータ雑誌に技術ねたのユーモアコラムを寄稿している。彼の記事は、今日の真のプログラマたちが好んで使う対話形式で書かれることが多い。
デビッド・E・ランドストロムなども、いまでも活躍している人たちの一人だ。彼はコンピュータ史の黎明期の様子を逸話風に書き綴った、『A Few Good Men From UNIVAC』(一九八七年)という本を出版している。
振り返って見ると、これらの人たちや当時の「真のプログラマ文化」なくして現在のコンピュータ文化はありえない。インタラクティブコンピューティング。ネットワーク。大学におけるコンピュータ環境。これらはすべて「真のプログラマ文化」を礎として発展してきている。オープンソース文化が花開いたのも、インタラクティブコンピューティングやネットワーク、そして大学のコンピュータ環境で誕生したエンジニアリングの伝統が営々と今日まで受け継がれてきているからにほかならない。
初期の時代のプログラマたち
真のプログラマ文化はいつ頃始ったのだろうか。それを規定するのに最も都合のよい年代は、MITが最初のPDP−1を購入した一九六一年だろう。このマシンが導入されるや、それをお気に入りのオモチャみたいに愛用して、MITのTMRC(テックモデル鉄道クラブ)の信号動力委員会の面々がプログラミングツールやスラングなどを作りはじめているからだ。当時のなごりは今でもすぐにそれとわかる形で我われの文化に脈々と流れている。また、当時の状況については、スティーブン・レヴィ(Steven Levy)の著書『ハッカーズ(Hackers)』(Anchor/Doubleday, 一九八四、邦訳は工学社刊)の最初の部分に詳しく描かれている。
(真のプログラマに対する)「hacker」という呼び名は、MITで最初に使われたようである。一九八○年代初頭になると、かってのTMRCの真のプログラマたちは、AI研究で世界をリードする人工知能研究所の中核メンバーになっていく。また、彼らの影響は、一九六九年のARPAnetの登場後、MIT以外の場所へも広がってゆく。
ARPAnetは、北米大陸の西と東を初めて結んだ高速コンピュータネットワークである。デジタル通信の実験として国防省高等研究計画局(DARPA)が始めたものだが、やがて全米各地の大学や防衛関連企業、学術研究所などを結ぶ広域ネットワークに成長していく。ARPAnetの登場により、各地の研究者たちが、かつては想像もできなかったスピードと柔軟性で情報交換できるようになった。ARPAnetのおかげで共同研究が盛んになり、技術革新の速度も密度も飛躍的に向上した。
ARPAnetは、真のプログラマたちにひとつのまとまりも与えている。つまり、それまで全米各地に分散していたプログラマたちは、この情報ハイウェイを介してひとつにまとまり、集団としての力を発揮できるようになっている。それまで、彼らは孤立した小さなグループとしてバラバラに存在し、ローカルな文化作りにいそしんでいた。しかし、情報ハイウェイのネットワークでつながることによって、ネットワーク種族としての自分たちを発見(と言うより再発見)している。
真のプログラマたちの国の最初の産物は、スラング集や風刺集だったり、プログラマ倫理についての自己探究的な議論だったりした。そして、これらに関する情報はすべて、ARPAnet経由でやりとりされている(Jargonファイルの最初のバージョンは、すでに一九七三年にARPAnet経由で送られている)。プログラマたちの世界は、情報ハイウェイのネットワークで接続されていた各地の大学を中心に、とくに(すべての大学でとは言わないまでも)コンピュータサイエンス学科を中心に次第に広がっていった。
そして、このような流れの中で、一九六○年代の後半からは、MITのAI研究所のような文化的拠点が全米のあちこちに誕生している。スタンフォード大学の人工知能研究所(SAIL)やカーネギーメロン大学(CMU)も、MITと肩を並べる規模にまで成長し、コンピュータサイエンスやAI研究の拠点となり、それぞれに素晴しい頭脳の持ち主を惹きつけている。彼らは、技術的面でも文化的面でも、真のプログラマの国の発展に大きく貢献している。
しかし、そのような拠点で何があったかを個別に検討するだけでは、真のプログラマの国がどのように発展したかは理解できない。それを本当に知るためには、コンピュータのハードウェアやソフトウェアがどのように変化してきたかを別な角度から眺めなおす必要がある。これらの拠点の浮沈は、どちらもコンピュータ技術の変化によって引き起こされている。
真のプログラマたちの国は、DEC社製のミニコンピュータ、PDPシリーズとともに歩んできた。DEC社はインタラクティブコンピューティングやタイムシェアリングシステムを最初に手がけた企業である。同社の販売していたPDPシリーズのマシンは、非常に柔軟性があり、処理能力にも優れていた。その上、他社製のマシンと比較して価格が安かったので、各地の大学で導入された。
安価にコンピュータ環境を学生に提供できたタイムシェアリングシステムは、真のプログラマ文化が育つ土壌となった。その意味で、ARPAnetはDEC社製のマシンを結んだネットワークだったと言っても過言ではない。そして、そういったDEC社製のマシンの中でもっとも傑出していたPDP−10は、一九六七年の発売以来、一五年近くにわたって真のプログラマたちの国の御用達マシンの地位を保ち続けた。そのせいか、(PDP−10用にDECが開発したオペレーティングシステムである)TOPS−10と、(PDP−10用のアセンブラ言語である)MACRO−10についっては、今でも懐かしい思い出を持っている人が多く、数々のスラングや逸話が語り継がれている。
PDP−10はもちろんMITでも使われていた。しかし、他の大学とは異なり、MITはDEC社製のオペレーティングシステムを使っていなかった。MITは、ITS(Incompatible Timesharing System)というオペレーティングシステムを独自に開発し、使用していたのである。
ITSの開発と使用は、独自のやり方を貫きたいというMITの気風をよく表している。ITSは、風変わりで気まぐれなOSだった。ご多分にもれず新しいバグが年中発見された。しかし、幸いなことに、MITには偉そうなことを言えるだけの知性が揃っていた。その証拠に、MITではITSの環境上で、素晴しい研究・開発の技術的な試みがいくつもなされている。また、タイムシェアリングシステムの連続運用最長記録を保持している(この記録については異議を唱える人たちもいる)。
ところで、MITで使われていたITSオペレーティングシステムはアセンブラで書かれていた。しかし、ITS上の環境で行なわれた研究・開発プロジェクトの多くは、AI言語であるLISPでなされている。LISPは、その柔軟性と記述能力において、当時使われていたどの言語よりも優れていた。いや、二五年たった今でも、様々な面において他の言語処理系より優れている。実際のところ、LISPのおかげで、真のプログラマたちはITS上で常識破りの個性的な発想をプログラミングできた。LISPは真のプログラマたちの成し遂げた成功の主要因であり、現在でも真のプログラマたちのお気に入りの言語のひとつである。
有名なEmacsエディタのように、MITのITS環境で誕生した技術の多くは今も現役で活躍している。ITS環境で誕生した伝説の多くも、Jargonファイルに見られるように、いまだに真のプログラマたちの間で語り継がれている(「真のプログラマたちの文化」については、http://www.tuxedo.orgからのリンクで詳しい情報を参照できる)。
MITがITSを開発して独自の道を歩んでいた頃、スタンフォード大学の人工知能研究所(SAIL)やカーネギーメロン大学(CMU)のプログラマたちはただぼんやりしていたわけではない。彼らは彼らでいろいろやっていた。たとえば、SAILのPDP−10環境で育ったプログラマたちの中核は、のちにパーソナルコンピュータや、今日あるようなウィンドウ/アイコン/マウスといったユーザインターフェイス開発の中心的存在となった人たちである。また、CMUでは、真のプログラマたちが、大規模エキスパートシステム実用化のもとになる研究を行なったり、工業用ロボットの研究・開発に従事していた。
真のプログラマ文化について語るうえで絶対に忘れてならないのが、ゼロックス社のPARC、つまりかの有名なパロアルト研究センターのことである。PARCでは、一九七○年代初頭から一九八○年代半ばにかけて、のちにハードウェアやソフトウェアに技術革新をもたらすもととなる様々な研究・開発が行なわれていた。たとえば、現在我われが使用しているマウス。マルチウィンドウシステム。GUI(グラフィカルユーザインターフェイス)。これらはすべてPARCで最初に研究・開発されたものである。レーザープリンタやローカルエリアネットワークが考案されたのもPARCである。一九八○年代になって大流行するパソコンに一○年も先んじる形でDマシンシリーズを誕生させたのもPARCである。しかし悲しいかな、先進的なこれらの研究成果が社内で高い評価を受ることはなかった。そのため、PARCは、冗談めかして、いいアイデアをよその会社のために作り出す場所、と呼ばれていた。とはいえPARCの存在が、真のプログラマたちに与えた影響ははかりしれない。
ARPAnetとPDP−10によって培われた文化は、一九七○年代を通じて多様化するとともに、その裾野を広げている。もとは特定分野の研究者どうしが学究的協力関係を深めるために使われていた電子メールのメーリングリストも、徐々に社会的な目的や娯楽目的で利用されるようになり、ARPAnetが本来の目的以外の用途に使われだしたのも一九七○年代である。しかもARPAnetの経費を国家予算から負担していた国防省は、そのような「未公認の行為」の横行に目くじらをたてず、見て見ぬふりを決め込んだ。そのような活動が活発化してARPAnet関連の出費が少々かさんでも、それを黙認し続けることで、若く優秀な頭脳をコンピュータの世界に誘いこめれば割りに合う。国防省はそう考えたのである。
おそらく、その当時ARPAnetで開設されていた「社会的な用途のメーリングリスト」で一番有名なのは、ネットワーク上のSFファンを対象に運営されていたSF−LOVERSというメーリングリストだろう。ちなみに、このメーリングリストは、ARPAnetの発展形である「インターネット」上でいまだに運営されている。SF−LOVERSは純然たる趣味を対象にしたメーリングリストであるが、このほかにも、ARPAnet上では、のちにコンピュサーブ、ジェニー、プロディジィなどといった商用サービスへと発展する、新しい情報コミュニケーションの手段がいろいろ実験的に行なわれていた。
UNIXの登場
一方、ニュージャージー州のAT&T ベル研究所では、一九六九年から別の動きが起こっていた。そしてそれはやがて、PDP−10の伝統に影を落とすこととなる。ARPAnetが誕生した年は、ケン・トンプソンという天才プログラマがUNIXを発明した年でもあった。
もともとトンプソンは、Multicsの開発に携わっていた。Multicsは、(MITのところで紹介した)ITSと共通の祖先を持つタイムシェアリングOSである。当時、Multicsでは、ある重要な試みがなされていた。オペレーティングシステムの複雑さを内部に閉じこめ、ユーザやプログラマたちから見えなくするにはどうすればいいのか? このアイデアを探っていたベル研究所のプログラマたちは、Multicsをもっと簡単に使えるようにするとともに、その機能をプログラムできるようにすれば、もっといろいろなことができて実用的なオペレーティングシステムになるのではないか、と考えていたのである。
しかしMulticsが役たたずなほど大きくなりすぎていくのに嫌気がさしたベル研究所は、Multicsの開発プロジェクトを中止してしまった(なお、Multicsは後にハネウェル社から売り出されているが、ビジネス的には失敗に終わっている)。Multicsでの作業環境に愛着を感じていたトンプソンは、研究所内で用済みになっていたDEC PDP−7を見つけてきて、Multicsに対する反省点や新しいアイデアを、そのマシン上で開発していた自分のオペレーティングシステムに盛り込んでいった。
同じ頃、ベル研究所ではデニス・リッチーという別の天才プログラマがC言語を開発し、それをトンプソンの環境上で使えるようにした(ここで言う環境とは、トンプソンがMulticsを発展させる形で開発したUNIXの原形のことである)。トンプソンのUNIX同様、リッチーのC言語は、柔軟性が高く、使用上の制約が少ない、非常に使い勝手のよいコンピュータ言語だった。そのためベル研究所内では、UNIXとC言語への関心がどんどん高まっていった。そして一九七一年に、トンプソンとリッチーが、自分たちのツールを使って、今で言うオフィスオートメーションシステムを研究所内で開発する役目を仰せつかるに到って、UNIXとC言語に対する関心は爆発的なものとなる。しかしトンプソンとリッチーの狙いは、もっと大きなところにあった。
それまでオペレーティングシステムは、ホストマシンから最大限の処理能力を引き出せるよう、できるだけ無駄のないアセンブラコードで書くのが普通だった(アセンブラコードの仕様は、マシン(CPU)アーキテクチャごとに違うのが普通なので、オペレーティングシステムは機種ごとに異なるアセンブラコードで書かれていた)。それは、ハードウェアやコンパイラのテクノロジーがそれほど発達していなかった頃からの伝統だった。しかし、それらのテクノロジーが充分に進歩した今、オペレーティングシステムもC言語で書けるのではないか。それを最初に見抜いた人たちは何人かいるが、トンプソンとリッチーもまさにそう考え、UNIXオペレーティングシステム全体をC言語で構築している。そして、一九七四年には、UNIXオペレーティングシステムを数種類のコンピュータに移植することに成功している。
同一のオペレーティングシステムをアーキテクチャの異なる数種類のコンピュータに移植し、それに成功する。そういう話は過去に例がなかった。そのため、トンプソンとリッチーの試みは大変な反響を巻き起こしている。UNIXオペレーティングシステムは、異なる種類のマシン上で、見た目も、使い勝手も、できることも、まったく同じコンピュータ環境を提供できる。どのマシンで作業しているプログラマにも共通のソフトウェア環境を提供しうる。マシン(CPU)ごとにオペレーティングシステムが異なっていた時代、プログラマやユーザは、手持ちのマシンが変わるたびに、新しいマシンのアーキテクチャ用のソフトウェアを買わなくてはならなかった。しかし、C言語で書かれたUNIXオペレーティングシステムがどのアーキテクチャのマシンでも同じように動き、使えるようになった今、人びとはいつでもどこでも同じ開発環境で作業できるようになった。マシンが変わるたびに開発ツールを一から作り直す必要もなくなった。UNIXとC言語は、それだけ移植性に優れていたのである。
「シンプルが一番」という理念に基づいて開発されたUNIXとC言語の長所は移植性以外にもいくつかあった。UNIXもC言語も論理的に非常にシンプルな構造になっていたので、プログラマは、マニュアルと首っぴきにならなくても、どんな構文が文法的かを思い描くことができた。しかもUNIXは、C言語で書かれている簡潔なプログラムを有効に組み合わせることができる柔軟なツールキットとして使えるように設計されていた。
UNIXとC言語の組み合わせは、たちまちのうちに様々な分野で利用されるようになり、開発者たちが想像だにしなかった使い方をする人たちさえでてくるほどだった。AT&T(ベル研究所を擁していた全米一の電話会社)の社内でも、会社が正式に支援していなかったにもかかわらず、様々な部署の人たちによってUNIXとC言語が急速に使われだした。そして一九八○年ごろには、全米各地の大学や研究所でコンピュータを利用していた真のプログラマの間にも広まっていった。
ハードウェア的に見ると、初期の頃のUNIXはPDP−11とその後継機であるVAXによって支えられていた(どちらもDEC社製のマシンである)。しかし移植性に優れていたUNIXは、ほとんど移植作業という作業なしに、ただ再コンパイルするだけでどんなコンピュータ上でも動作したので、ARPAnet上に存在していた実に多種多様なマシンで使われることとなる。しかも、そういったUNIXオペレーティングシステム環境上でアセンブラを使う人はほとんどいなかった。あるマシン上のUNIX環境で動作可能なCプログラムは、アセンブラで書かれたプログラムのようにコードを書き換えての移植作業をわざわざしなくても、単に再コンパイルしさえすれば別種のマシン上で簡単に動作したからである。
UNIXオペレーティングシステムには、UNIXをOSとして使用している二台のマシンを結びつける、ある種の通信機能も標準装備されていた。Unix-to-Unix Copy Protocol(UUCP)と呼ばれるその機能は、転送速度が遅く信頼性も低くかったが、それを使うことで、普通の電話回線経由で二台のUNIXマシンを接続して電子メールのやりとりを安価にすることができた。そのため、この機能を利用する形で、全米各地のUNIXマシンが次々と結ばれ、ひとつのネットワークコミュニティが形成されていった。このUUCPのネットワークが発展していくに従い、そこを活躍の場とする真のプログラマ文化も成長していった。そのような流れの中で一九八○年に登場したUsenetの掲示板は、たちまちのうちにARPAnetを抜く勢いで拡大成長している。
やがて、ARPAnet上でも、UNIXをオペレーティングシステムとして使うサイトが少なからず登場してきた。そしてPDP−10を中心に発展してきた文化とUNIX文化が出会うことになる。だが最初のうち、この二つの文化の融合はなかなかうまく行かなかった。PDP−10育ちのプログラマたちが、UNIX育ちの人たちを新参者とみなしたからである。LISPやITSの複雑な美しさに心酔していた彼らには、すっきりした構造のUNIXやC言語があまりにも単純すぎるツールに映り、そういう環境育ちの人たちをとてつもなく原始的なツールを使っている連中としてしか受け止められなかったからである。「石斧を手にクマの毛皮を着こんだ原始人!」 そんな陰口を叩く者さえいた。
そして時代の変化はそこで終わらず、UNIXの波に続くように、第三の波が押し寄せてきた。その波は、一九七五年に世界で初めて発売されたパソコンの技術が、一九七七年のアップルコンピュータ社の設立以降、信じられない速度で進歩したことに端を発している。技術的進歩によりパソコンが本当に使いものになることがはっきりしてくると、次世代の若い優秀なプログラマたちがどんどんパソコンでプログラミングするようになったからである。にもかかわらず、PDP−10育ちやUNIX育ちは、若いパソコン世代のプログラマたちの使っていたのがBASICという、自分たちから見ればあまりにも原始的で初歩的なコンピュータ言語だったので、彼らのことを技量的に見下し、同じ仲間として認めようとしなかった。
新しい時代の幕開け(世代交代)
こうして一九八○年になると、コンピュータの世界では、毛色の違う三つのテクノロジーを核とした三つの文化が併存しながら一部では混ざり合うという状況が発生した。もっとも長い歴史を誇るARPAnetとPDP−10の土壌に発生した文化は、LISPやMACRO、TOPS−10、そしてITSとしっかり結びついていた。UNIXとC言語の文化は、PDP−11とVAX上で開花し、電話回線経由で結ばれたUUCPのネットワーク上で広がりをみせていた。そして初期のパソコンに魅力を感じていた人たちは、てんでんばらばらに活動しながらも、コンピュータをもっと社会に浸透させ、普通の人たちが利用できるものにしようと頑張っていた。
このように三つの文化が併存する時代になったものの、勢力的には、依然としてITS中心のARPAnetとPDP−10文化が優位を誇っていた。しかし、そんな彼らの頭上にも暗雲がたれこめはじめる。ITSが依存していたPDP−10が時代遅れなマシンになりはじめたからである。また、それまでひとつのグループとして一緒に行動してきた人工知能研究所の技術者たちが、AI技術の商業化にしたがい、高給で引き抜きにかかった新しい会社に移り、複数のグループに分裂してしまったからである。つまり、MITからは、最も優れた才能が企業へと流出してしまった(ちなみに、このような頭脳流出はSAILやCMUでも起こっている)。
ITS中心の文化にとって最悪の一撃は一九八三年にやってきた。DEC社がPDP−10シリーズのサポートを中止してしまったのである。理由は、PDP−11シリーズとVAXシリーズに専念するためということだった。稼働可能なマシンがなくなってしまったITSにもはや未来はなかった−移植性に欠けるITSを新しいハードウェアに移すなどということはとうてい無理な相談だった。こうしてITS中心の文化は終わりを告げ、真のプログラマたちの活躍の場はVAX上で動くバークレー版UNIXへと移行することとなる。また、この頃を境に、当時急速に力をつけつつあったパソコンが次の世代のマシンになることが、ちょっと先を読める人たちの目に明らかになりはじめた。
ちょうどその頃、本章の初めの部分で紹介したスティーブン・レヴィが『ハッカーズ』を出版した。そして、その本の情報提供者のひとりがEmacsの生みの親として知られるリチャード・M・ストールマン(Richard M. Stallman)だった。当時、MITの人工知能研究所を代表する人物の一人であったストールマンは、コンピュータ技術の商業化に断固反対するグループの急先鋒だった。
ストールマンは、自分の信じる道を突き進み、やがてFSF(Free Software Foundation)を創設し、高品質のフリーソフトウェア作りに献身することになる(ストールマンは、名前のイニシャルをとったログイン名、RMSとして知られている)。レヴィはそんな彼に「最後の真のプログラマ」という賛辞を送っているが、我われにとって幸いなことに、真のプログラマがストールマンで最後になることはなかった。
ストールマンは、一九八二年にC言語でUNIXの完全なクローン作りに着手し、それを無料で入手できる擁する壮大な計画を実行に移している。当時は、真のプログラマたちの国の基盤がPDP−10上のISTからVAX上のUNIXにまさに移ろうとしていた時期だったので、C言語でUNIXのクローンを書こうとした彼の行動は、まさに真のプログラマたちの国の大変革の縮図だった。そしてストールマンの尽力により、ITSの精神と伝統は、UNIXおよびVAXを中心としたプログラマ文化に引き継がれ、その中核部分を形成していくのである。
ストールマンのこうした動きと時を同じくして、マイクロプロセッサ技術とローカルエリアネットワーク技術の発展によりコンピュータ環境も大きく変わりはじめていた。イーサネット(Ethernet)とモトローラ68000(32ビットのマイクロプロセッサ)の組み合わせが、いくつかの新しい会社を誕生させたりもしている。その組み合わせの将来性に着目した真のプログラマたちが、自分たちで会社を設立して、今で言う第一世代のワークステーションの開発に取りかかっている。
一九八二年にサン・マイクロシステムズ社を設立したメンバーの中に、カリフォルニア大学バークレー校でUNIXの研究・開発をしていたプログラマたちがいた。彼らは、比較的値段が手頃な68000ベースのマシン(コンピュータ)上でUNIXを動かせるようにすれば、いろいろ使い道があるにちがいない、と確信していた。やがて彼らの戦略は成功し、彼らはコンピュータ業界をリードするようになる。ワークステーションは、個人用のマシンとしては依然として高価であったが、それまでVAXやタイムシェアリングシステムのマシンを使っていた企業や大学にとっては安い買い物だった。そのため、企業や大学には、一人一台のワークステーションをネットワークで接続するスタイルが急速に普及し、それまで主流だったコンピュータ環境にとって代わっていった。
クローズドなUNIXの時代(UNIXと知的所有権)
AT&Tは、一九八四年の分割の頃から、UNIXの商用版の開発とそのライセンシングに力をそそぐようになったが、その当時、真のプログラマの世界は真っ二つに分かれていた。つまり、インターネットやUsenetで結ばれたネットワーク上のミニコンピュータやワークステーションでUNIXを使っていた人たちと、ネットワークにつながれていないマイコンやパソコン上で熱心にプログラミングしていた人たちが存在していた。
サンなどが提供していたワークステーションは、高性能のグラフィックス処理やネットワーク経由でデータを共有する機能を備えていた。そのため一九八○年代の真のプログラマたちは、それらをフルに活用するためのツール開発に励んでいる。たとえば、カリフォルニア大学バークレー校で(バークレー版)UNIXを研究・開発していたプログラマたちは、ARPAnetのプロトコル(すなわち、TCP/IP)をサポートする機能をUNIXのカーネルに組み込んでいるが、この実装によってUNIXでのネットワーク構築が容易になり、それがその後のインターネットの急速な拡大をもたらしたと言える。
ワークステーションの持つ高性能グラフィックス機能を使いこなそうという技術的試みのひとつは、Xウィンドウシステムの開発である。そして、Xウィンドウシステムの普及の成功の最大要因は、Xが当初からライセンス的にオープンであり、インターネットなどを経由してソースコードが配布されていたことにある。Xは、MITのある種のプログラマたちの倫理に従う形でライセンス手続きを踏めば、自由に入手できた。複数のメーカーを含む様々な人たちが自分たちのマシンに移植できたので、UNIX以外のOSでも、Xが移植されているマシンでは、グラフィックスについて同じユーザインターフェイスとAPIを持つようになった。そのため、Xは、(当時サンが販売していた独自のウインドウシステムも含めて)オープンでないシステムに対して勝利できたのである。そしてこのことは、数年後、UNIX自体が普及していく過程に重大な影響を及ぼすこととなる。
というのも、ネットワークで結ばれたプログラマたちの世界では、バークレー版UNIXとAT&T版UNIXの二つが使われていて、それぞれのバージョンのユーザたちが、どちらが優れているかをめぐって対立していたからである。それとは別に、ITS信奉者たちとUNIXユーザの党派争いもくすぶり続けていた。元ITS利用者側がUNIXユーザを敵対視していたからである。しかし、一九九○年に、最後まで残っていたITSマシンが使用されなくなってしまうと、拠点を失ったITSユーザたちは、なんやかんや言いながらもUNIXの文化に同化されていった。
バークレー版UNIXとAT&T版のユーザの対立がどんなものであったかは、今でも時々見かけることがある当時のポスターなどからその様子をうかがい知ることができる。大爆発を起こすAT&Tのロゴ入りのデススター。そこから猛スピードで脱出しようとするスターウォーズのXウィング戦闘機。バークレー版UNIXの開発者たちは、冷血なAT&T企業帝国に挑む反逆者を気取っていた。結論的には、AT&T版UNIXが、BSD版UNIX(バークレー版UNIX)やSun OSと市場で肩を並べることはなかった。しかし、標準化の争いでは勝利を収めている。その結果、バークレー版UNIXとAT&T版UNIXはお互いに相手方の機能を取り込む形で改良が重ねられ、一九八○年代の終わりになると、両者の違いはほとんどなくなってしまう。
一九九○年代に入ると、それまでワークステーションでしかできなかったことがパソコン上でもできるようになった。i386やその後継の高性能マイクロプロセッサを搭載したパソコンが低価格で次々と登場し始めたからある。これらのパソコンの出現により、一○年前のミニコンピュータに匹敵する処理能力、記憶容量のマシンを、個人プログラマが初めて持てるようになった−個人が、UNIXを動かせるマシンを所有して、インターネット接続した自分の開発環境を持てるようになったのである。
さて、MS−DOSの世界にはまっていた人たちは、UNIXの世界でこのような動きが起こっていることにまったく気づいていなかった。当時、パソコンへの関心が急速に高まるとともに、DOSやMac OSを使うプログラマの数は、ネットワークで結ばれたプログラマの数を大幅に上回わるようになっていたが、それらのパソコンユーザが自分たち独自の文化を意識的に生みだすことはついぞなかった。確かに技術面に重点をおいた五○以上ものコミュニティが誕生するには誕生したが、技術革新のめまぐるしいペースに追いついていけず、そういうグループは生まれるが早いか、まるでカゲロウのように消えていった。そうしたグループの文化は定着するまでにいたらず、パソコンユーザの間に共通の逸話や表現、神話などを生みだすようなこともなかった。パソコンユーザたちには、UUCPのネットワークやインターネットに比肩する横の広がりがなく、ネットワークを文化的活動の拠点にすることができなかったのである。もちろんパソコンユーザたちの間でも、コンピュサーブやジェニーといった商用オンラインサービスの利用が盛んになりつつあった。しかし、彼らが使っていたパソコンのOSは、UNIXと異なり、開発ツールつきでなく、ユーザ間でのプログラムのやりとりもソースコードレベルでなされることはほとんどなかった。そのため、複数の人間が同じソースコード相手に共同でプログラミングする作業がひとつの文化的形態として定着することもなかった。
一方、真のプログラマたちの国の主流派は、インターネットを柱に組織化されながら、UNIX中心のテクノロジー文化を推進しつつあった。パソコンユーザたちとは異なり、彼らは商用オンラインサービスの利用に興味を示さず、より優秀な開発ツールとインターネットを利用できる環境をほしがっていた。そして、その両方を可能にしたハードウェアが、当時手頃な価格で手に入るようになった32ビットのパソコンである。
しかし、真のプログラマたちの希望を実現させるためのソフトウェアは、なかなか彼らの手に入らなかった。商用版のUNIXは依然として値段が高く、パッケージあたり数千ドルもしていたからである。AT&TバージョンやBSDをPC用に移植したものを売り出す会社もいくつか登場したが、ビジネス的に成功せず、価格もたいして安くならなかった。さらに具合の悪いことには、それらのPC用UNIXのパッケージには、ソースコードが含まれておらず、ユーザが自分の環境にあわせてカスタマイズできるものではなかった。別の人に再配布できるようにもライセンスされていなかった。それらのパッケージは、従来のビジネス慣行に沿ったクローズドな製品として販売されたため、真のプログラマたちの期待に充分応えられなかったのである。
残念ながらFSFも真のプログラマたちの期待にすぐに応えることができなかった。ストールマンがフリーUNIXカーネルとして提供する目的で開発していたHURDが、開発半ばで数年間塩漬け状態になってしまい、一九九六年になるまで、本当に使いものになるカーネルとはならなかったからである(ただしFSFは、一九九○年までに、このUNIXライクなオペレーティングシステムの難しい部分のほとんどすべてを提供している)。
これに追いうちをかけるように、一○年来続けられてきたクローズドなUNIXを商品化しようという試みが失敗に終わることが誰の目にもはっきりしてきた。複数種類登場したクローズドなUNIXのバージョンの開発者たちが、自分たちの優越性の主張に明け暮れたため、UNIXをクロスプラットフォームで使えるOSにするという大目標も実現されずじまいになってしまった。クローズドなUNIXの開発者たちは融通性に欠け、視野が狭く、しかもマーケティングが下手だった。そのため、いとも簡単にマイクロソフト社にOS市場を奪われてしまっている−同社のウインドウズOSのほうが、UNIXより技術面でははっきりと劣っていたにかかわらずである。
その当時、あえて意地の悪い見方をした人は、UNIXの世界は一九九三年初頭に消滅してしまい、それとともに真のプログラマたちの国の命運も尽きる、と思ったかもしれない。実際問題、コンピュータ業界関連のマスコミには、一九七○年代後半から半年おきぐらいに、UNIXの滅亡は近いとお定まりのように騒ぐ意地の悪い連中が大勢いた。
そういう連中は、その頃声を大にして、コンピュータの世界にテクノヒーローが出現する時代はすでに終わった、と言っていた。これからは、マイクロソフトのような巨大企業がソフトウェア業界やインターネットの世界を支配する時代であるとも言っていた。その種の見方が一般的だったのである。そして、UNIXを開発したプログラマたちの第一世代も、年をとり、疲れはじめていた(カリフォルニア大学バークレー校のコンピュータ・システムズ・リサーチ・グループ(CSRG)も一九九四年には、財源を確保できないほど息切れしてしまっていた)。一九九○年代の初めの何年かは、真のプログラマたちにとって実に気の滅入る時代だった。
しかし幸いなことに、別の動きも起こりつつあった。その動きは、初めのうちこそ、業界マスコミの目の届かないところで、多くのプログラマたちのほとんど気づかないところで起こっていたが、一九九三年から九四年にかけて、めざましい成果を真のプログラマたちにもたらすことになる。そして、その成果は、想像もつかなかった成功を彼らにもたらし、彼らの文化をまったく新しい方向に導くのである。
フリーなUNIX
HURDの開発の立ち後れで希望を失いかけていた真のプログラマたちを救ったのは、ヘルシンキ大学のリーナス・トーバルズという学部学生である。彼は、FSFがフリーウェアとして配布していたツールキット(GNUツールキット)を使って、一九九一年に、386マシン用のUNIXフリーカーネルの開発に取りかかると、非常に短期間のうちに基本部分の構築に成功した。それに多くプログラマが注目し、インターネット上で彼の開発作業に協力する形で出来上がったのが、(リーナスのUNIXに因んで命名された)Linuxである。Linuxは、UNIXのすべての機能を備えた、ソースレベルで完全にオープンで、再配布可能なオペレーティングシステムだった。
このLinuxにも、ライバルがいなかったわけではない。一九九一年、Linuxの開発とほぼ時を同じくして、ウィリアム、リン=ジョリッツ夫妻がBSD UNIXソースコードを386に移植する試みに着手していたからである。当時、BSD UNIXに実装されているテクノロジーに比較して初期バージョンのLinuxを荒削りと感じた人たちは、PC用のフリーUNIXはBSD UNIXの移植版で決まりだろうと思っていた。
しかしLinuxの最大の特徴は、技術面ではなく、インターネットのコミニュティを巻き込んだその開発手法にあった。Linuxが登場するまで、オペレーティングシステムのように複雑なソフトウェアは、少人数の人たちでプロジェクトグループを形成し、そのグループ内で慎重な協力体制を維持しながら開発するものと思われていた。ちなみに、そうした手法の採用は当時も今も、商用ソフトウェアの開発では当然のこととされている。一九八○年代にFSFが手がけた巨大なフリーウェア群もそのような手法で開発されている。ジョリッツ夫妻が386用にBSD UNIXを移植した386BSDから枝別れする形で開発されたFreeBSDやNet BSD、そしてOpen BSDも小人数のプロジェクト体制の産物である。
繰り返しになるが、Linuxはそれらのソフトウェアとはまったく異なる手法で開発されている。Linuxの開発は、ごく初期の段階から、大勢のボランティアたちがインターネット上で共同作業する形で進められていった。Linuxカーネルのクオリティは、厳格な基準に従うことによって維持されていたわけではない。誰かがすべてを監視するワンマン体制によって維持されていたわけでもない。Linuxカーネルのクオリティは、リリースを毎週行ない、数日中に寄せられてくる何百というフィードバックを素早く反映して次のリリースを行なうという、無邪気なほどに単純なアップデートを頻繁に繰り返すことで維持されていったのである。このようにリリースをきわめて頻繁に行なうことで、Linuxカーネルに次々と追加されたコードの善し悪しは、進化論的に淘汰されていった。そして、この開発方式が成功したことに驚かぬ者はいなかった。
一九九三年の終わりごろには、Linuxは商用版UNIXと安定性と信頼性で肩を並べるまでになっていた。Linux上で動作可能なソフトウェアの数もどんどん増加していた。自社の所有する商用版アプリケーションをLinux上に移植する企業も出現している。しかし、小規模な商用版UNIXベンダーは、Linux登場の余波でほぼ一掃されてしまった−売り込むべき開発企業やプログラマがいなくなり、商用版UNIXの販売がビジネスとして成立しなくなってしまったからである。それでも、BSDI社(Berkeley Systems Design, Incorporated)などのように、BSDベースのUNIXをソースレベルでオープンな形で提供しながら、コミュニティとの密接なつながりを保ち続けた企業は、数少ないながらも生き残っている。
当時こうした動きが、プログラマたちの間で話題になることはあまりなかった。もちろん外部の世界の人たちは、このことにまったく気づいていなかった。しかし、何度も繰り返されてきた滅亡予言に憤慨していた真のプログラマたちは、ようやくめぐってきた機会を活かし、自らのイメージ通りに商業用ソフトウェアの世界を作りかえようとしはじめていた。そして、こういった変化が当時進行しつつあったことは、それから五年後に明白になる。
インターネットの爆発的普及
Linuxとインターネットは、相乗効果的に成功し、普及している。というのもリーナス・トーバルズがLinuxの開発を始めたのと機を同じくするように、大衆がインターネットを発見し、それとともに月数ドルでインターネットへの接続を提供するプロバイダ産業が急成長しはじめたからである。インターネットは、WWWテクノロジーの利用が盛んになるに従い爆発的に普及していく。
一九九四年になり、カリフォルニア大学バークレー校のUNIX開発グループが正式に解散すると、真のプログラマたちの多くが、(Linuxや386BSDの後続バージョンといった)フリーUNIX上でプログラミング活動をするようになった。そして、翌一九九五年が終わる頃には、大手コンピュータ会社までが、自社のソフトとハードはインターネットが簡単にできると、もっともらしく宣伝するようになる。
一九九○年代後半、真のプログラマたちの国では、Linuxの開発とインターネットの大衆化が中心課題になった。すでにインターネットは、WWWの利用によって既存のマスメディアに対抗できうる存在になり、八○〜九○年代初頭に活躍したプログラマたちはこぞって大衆にインターネットの接続サービスを売ったり提供したりするプロバイダビジネスに乗り出した。
真のプログラマたちが活動の場とするインターネットが社会の主流に躍り出たおかげで、彼らの文化そのものも表舞台でもてはやされるようになった。それにつれて、真のプログラマたちは、政治的な影響力まで持つようになる。たとえば、彼らは、一九九四年から九五年にかけて、暗号化技術を独占するために米国政府が提出したClipper Chip法案を葬りさることに成功している。一九九六年には、これまた米国政府が提出した「Communication Decency Act」(CDA)という見当違いの名前の法案通過に反対する世論を一致団結して動かし、政府によるインターネットの検閲の阻止に成功している。
CDAでの勝利以降、我われは現在という時代に生きている。そして、この時代は、歴史家といえども単なる観察者としてではなく、行為する者として行動しなければならない時代である。第十五章の「真のプログラマたちの回帰(The Revenge of the Hackers)」では、この点についての私見をまとめてみたい。
「すべての政府は、大なり小なり人民と対立する存在の組み合わせである……徳のないことにかけては、統治する者も統治される者と変わらない……政府の権力は、それと等しい力、すなわち人民全体の感情を表示することによって、定められた範囲内でのみ保持することができる」
ベンジャミン・フランクリン・ベーチ、『フィラデルフィア・オーロラ』の社説(一七九四年)から