本稿は当初2007年12月、InfoQ.comに掲載されたものです。
1. ユーザがFlexアプリケーションを実行するには、何かを新たにインストールしなければならない
Flex 2およびFlex 3で必要なのは、Flash Player 9です。現在、Flash Player 9ランタイムは世界中のコンピュータの94%にインストールされています。
Flex 2およびFlex 3のアプリケーションは、Flash Player 9で実行されます。Flexアプリケーションは、ベクトルグラフィクスやビットマップ操作、(ブラウザのネットワーキングスタックをベースにした)ネットワーキングなど、ネイティブのFlash Player API上に構築されます。そして、Flexフレームワークによってカレンダやデータグリッド、各種チャートなどの再利用可能なコンポーネントが提供されます。
2009年9月現在での、Flash Player 9の普及率は99%、Flash Player 10は94%。
Flexアプリケーションをコンパイルすると、Flash Playerのバイナリコード形式であるSWFファイルが生成され、このSWFファイルには、Flexフレームワークのバイトコードと各プロジェクト固有のカスタムコードが含まれます。コンパイル時にはFlexコンパイラがバイトコードを最適化するため、実際に使用されているクラスのみがSWFファイルへと収録されます。
また、アドビではデスクトップアプリケーション向けにAdobe AIRを開発しており、このデスクトップランタイムを、Webランタイム同様に普及させることが目標として掲げられています。Adobe AIR 1.0は、2008年初旬に提供開始の予定であり、現在はlabs.adobe.comにてベータ版がリリースされています。
2009年11月、Adobe AIR 2のベータ版の提供が開始された。
・Adobe、「Adobe AIR 2」ベータ版および「Flash Player 10.1」プレリリース版を公開(CodeZine)
・Adobe AIR 2.0 Beta(Adobe)
Adobe AIRを利用して、既に本稼働用アプリケーションの開発を手がけている企業は少なくありません。例えばeBayのアプリケーション、eBay Desktopが一例として挙げられます。
2. Flash Playerは100%クローズドソースである
Flash Playerの中核を担うのが、Mozilla管轄下のオープンソースプロジェクトであるTamarin Virtual Machineです。SWFのファイル規格は完全にオープンではないものの、コミュニティの協力によりosflash.orgにて文書化されています。また、SWFファイルを読み書きできるオープンソース製品は多数存在します。
製品としてのFlash Playerの方向性は、以前から、コミュニティとそのニーズに多大な影響を受け続けてきました。Flash Playerのコア言語は、JavaScriptの規格としても知られるECMAScript 262の実装です。また、Flexではコンポーネントやアプリケーションのスタイリング手段としてCSSが採用されています。さらに、Adobe AIRでは、デスクトップアプリケーションの基盤としてWeb標準が用いられているとともに、Tamarin、Webkit、SQLiteなどのオープンソーステクノロジも利用されています。
3. Flashはデザイナー、ビデオ、あるいは嫌がらせに適している
Flashの提供するパワーが、乱用されかねないことは否定できません。ポップアップやポップオーバー、イントロスキップ、目障りな広告などが雑然とスクリーンに表示されることがあります。しかし筆者は、宗教をその乱用例をもって判断すべきではない、という言葉を聞いたことがあります。この格言はテクノロジにも当てはまるのではないでしょうか。つまり、一部で目障りな使われ方が存在するからといって、Flash自体が避けられるべきではありません。これは、迷惑メールとして電子メールを乱用する者がいるからという理由で、電子メール自体を敬遠するのと同じことです。
Flashコンテンツは従来、デザイナー向けのタイムラインベースのツールで制作されていましたが、Flexは、デベロッパーがFlashベースのコンテンツ・アプリケーションを開発することを可能にするツールセットです。デザイナーとデベロッパーは、この2つのツール間でアセットを共有し、共同で作業を進めることができます。また、Flexには充実したコンポーネントベースが用意されています。詳しくは以下のリンク先を参照してください。