UNIX エンジニアの失われた10年
どうして部屋を片付けたくなるのだろうか
来週に締切を控えているせいで片付けが進む。整理をしていたら、株式会社ネットスプリングの西武さんに頼まれて寄稿した同社の NSQuest という冊子 が発見された。記事は 2007年2月頃に発刊された Vol.1 と Vol.2 に分かれて掲載されている。ちなみに表題は自分で付けたものではない。
改めて読み返してみても考え方に変化はないが、1985-1995 頃の10年間というのは、シグマプロジェクトのおかげかそうでないのか、皮肉にも日本で UNIX エンジニアが最も増えた時期と重なっているとも思う。最後の部分は Google Code とかで解決する方向に進んでいるのだろうか? だとすれば次の課題は、部屋を片付けずに原稿を書く方法を考えることだ。
オープンソース文化考察
1993年の12月、情報処理学会の九州支部シンポジウムに呼ばれて「Unix オペレーティングシステムの動向」という内容で発表を行なった。その時の予稿を読み返してみると、こんなことが書いてある。
BSD Unix は、多くの大学や研究機関において、長い間研究開発のプラットフォームとして利用されきた。もちろん、それは BSD がオペレーティングシステムとして優れた機能を持っていたからであるが、それ以外に、すべてのユーザがシステム全体に関するすべてのソースを持ち、それを自由に改変し、情報交換を行うことが可能であったという点は忘れてはならない。多くのユーザの研究成果は、CSRG によって正式リリースに取り入れられ、BSD 自体を改良するために貢献するという再生産の機構がうまく働いていたのである。
(中略) 今日、ネットワークニュースから流れてくる記事を眺めていると、「パスワードを入力するときに画面に表示させないためにはどうするのですか?」といった質問が少なくない。以前であれば、このような疑問を抱いたユーザは、間違いなく passwd コマンドのソースを見つけ出し、stty によってそれが解決することをたちどころに探り当てたはずだ。商業 Unix の普及はこのような優れた教育環境をユーザから奪い、代わりに膨大な量の関連書籍やマニュアルを生み出した。ユーザは多すぎる参考文献の中から自分の探す答えを見つけ出さなければならない。
僕は1983年に就職し VAX-11 上の 4.1BSD で新人研修を受けた。当時は、主記憶1M、ディスク1Gに満たない VAXを100人近いユーザで共有する環境だった。
その後、サンマイクロシステムズが1983年に Sun-2、1985年に Sun-3 を発売して以来、国内外のメーカーから相次いでワークステーションが発売され、Unix 環境は多くのエンジニアの身近なものになった。しかし、これらのワークステーションには、システムのソースコードが付随していなかったので、最初からワークステーションで育ったエンジニアは、Unix にはソースコードがあって当り前という環境を経験できなかったことになる。
ウィキペディアによれば、「オープンソース」という言葉が使われ出したのは1998年からだそうだ。Linux 1.0のリリースは1994年なので、1990年代半ばから、数々のLinux や FreeBSD、NetBSD、OpenBSD などのオープンソースをベースにした開発環境が、一部のマニアな開発者だけではなく、一般的なプログラミング環境としてに使われるようになったはずだ。
「失われた10年」という言葉は、日本経済では1990年代初めから2000年代初めのバブル崩壊後の期間を指すそうだが、Unix エンジニアにとっては、この1985年から1995年頃が「失われた10年」だったように思う。技術の進歩は、豊かなハードウェア環境の代償として、ソースコードへのアクセスという肝心のものをエンジニアから奪ってしまったのである。
梅田望夫氏は著書「ウェブ進化論」の中で、次の10年を変える三大潮流として「インターネット」「チープ革命」とともに「オープンソース」を挙げ、こう書いている。
もともとプログラマーが書いたプログラムそのものであるソースコードとは、開発した企業の企業秘密そのものであって問外不出の知であったわけだが、その閉鎖的な知だったソースコードが、オープンソース化によってインターネット上に溢れるようになった。その結果、世界最高峰のプログラマーが書いて世界中で利用されているプログラムのソースコードを、誰もが自由に読んで勉強することができるようになった。オープンソース化は、「プログラムを書く」ことを学ぶための高速道路を一気に整備してしまったのである。
この意見にはおおいに賛成である。しかし、一般のプログラマがどの程度「直接的」にオープンソースの恩恵を受けているかというと、ちょっと疑問なのだ。
一体、今時どれだけのプログラマがカーネルやシステムプログラムのソースコードを読んでいるだろうか。そもそも、開発コミュニティに属していない一般のユーザで、ソースコードをダウンロードして持っている人など、ほとんどいないのではないだろか。
原因の一つは文化的なものだろう。失われた10年の間に、人々はコンピュータにはソースコードがあって当り前という文化自体を忘れてしまったのだ。あることは知っていても、そんなものを見るのは一部の開発者だけだと思っているのだろう。ウェブシステムの開発をしていながら、Apache のソースを見たこともないプログラマはざらにいるはずだ。
もう一つの原因は量である。Unix カーネルに限っても、4.2BSD でネットワークコードが追加されて以来、ソースコードの量が格段に肥大してきた。もはや、オペレーティングシステムの開発に携わるプログラマであっても、システムの全容を把握しているのはほんの一部だと思われる。アプリケーションまで含めれば膨大な量になってしまう。
僕はやはり、すべてのプログラマが、いつでも好きな時に自分が使っているすべてのソフトウェアのソースコードに簡単にアクセスできるのが理想だと考える。そういう環境が当り前になれば、ユーザの意識も自然とそれにあったものに変わっていくはずだ。
オープンソース時代初期には、それを実現するにはディスク容量が問題だった。いかにソースが公開されていると言っても、個々のマシンにそれをすべて置いておくには容量が不足していたのである。しかし、今ならラップトップにだって入ってしまうだろう。ほとんど必要ないし、使うか使わないかわからないけど、いつでもそこにある。そのことが重要なのだ。
そうすれば量の問題は技術で解決できるかもしれない。検索エンジンに端を発するウェブ2.0時代の「知の世界の秩序」化は、開発環境にも応用できるはずだ。失われた10年の後、オープンソース時代10年を経て、すべての利用者や開発者がソースコードの恩恵をもっと直接的に享受できるような次の世代の環境を模索していく必要性を強く感じるのだ。