Oracleが「この2,3ヶ月で」JavaFX UIプラットフォームのiOSとAndroid実装をオープンソースする計画を発表した。これが実現すれば、開発者はこの技術を使って、始めてこれらのプラットフォーム向けのクロス-プラットフォーム アプリケーションを書くことができる。
OracleでクライアントJavaプラットフォームのチーフアーキテクトであるRichard Bair氏は、FX Experience でブログ記事を書いた。
あなた方の大部分は、 iOS / Androidへの移植に貢献する(バグレポートを介すか直接コードを寄贈することで)、と言った。我々はコードがオープンソースされたら、あなた方がコードへの貢献を開始できるように、猛烈に頑張って準備を進めている。
iOS用の最初の細々したものは来週出るはずだが、完全なリリースの前に、JavaFXスタックの他の部分もオープンソースとして入手できるようにする必要がある。
昨年のJavaOneで、Oracleが全部揃ったJavaFXスタックをオープンソースとしてリリースする計画を発表した時、2012年の終りまでに開発を終える意図である、と言った。Bair氏は、「私には嬉しい驚きですが、ここに参加している皆さんにも同様でしょう」のように言った。
それ以来、35の異なるサブプロジェクトから 543,055行のコードが再ライセンスの形でリリースされてきた。Bair氏は、チームがこの1,2ヶ月でリリースを予定しているコードは、JavaFX ウィンドウツールキットGlass、シーン ラスタライザーとレンダラーのPrism、また一緒にウェブレンダリングコンポーネント、イメージI/O、メディアソースである、と言った。1つ残っている障害は、JavaFXフォントレンダラー javafx-fontで、 Bitstreamからライセンスされたプロプライエタリな技術に依存している。これを解決するために、Bair氏が言っているのは、チームは Bitstream技術をネイティヴなOSへの呼び出しで置き換える計画に取り組んでいる。
Raytheon Companyで主任ソフトウェアエンジニアかつアーキテクトである Dustin Marx氏が彼のブログで次のように主張している。「JavaFXを使ってAndroid と iOSのアプリケーションを開発できたら、おそらくJavaFXの状況を劇的に変えるでしょう。」 Anahata Technologiesによって 繰り返された意見である。
もしこれらの取り組みが成功したら、世界中のソフトウェア・ベンダーは、1つのコードベースを使って、 iOS, Android あるいは Windows RTを走らせているモバイルデバイス、デスクトップコンピュータ、ラップトップ用のアプリケーションを提供できます。
「私は、あなた方全員がこのような貢献で何をするのか楽しみにしていますし、近い将来私の携帯やiPad上でたくさんのJavaアプリケーションが走ることを願っています。」と、Bair氏は付け加えた。
しかし、JavaFXベースのアプリケーションをAppleが牛耳るiOS App Storeに入れるには、技術的と法的な課題が残っている。法的な面では、Appleの条項とライセンスのために、OracleがGPLを使用することの間にある相互作用は、懸念事項の原因となる。 JavaFX とJDKのオープンソースバージョンは、classpath 例外を伴う GPLv2としてライセンスされている。Appleは、Free Software Foundation (FSF)からの苦情に対応して、GPLの下でライセンスされたゲームをiPhoneポートした、 GNU GoをApp Storeから削除した。FSFは、ストアのサービスに関する条項、特にストアからダウンロードしたソフトウェアは、5つのデバイス上でしか使えない、というのは GPLv2に反している、と 主張した。当然、Appleは、条項を書き換えずに、単にそのゲームを取り除いた。
Bair氏は言うには、「彼の理解」では、 classpath例外の意味するのは、OpenJFX と OpenJDK (違うライセンスでリリースされたバイナリーのスタブは除いて)をあなたのアプリケーションと組み合わせて、貴方自身のライセンスのもとで、単一の合体バンドルとしてリリースできる。これには前例がある。Appleは、 OpenJDKを使ったアプリケーション、 Cyberduckを Mac App Storeに入れることを許している。しかし、Bair氏自身が言っているのは、彼は弁護士でないし、100%確実ではない。
技術的には、もちろん、このようなやり方でバンドルすると、JVMと JavaFXライブラリの両方の複数コピーが同じ、比較的制約のあるデバイス上で走ることを意味する。含まれるJVMは、完全版よりも軽量であることが期待される。「両方の我々がポートしたものは、 iOS/Android向けJavaSE Embedded のまだリリースされていないバージョンをベースにしています。」とBair氏が言った。もちろん、リリースされるまで、それがどのくらい軽量なのかは、もちろんわからない。そして更に、JITコンパイルをおこなう仮想マシンに対するAppleの制約によって、おそらくJavaFXアプリケーションは、パフォーマンス面で苦労するだろう。
JavaFXはまた、モバイルの世界では幾つかの厳しい競争に直面している。クロスプラットフォーム開発を望み、無料のオープンソース技術を使っている開発者は、HTML5とPhoneGapのようなフレームワークを使うことができ、一方ゲーム開発者にとっては、強力な競争相手であることからUnityとShiVa3Dのようなプロプライエタリな代替製品へ通り道である。Bair氏とチームの努力は、賞賛に値するがもしOracleがモバイルプラットフォーム上でJavaFXの公式のリリースをもっと約束しなければ、開発者を引き付けることは難しいだろう。