Adobe がモバイルデバイス用の Flash 開発を断念する,という ニュース のあった直後,同社が Flex SDK を "確立されたオープンソース基盤として" 寄贈する意向であることが発表された。
Adobe の想定するオープンソース財団が,Adobe との共同作業を 発表して 2011年7月に創立された Open Spoon Foundation なのか,あるいはもっと知名度の高い Apache Foundation など他の財団なのか,現在公表されている情報では明らになっていない。Adobe が Nitobi を買収したときに PhoneGap を寄贈したのは後者だった。InfoQ ではより詳細な情報を得るべく Open Spoon Foundation 理事会に話を聞いたのだが,詳細は現在検討作業中であるという返答だった。その内容は次のようなものだ。
Open Spoon Foundation の会員は,Flex の思想的指導者とコミュニティメンバで構成されています。私たちは Adobe との緊密な関係のもとで,オープンソースプロジェクトの立ち上げ作業を実施しました。その関係は Fedora と Red Hat の組織的関係に似ています。実は組織の名称である Spoon (スプーン) というのも,Flex SDK コードをフォーク (fork,分岐) するよりもうまいやり方,という意味の言葉の遊びなのです。私たちは,コミュニティとコードの統一性を可能な限り維持することを目標としています。
つい先日のことですが,オープンソース移行に関する新たなアイデアの提案が Adob からありました。当初の計画よりも大規模で,Adobe とコミュニティの両方からより多くの投資を行うことによって,さらに早いペースでの進展を実現するものだと考えています。その取り組みの一環として FleX SDK が,私たちとは別に設立された,例えば Apache のような財団に対して寄贈されることになりました。そのプロジェクトのリーダーシップは Adobe の代表者と,Open Spoon Foundation からも大勢が参加するコミュニティによって構成されることになります。
このような楽観的な観測が,必ずしも全員に共有されてはいない点も指摘しておかなければならない。金曜日にリリースされた Adobe の FAQ 資料 によれば,Eclipse ベースの Flex アプリケーション用 IDE である Flash Builder の開発は継続する意向のようだ。ただし同じ FAQ の中で同社は,企業開発者は今後 Flex ではなく HTML 5 に注目すべきであるという考えを表明して,"長期的には HTML5 が企業アプリケーション開発のための最善の技術だと考えています" と記している。
予想されたとおり Adobe のこの FAQ 資料は,一部の開発者から 怒りの反応 を引き出している。ある記事では Adobe の HTML 5 に関するコメントに対して,次のように書いている。
Adobe がこのような声明をオフィシャルブログで発表した以上,いったいどの企業が大規模 Flex プロジェクトに投資するというのでしょう。こんな事態がなぜ突然起きたのか,まったく理解できません。まさに悪夢のようです。
別の開発者は,
私は Flex の技術習得に,これまで何年もの間投資を続けてきました。今となっては時間の無駄に思えます。Flex に対して多大な投資を続けてきた多くの企業ユーザたちも,私と同じ思いを抱いているに違いありません。なぜ明確な移行計画が描けないのでしょうか? どうして Adobe は,こうも急に Flex を放棄するのでしょう? HTML5/JS/CSS にはまだ,互換性に重大な問題が残っています。私たちはこれまで,大規模で高度なリッチインターネットアプリケーションを構築してきました。これらは大規模なオブジェクト指向開発をサポートする AS3 と Flex の能力を持って,始めて可能となったものです。私たちが構築するのは単純な Web アプリではありません。ユーザが求めているのは,複雑なデータの可視化ツールなのです。そんなユーザに対して今,何と言って説明すればよいのでしょう? 残念ですが Flex は死にました,HTML5 はまだまだ未熟です,あと数年待ちましょう,とでも言うのですか?
Flex のオリジナルを開発した Macromedia が初期リリース (1.0 と 1.5) でターゲットにしていたのは,Java によるエンタープライズアプリケーション開発マーケットだった。 この製品は Java EE アプリケーションサーバを使用して,MXML と ActionScript をオンザフライで Flash アプリケーション (SWF バイナリファイル) にコンパイルするもので,Java と エンタープライズ指向のニュースサイトで大々的に宣伝されていた。Macromedia を買収した後に Adobe からリリースされた Flex 2 では,ライセンスモデルとアプローチが大きく変更されたが,それでも同社は Flex Data Service を通じてエンタープライズ指向のソリューションとして,Flex をプッシュし続けた。その結果として Flex は,エンタープライズ開発者の間でかなりの人気を得ることになったのだ。
Flex SDK は 2007 年の Flex 3 SDK リリースからオープンソースになっているが,プロジェクトを牽引しているのは今に至るまで Adobe である。それもこれまでだ。FAQ によれば,
プロジェクトは今後,Flex SDK 開発チームの開発者たちとコミュニティの主要な技術者たちによって共同で進められることになります。その中には Spoon Project のメンバや,現在 Flex を使用している大企業からのコントリビュータも含まれています。Flex SDK の機能開発は新たなガバナンスモデルのもとで継続される予定です。Adobe は今後も Flex SDK への貢献を続けます。
Java のオープンソース化は,エンタープライズ開発におけるその地位を大きく損なうものではなかった。java には Apple や IBM,Oracle,SAP,その他多くの巨大企業のバックアップが存在している。一方で大企業の多くがオープンソースソフトウェアにいくらかの不信感を持っていて,一般的には何らかの企業保証のあるソフトウェアを好んでいる,という事情は事実としてある。これはミズーリ州セントルイスの Adobe ユーザグループ ‘Flex and Fuse the Arch’ の共同マネージャである Jeff Roberts 氏が tweet で指摘した点だ。
個人的な意見として,エンタープライズ級の技術が成功して発展を遂げるためには,唯一の管理企業の存在が必要だと思います。Flex はまさにそれを失いました。
氏は我々にこう語った。
大企業がある技術に大きな投資を行うためには,その技術の将来性に対する何らかの保証が必要です。そして将来性は往々にして,その技術を管理する企業によるバックアップという形で示されるものなのです。java はその完璧な実例です。もともとオープンソースではありませんでしたが,当初は Sun Microsystems,後には Oracle という後ろ盾がありました。同じことが Microsoft の多数の技術についても当てはまります。企業による管理がなければ,その技術を積極的に導入して,ビジネスクリティカルなアプリケーションスタック構築の基礎とすることに躊躇する組織もあるでしょう。真のオープンソースソフトウェアの利用については,それぞれの組織が違った意見を持っていますが,私自身,ひとつのオープンソースライブラリや言語を使うにも正当化や議論,管理者の承認を求められるようなプロジェクトを数多く経験しています。
管理企業がなければ,通常はサポート契約を結ぶことができません。頼りとする技術がオープンソースである場合,その技術に問題があったときには一体誰の襟首をつかみ上げればいいのでしょうか? 問題を解決するために誰が火中の栗を拾うというのでしょう?
Adobe がどの程度コントロールを維持するのか,どれくらいの資金を提供するつもりかなどを語るには時期尚早ですが,それらがなければ,この技術への新規投資あるいは投資の継続について,多くの企業がためらいを覚えるでしょう。これが,これらの組織の本心からの回答であるのかどうかについては,私には何とも言えません。しかし Adobe のニュースを見て明らかなのは,組織が Flex と Air を採用あるいは利用継続に満足できるためには,この点でもっと多くの情報の公開が必要である,ということです。
InfoQ はさらに Autospaces の創業者で社長である Frank Sommers 氏にも話を聞いた。氏の意見では,
まず最初に,Adobe のメッセージにはいささか困惑を覚えます。エンタープライズ開発に対する同社の中心的手法は Flex でした。彼らは今,その技術から距離を置こうとしているように思えるのです。多くの企業がエンタープライズ Flex アプリケーションに投資をしてきました。しかし Adobe の先日の発表で,グリーンフィールドプロジェクトが Flex に注意を払わないことはほぼ確実になりました。次の月曜日の朝にはたくさんの開発チームが,自分たちの Flex UI のリプレース方法についての議論で大騒ぎするであろうことは想像に難くありません。Flex の開発チャンスはおそらく枯渇することになるでしょうから,エンタープライズ開発者たちがその作業時間を投ずる場所を他に求めることは確実です。
Flex と HTML5 が平和的に共存できる移行時期を確保することが強く望まれます。今のところ Flex を HTML に組み込むのは容易ですが,HTML を Flex に組み込むのはそれほど単純ではありません。
Flex SDK については,個人的には Flash ランタイムや Flash Player ほどの心配はしていません。Flex の最大の魅力のひとつは,Flash Player あるいはその相当品が,PC スタイルのコンピュータ (ラップトップを含む) の 98% に用意されている,という点にあります。Swing と Java による UI 開発の立場と比べれば,これは大きなメリットです。Adobe の最新の発表では,Flash Player の今後に関する彼らの意向が明確にされていません。技術的な複雑さだけでなく,PC 製造者と関係した Adobe の配布モデルに依存したFlash Player の偏在性の面でも,オープンソース形式で Flash Player の開発を継続することは将来的に困難が多いと思います。
要するに Flex は,もうすでに過去の技術となったのかも知れないのです。私自身が Flex 開発に関わるようになったのは,Java ベースの UI がエンタープライズ環境で動作しなかったこと,HTML/AJAX ベースの Web 開発ではブラウザの非互換性に対処しなければならかったことなどが理由でした。Vaadin や GWT-Ext (Smart GWT),Sencha などといった最新世代の Web 開発フレームワークがこれらブラウザの非互換性問題を解決して,Flex の必要性を軽減してくれるかも知れません。
主要なリッチインターネットアプリケーション (RIA) ベンダたちは,Sommers 氏の最後のポイントに強く同意するだろう。Microsoft が Silverlight を重視しなくなったこと,Adobe が Flex と Flash への投資を減少したこと,これらは両社が HTML5 を既に勝者であると考えていることを暗示している。Oracle は当然ながら JavaFX への多大な投資を続けている。RIA での現在の状況は,JavaFX にとっての好機ともなり得るのだが,現実的には JavaFX は RIA に関するほんの一部を占めるのみであって,Java デスクトップスタックのオーバーホールに過ぎない。