--AIRの競合技術としてはMicrosoftのSilverlight/WPFなどが挙げられると思いますが、これらに対するご意見があればお聞かせください
SilverlightはFlash Playerと競合している、もしくは競合しようと考えているものですね。AIRが競合するのは、ネイティブのデスクトップアプリケーションだと考えられます。全てのOSには、多くのネイティブな開発ツールがあります。しかしAIRを使うと、一度開発したものは、完全に互換性が確保された形で3つの異なるプラットフォームで動作させることができます。しかも、それらは全く同じファイルを用いて、です。
現在市場に出回っている技術の中には、これと同じことを可能にしているものはないと考えています。この点に関してはアドビが完全に先んじていると言ってよいでしょう。
私たちは企業として、これからも常に互換性を担保し、クロスプラットフォーム開発を推し進めていきます。
--クロスプラットフォームで動作するアプリケーションというコンセプトは、Javaにも当てはまる可能性があるのではないかと思います。Javaに対する優位点はどのようなものでしょうか
Javaと大きく異なるのは、アプリケーションを動作させるランタイムのバージョンが固定される、という点です。例えば、AIRの1.0向けに作られたアプリケーションは、常に1.0のランタイム上で動作します。2.0向けのアプリケーションであれば、2.0のランタイム上で動作します。バージョンの違うランタイムは、それぞれ別個で、完全に分離しています。
Javaの場合は、アプリケーションを動作させるランタイムは、システムにインストールされているJREに依存するため、JREのバージョンを上げると、細かい互換性の違いからアプリケーションがクラッシュする可能性があります。
--では、複数バージョンのAIRランタイムがマシン上に同時に存在するということになるのでしょうか
全てのバージョンのAIRが、並列でAIRランタイム基盤の中にインストールされることになります。
例えば、AIRランタイム内にバージョン1.0と2.0がインストールされているとします。そして、AIR2.0向けに開発されたアプリケーションと、1.0向けに開発されたアプリケーションが存在するとします。これらのアプリケーションは、それぞれ自分が依存する個別の実行環境で動作するのです。これにより、ランタイム間の互換性の問題は全く生じなくなります。
さらにこれだけではありません。
ここに例えば、3.0向けのアプリケーションをインストールしたとします。すると、AIRランタイムは現在インストールされていないバージョン3.0を、自動的にインストールするのです。
このように、インストールされるアプリケーションに応じてランタイムも自動でアップデートされていくというのが、AIRの本当に素晴しいところです。もっとも、これらの機能はAIRがバージョンアップを重ねていかないと表に現れることはないので、当分の間皆さんの目に入ることはないわけですが(笑)
--AIRの現在の課題などがあったら教えてください
興味深いのは、この5年10年でデスクトップの世界からインターネットの世界に人々がこれほどまでに移ってきたわけですが、我々はAIRによってそういった人々を、ある意味、デスクトップに戻そうとしている。そのため、人々の意識をデスクトップに再度振り向けるというのが一番大変かな、という気がしています。
また、Webアプリケーションを開発することと、デスクトップのアプリケーションを開発することは、手法が全く異なります。当然それに伴って、開発者側も考え方を変えて開発しなくてはなりません。
--Webアプリケーションの開発者が変えなくてはならない考え方とは、具体的にどういうことですか?
最たる例がページリフレッシュモデルでしょう。
第一世代のインターネットはドキュメントベースで、つまり、1ページ1ページ遷移していく、というページ単位のものでした。それに対してデスクトップのアプリケーションは、全てのページ、ビューは全てクライアント側にあるわけです。これは大きな違いです。サーバロジックの一部をクライアント側に持ってくる、と言っても良いかもしれません。