「Windows2000を見ていると,まるでかつてのMULTICSを思い出しますよ」--国内ベンダーのエンジニアとこんな話をした。

 WWWサーバー用のOSとして考えるとWindows 2000は余計な機能が多くて重い。Windows2000をOSに使うと1クラス上のPCサーバーを勧めなくてはならない。安価なPCサーバーを求める顧客の要求にこたえようとすると,Linuxへシフトせざるを得ないというのだ。

 自分で性能を評価したわけではないのでOSの重い/軽いは断言できない。しかし最近,Windows2000があまり話題に上らないことは確かだ。

 そもそもGUI(Graphical User Interface)がカーネルにしっかりと張り付いていて外せないOSは,ソフト開発環境としても少々古さを感じさせる。Windowsが2階層のクライアント/サーバー型分散システムのクライアント環境として脚光を浴びたのは,今から10年ほど前のこと。クライアント・ソフトに扱いやすいGUIの機能を装備するために,ある程度の開発/実行環境を必要とする2階層のシステムならOSにGUIはあった方が便利だ。しかし,開発対象がクライアントにブラウザーを使う3階層システムだと,OSに張り付いているGUIの存在がかえって煩わしい場合だってある。

 米Microsoftが6月に発表した「Microsoft.NET」やその中核となる開発言語の「C#」も,最新技術というよりは,ゴテゴテと追加機能を付けただけとしか筆者の目には映らない。開発ツール「Visual J++」の延長に,XML(eXtensible Markup Language)を利用するための環境を組み合わせて目先を変えただけだからだ。

 しかも,いわゆる“.NET”はおそらくこれからが大変だろう。新しい言語のC#をベースとするソフト開発環境の整備は,ゆうに5年以上かかったとしてもおかしくないと思うからだ。

 たとえば今ではECサイト構築ツールの開発に当たり前のように使われるようになったプログラミング言語「Java」。分散ガーベジ・コレクションやアクティベーションといったサーバー側の永続的なオブジェクトを扱うために必要な機能を当初は備えていなかった。こうした機能を実装レベルのソフトへ盛り込むまでに,ゆうに3~4年の開発期間を要した。

 こうしたことは,1989年に第1版の仕様を公開した米Object Management GroupのCORBA仕様でもほぼ同じだった。オブジェクトの生成/削除や永続的なオブジェクト管理のための標準インタフェースは当初決まっていなかった。標準のインタフェースが決まったのはそれから数年後。製品レベルで標準の機能が使えるようになったは1995年ごろのことだった。

 新しいプログラミング・モデルを決めて,さまざまなサーバー・ソフトの開発に使える開発/実行環境のアーキテクチャを設計するのは本質的に時間と労力のかかる仕事であることは,こうしたさまざまな過去の事例が示している。

 単なるソフト開発環境の整備に何年も費やすのは,Microsoftでも許されないのではないか。変化に即時対応できるソフト開発環境の整備だけに5年以上もかかったら,準備万端整うころには当初の設計そのものが陳腐化してまう。

 こんなことをするよりも,いまどきのサーバー・ソフト開発に必ずしも必要でない機能をサーバーOSからは取り外せるようにしたらどうだろう?

 Windows2000サーバーからGUIが取り外せるようになったら,いまどきの新しい機能をすべて自前でそろえるよりもずっとスッキリすると思うのだが。

(佐藤 康朗=BizIT編集)