ポール・マリッツ副社長 |
Microsoftは、6月22日に開催したイベント「Forum 2000」で、NGWS(Next Generation Windows Service)と呼ばれていたWindows.NET戦略の概略を発表。そして、今回のPDC 2000ではWindows.NETを支える技術的な内容を説明する。この2つのイベントで、ようやくWindows.NETの全貌が見てくるという寸法だ。
Windows.NETでMicrosoftが指向していることは、ある意味ではシンプルだ。データはXML化し、プログラムはコンポーネント化してしまう。そして、.NET Frameworkは、Common Language Runtimeによってクロスランゲージでのコンポーネントフレームワークを提供する。つまり、開発者はC++でも、Visual Basicでも、新しいMicrosoftの言語のC#でも、言語の種類に縛られることなく、リユーザブルなコンポーネントを開発、利用できるというわけだ。また、.NET Frameworkでは、Microsoftの言語だけでなく、COBOLやPascal、Smalltalk、APL、Perlなどのサードパーティの言語もサポートするという……ただしJavaをのぞいて。
このことは、.NET Frameworkがある意味でJavaに対抗する仕掛けであることを鮮明にしている。実際、Common Language Runtimeは、Javaのバーチャルマシンにあたるランタイムで、広範なサービスを提供する。中間言語をネイティブにコンパイルするだけでなく、メモリのガーベイジコレクション、セキュリティ、タイプチェック、エクセプションマネージメント、インヘリタンス、バージョニングなどのサービスを、クロスランゲージで提供するという。
こうしたサービスの提供で、.NET Frameworkでは、MicrosoftのオブジェクトアーキテクチャだったCOMやCOM+では不十分だったコンポーネント化を実現する。ランタイムが仲介することで、オブジェクト同士がダイレクトにインタラクトできるようにするという。
例えば、COMではコンポーネントの外部とインタラクトするためには、専用のインターフェイスでラップしなければならなかった。しかし、.NET Frameworkではそうした煩雑な作業は取り除かれる。
「レジストレーション、GUID、IDLファイル、IUnknown……などが不要になる」とMicrosoftが発表すると、会場は割れんばかりの拍手に包まれた。いかに、これまでWindowsプログラマがこうした煩雑さに苦しめられていたかがわかる。
Unity Programming Models | Common Language Runtime | Framework, Languages, And Tools |
だが、Microsoftに関係するデベロッパにとって、これらは目新しい話ではない。というのは、この.NET Frameworkの構想自体は、'97年のPDCですでに明かされていたからだ。例えば、マリッツ氏は、当時すでにCOMを拡張してコンポーネントサービスを提供できるようにすると説明している。また、当時、MicrosoftでDataBase & Transaction Engines担当の副社長だったデビッド・バスケビッチ氏は、COM+はバーチャルマシン環境、ガーベイジコレクションなどのサービスを、コンポーネントモデルとしてのCOMに持たせるものだと表現していた。具体的に、包括的なサービスを提供するランタイムを出すことも説明していた。
そして、この時も、Microsoftは拍手喝采を浴びた。3年待たされた開発者は、.NET Framework完成まで、あとどれだけ待たされるのだろう。
□関連記事
Microsoftの次世代Windows構想「Microsoft.NET」
http://pc.watch.impress.co.jp/docs/article/link/msnet_i.htm
□バックナンバー
(2000年7月12日)
[Reported by 後藤 弘茂]