Monadがないなら、Longhornにする意味はない

次世代WindowsのLonghornに新スクリプト言語のMonad(Microsoft Shellのコードネーム)を組み込むという計画がキャンセルに。Monadを搭載しないLonghornにアップグレードする意味がどこにある?

» 2005年06月15日 17時21分 公開
[Steven J. Vaughan-Nichols,eWEEK]
eWEEK

 いったいLonghornはどうなっているのだろう。

 まず、WinFSが外された。次に、Longhornは結局.NET Frameworkベースにはならないことが分かった。

 そしてMicrosoftによると今度は、シェルとスクリプト言語の素晴らしいコンビネーションであるMonadも、Longhornには組み込まれないという。

 WinFSを待望していた人もいたが、わたしはまったくどうでもよかった。世界はプロセッサ集約型のファイルシステムを本当に必要としているか? そうは思わない。

 わたしはReiserFS(Reiser File System)の作者、ハンス・ライザー氏の考えに賛成だ。同氏によれば、あるファイルシステムの上に新たな層を作る必要が生じた場合、上位層をさらに1つ増やして複雑さと抽象性を増すよりも、そのファイルシステム自体を作り替えるべきだという。

 Longhornの中核から.NET Frameworkが外されるという話にも、動揺はしなかった。.NET FrameworkはOSのような複雑なものの構築には向いていないという、以前からの私の持論が証明されただけのことだったから。

 アンチMicrosoft派の偏見と思うかもしれないが、これは違う。

 わたしは、Javaを含めてハイレベルな言語のどれも、プロダクションレベルのOSの構築に適しているとは思わない。

 プロセッサスピードが3GHzを超えても、OSに必要なのは1にスピード、2にスピード、とにかくスピードだ。

 そのためには、速いマシンコードを簡単に書ける言語が必要で、そうなると、まだC言語系を使う必要があるということになる。

 しかしわたしは、Monadは有望だと思っていた。

 Monadは、一部の人が使う「Windows用次世代CLI(コマンドラインインタフェース)」という呼び名を、はるかに超える存在になるはずだった。

 それは、システム管理者やパワーユーザーがやっつけのプログラミングに重宝するPython、Ruby、PHP、Perlといった高度なスクリプト言語の、さらに一歩上を行くスクリプト言語になるはずだった。

 Monadは、年老いたVBS(Visual Basic Scripting)を本来あるべきようにお払い箱にするはずだった。

 わたしにとって、Monadは、Longhornで最も有用な機能となるはずだった。

 だが、高度なスクリプト言語は、たまりにたまったネットワーク作業自動化ツール作成業務に使えるほかにも、はるかに多くのことに役立つ。

 高度なスクリプト言語を使って複雑なアプリケーションを構築できる。例えば、現在出回っている中で最も優れたスパム対策アドオンソフトのPOPFileはPerlで書かれている。

 Monadが実現しようとしていたこと――それは傑出したシェルプログラミング言語になろうとする真の試みでもあったと思うのだが――は、単に構造化テキストを1つのパイプから別のパイプに渡して結果を出すのではなく、.NETオブジェクトも渡せるようにすることだった。

 つまり、コマンドラインから直接――実際にはスクリプトプログラムから直接のケースが多いだろうが――ADO(ActiveX Data Objects)を扱えるということだ。

 そしてそれはさらに、非常に多種多様なデータストアに簡単にアクセスして利用できるということを意味していた。

 例えば、適切なコネクタがあれば、MySQLで構築した人材・機器データベースをAD(Active Directory)に隠れた情報で簡単に更新できるプログラムを、さっと書けるようになるはずだった。これは素晴らしい!

 だが、パワーだけあっても危険なだけだ。俗に言うように、「誰にも失敗はあるが、ひどい失敗をするのはコンピュータを使っているとき」なのだ。

 Microsoftは長い間、プログラムとOSのIPC(プロセス間通信)メカニズムを作るという罪を犯してきた。DDE(Dynamic Data Exchange)やOLE(Object Linking and Embedding)などがその例だが、これらは本質的に、ネットワーク環境における安全性を欠いている。

 実際、Windowsのセキュリティが悪い冗談になってしまうのは、私の考えでは、このように根本的なセキュリティ上のミスがあるためだ。

 ユーザーによるリモートコマンド実行を可能にするMonadは、確かに、悪用される可能性が大いにあった。

 Symantecのリサーチャー、エリック・チェン氏は、Monadは1999年のMelissaウイルスのように、新世代の「スクリプトウイルス」を生むことになる恐れがあると懸念を表明した

 もちろん、チェン氏の考えは正しい。Microsoftの過去のセキュリティ関連の惨めな実績を考えれば、Monadのセキュリティを信じるほどおめでたくはなれない。

 だがそれでも、わたしは、楽天的過ぎるかもしれないが、Microsoftがついに過去のセキュリティ上の過ちから学び、Monadではもしかして、ひょっとすると、セキュリティと有用性のバランスを取ることができるのでは――と本気で考えていたのだ。

 それもこれも、今となっては過去の話。Monadのセキュリティ上の懸念を解消できなかったからか、それとも、PHPが文字列を扱うのと同じくらい簡単にオブジェクトを扱えるスクリプト言語を作るのがMicrosoft開発者の力量を超える仕事だったからか、いずれにせよ、Monadが近い将来登場する見通しは消えた。

 そして最後に疑問が1つ。果たしてLonghornには、誰かが「アップグレード」したくなるような機能が何か残るのだろうか?

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ