Oracleが主に企業向けソフトウエアに注力していることを考えれば、同社がクライアントサイドのJava技術を無視していると考えるのも無理はない。しかし、今年のJavaOneでOracleがJavaFXを筆頭にディスクトップ関連の技術を推進しようとしているのがわかった。また、OpenJDK上で動作するJavaFXが完全にオープンソースになるようだ。
2008年に登場したJavaFXだが、あまり普及していない。GUI開発のフレームワークを使うために新しい言語(JavaFX Script)を勉強しなければならない点で開発者から不満が出ている。昨年のJavaOneでOracleはJavaFX 2.0ではJavaFX Scriptは将来的に廃止する機能になり、完全にJavaベースのAPIに置き換えられると発表した。そして実際JavaFX 2.0はその通りになった。つまりJavaFX 2.0を使えば開発者はどのJVM言語(Java, Clojure, Scala, Groovy 等)を使ってもアプリケーションが開発でき、最新のJVMが動作しているデバイスならどんなデバイスでもアプリケーションを実装できるということだ。今回のアップデートではいくつかの新しい特徴が追加された。XMLベースのUI記述言語(FXML)やMicrosoftのKinectを含む新しいデバイスのサポートだ。
開発者が簡単にFXMLを扱えるようにするため、OracleはJavaFX Scene Builderと呼ばれるエディタを開発している。これはカンファレンスでも発表された。スタンドアロンのツールだが、今後NetBeansに統合される予定だ。現在はプライベートベータで公になるのは2012年の前半だ。
またOracleはHTML5もJavaScriptも無視していない。JavaFX 2.0ではJavaFXアプリケーションにHTML5を埋め込み、WebKit経由で描画することができる。JavaOneで発表されたOracleのAvatarは、データセンターやクラウド上のJavaクライアントやJava EEサーバがコンテンツを共有しHTML5ベースのUIで表示させることができるハイブリッドアプリケーションの実現を目指すプロジェクトだ。
Oracleは今後もSwingをサポートするが、同社はGUIアプリケーションを構築するにはJavaFXの方がより良い方式だと思っているようだ。カンファレンスにはJavaFX関連の様々なセッションが開催されていたことからもこの技術に対する関心の高さが伺える。しかし、JavaFXがGUI開発のための優れた仕組みだとしても、動作させたいデバイスで動作させられなければ意味がない。
これは特にモバイルにおいて重要だ。Java MEはSunと携帯製造業者にとって、当初は成功だったが、現在は悪戦苦闘している。Research in MotionはJavaベースのBlackBerryプラットフォームをQNXベースに置き換えている。NokiaのJava MEに対する依存もWindows Mobileへ移行することで薄れるだろう。JavaベースのAndroidプラットフォームですら標準的でないJavaの実装を使っている。
しかし、改善は行われている。JavaOneでOracleはJava MEと最新のJava SEを統合する計画を発表した。この統合されたプラットフォームではJavaFXのような技術もモバイルで使えるようになることが期待されている。キーノートで同社のOracle Fusion MiddlewareグループでクライアントJava開発部門のバイスプレジデントであるNandini Ramani氏はJavaFXで作成したゲームがAndroidとiPadの両方で動作することをデモして見せて万雷の拍手を浴びた。AppleがiOS上でJavaが動作することを認めたのではない。このデモが証明したのは、ランチャーアプリ内にJVMをリソースとしてリンクさせるという方式であり、このようなことができるという可能性を示したに過ぎない。氏はこの技術を実際に利用できるかどうかについてAppleと議論しているわけではないと認めた。しかし、同時に氏はこれと同様の技術を使って制約を回避しているアプリケーションが OS X app storeにあることも指摘した。Cyberduckなどがそうだ。
また、OracleはJavaFXをより多くのディスクトップOSで動作させることにも注力している。来年に予定されているGAリリースではOS XとLinuxでも動作するようになる。2013年にはJava 8 SDKはJavaFX 3(おそらくすべてのOSで動作する)を含む。そして、OracleはJCPを通じてこの技術の標準化に向けて動き出すことを目論んでいる。
またOracleはOS X向けのJDK 7のプレビューを公開した。これは、Appleが2010年に同社独自のJavaの実装を廃止することを受けている。GAリリースは2012年の予定だ。