何についても、ほとんどの人が最初にする質問、「その何が僕の役にたつの?」。ソフトウェアの世界では、大雑把に言って二つの部類の人がいる、開発者とユーザーね。ユーザーにとって、構成を取り換えられたり再整理できるってのは素晴らしいし、それは供給者への依存性をかなり取り除くことにもなる。開発者にとって、モジュール性はソフトウェアの製作を、明確で十分に相互接続される部品に分割することで簡単にしてくれるんだ。
僕のハードディスクはext2ファイルシステムでフォーマットされているから、ext2.oモジュールはカーネル内にコンパイルされているんだ。定期的にWindows95とのデータ交換のためにディスクを読み書きする事があるから、vfat.oとfat.oのモジュールはデフォルトではアンロードされた状態にしてある。
ユーザーとしての僕は、これはみんな素晴らしく便利だね。ちょっと見てみると、この4つのサウンドのモジュールは94.5Kのメモリを食っているのがわかる。もし僕が28個全部ロードすると、これは431.8Kという途方もない容量にはね上がる。たとえ、それらがサウンドほどではないにしても、僕の408Kのカーネルと比べたら巨大だ。もしこれらをすべてカーネルに組み込んでしまったら、起動に時間がかかるだけでなく、もっと多くのRAMが不必要にカーネルに取られることになるだろう。それに、on-the-flyでコンポーネントを再構成する事がとても難しくなるだろう。現在、僕は、サウンドカードの使うIRQを替えたいと言いたい。それには、僕は単に設定ファイル(/etc/isapnp.conf)を編集して、サウンド・サブシステムを再起動(/etc/rc.d/init.d/sound restart)すればいいんだ。モジュール性はあなたのサウンドカードの再構成を、Apacheを再構成するのと同じようにシンプルにする!
残念だけど、モジュール性は何にでも応用できるわけじゃない。モジュール性が、速度を落したり、問題を複雑にしたり、セキュリティーホールのもとになったりして、物事を悪化させるような状況が幾つかあるんだ。これらの状況のほとんどは技術的に不明瞭な正当化があるので、僕は下に単に2つ挙げよう。
オーケー。いくらかのものはモジュール化されている。で、僕らはこれからどこへ行くべきなの?
もし、誰かが僕に質問したら、僕は彼に彼自身について尋ねるだろうね、モジュール化されていないものが沢山あるじゃないか。残念ながら、後方互換性が重要だと判断されている間は、このままだろうね。この点は、BeOSが能率的である主な理由の一つだよ -- 設計者は現在の慣例を捨てて、現状にあったシステムを設計したんだ。その結果、ちょうどそれがデザインされた通りになったんだ -- 素晴らしいマルチメディア・オペレーティング・システムにね。
じゃあ、何が捨て去られるべきなの? 煙る残骸の山になるリスクがあるけど(フレームは勘弁してね)、最初のはUNIXのコマンドラインの構造だろう。誤解しないでよ、僕はコマンドラインを常用していて、Xには確かな疑念を持っているんだ。でも、コマンドラインのパイプラインには更に強い疑念を持ってる。僕が思う幾つかの欠点を列挙してみよう。
そうです、僕は哀れな声を出してます。でも、これは僕が出来るようにしたい事なんだ。
[ds@phoenix ds]$ tar c myfiles >[1,2] |1 gzip -9 > backup.tgz |2 bzip2 -9 >{192.168.0.4}
僕の空想の世界(もちろん、その世界で僕はLinux 4.2.18を使ってる)では、「myfiles」ディレクトリをtarで固めて、bzip2で圧縮してネットワークの先にあるリモートのマシンに送ると同時に、gzipで圧縮してローカルなtarballにバックアップする。これは、すっきりしてるだけじゃなくて、多くのアプリケーションにとって役にたつだろう。
こんなスナイパーみたいに、僕は材料を合わせて組み立てるのが好きなんだ。僕は、サウンドカードのスピーカーの出力をテープデッキのマイクロフォンのジャックに差し込んで、デッキの録音ボタンをいれ、mpg123を動かすだけで、MP3をカセットに録音出来たら良いなと思うんだよね。だから、使うために簡単に一般化できるアプリケーション(たとえばQtツールキット)を、何でKDEやGNOME特有のままにしとかなくちゃいけないわけ。それは、KDEかGNOMEか、それとも素のXで動いてる? 何で、時計プログラムにKDEが必要なわけ?
何で、そんなにも多くの人々が信じられないほど誤ったのだろうか? マーティン・ルーサー・キングは「私たちはミサイルをガイドして来たと同時に、人間を誤った方向に導いて来た」と言った。KDEはデスクトップ環境である。それはアプリケーションのフロントエンドであって、アプリケーションの主成分それ自体ではないんだ。
残念だけど、僕は状況が今すぐに、特に、普通Mercedとして知られているCPI(Itanium)を転機点として改善されつつあるとか、Pentium IVがより早く(2000年後半にも)登場するとかは思ってない。この質問に対する回答は、それだけで一つの社説が書けるぐらいだ。
David Symonds (xoxus@usa.net)はオーストラリアのシドニー大学の最初の年のコンピューターサイエンスの学生で、彼の現在の職業の野望は職を見つけることだ。