2003-11-18

Microsoft が Longhorn と共に発表した XAML 周辺が xml-dev を騒がして久しい. やれやれ...という話を書こうと思っていたら, macromedia が Flex を発表した. やれやれ...

Macromedia の賢いところ

Flex は基本的にサーバサイドの技術だ. UI を記述した マークアップ(MXML)を Flex サーバが SWF に変換してクライアントに送りつける. だからクライアントには Flash Player さえあればよい. macromedia の立場からすると極めてまっとうな技術だと言える. 彼らの賢いところ(1)は, これをあくまで "The presentation-tier solution" ですよ, と位置づけている点にある. 実際, Flex は J2EE のコンポーネントとして動く. (将来的には .NET にも対応するとのこと.) 既存のアプリケーション・サーバとは競合しない姿勢だ. もちろん, macromedia がこのまま presentation-tier に留まり続けるはずはない. しかし, 競争の激しいサーバーサイドの世界に乗り込む足掛かりとして, これ以上の戦略はないように思える.

J2EE 上で動くといっても, 利用する言語は ECMAScript だ. EJB などで定義されたオブジェクトを利用する bridging にはそれなりの手間がかかるだろう. 面倒をさけるために, 開発者はビジネスロジックの記述も macromedia 製品で統一したいと思うようになる. 顧客への忠誠心溢れる macromedia は喜んでそういった技術を提供し, ついでに競合他社のアプリケーション・サーバを駆逐する. Flex の戦略はおおよそこんなところか. 感嘆すべき見事さ.

彼らの賢いところ(2)は, 標準に準拠しているというポーズが徹底している点だ. Flex は J2EE 上で動く. それだけでなく, UI のスタイル記述に CSS を利用すると言っている. プログラミング言語は ECMAScript 準拠. また MXML はスキーマを提供し, 好みの XML エディタを使えますよと主張. デモに Eclipse を使うあたり, 鮮やかなものである.

しかし, macromedia が言う "標準への準拠" は, プラットホームの競争を促進するものではない. ActionScript 以外の ECMAScript 処理系を利用できるわけでもなく, MXML が標準化されてもいなければセマンティクスもはっきり定義されてもいない. CSS はおそらく独自のプロパティを大量に導入したものになるだろう. (HTML の CSS は HTML 依存で, Flash に使うには poor すぎる.) これらと互換性をもった何かを作るのは現実的でない. ただし, アプリケーション開発者に対して敷居を下げる意味はある. CSS や ECMAScript の記法やアイデアに慣れ親しんだデザイナやプログラマは多いからだ.

標準の効用

"標準" が持つこの二つの側面(競争の促進, 開発者負荷の軽減)を意識すると, Microsoft が .NET でとった戦略の失敗が見えてくる. Microsoft は CLI や C# を ECMA で標準化した. ソースコードも提供している. これは競争を促進する意味での標準化である. 競合他社からの批判を避けるには有効だが, アプリケーション開発者には何も嬉しくない. それに, C# といういかにもプロプリエタリな言語を標準化するというのは, 救い難く言い訳っぽい, 後付けの印象が拭えない. 一連の Longhorn 関連プロジェクトを見ても同様の印象がある.

彼らの世界征服に向けて, 一番のボトルネックはこのあたりにある気がする. 政治的な縛りが多いとはいえ, Microsoft のイメージ戦略の下手さは見ていて悲しくなる. コンサル会社はいじめてばかりいないで, 助けてやればよいのにな. 払いは良さそうだし.