[速報]JavaもHTML5対応へ。モバイルではWebKitを採用。JavaOne 2010
サンフランシスコでJavaOneが開催されています。今日9月21日(現地時間20日)の基調講演では、デスクトップPCとモバイルデバイスで動作するJavaをHTML5対応のWebアプリケーションプラットフォームにする、といった今後の開発方針がオラクルから発表。Javaのオープンソース実装であるJDKもロードマップが発表されました。
今年はサン・マイクロシステムズがオラクルに買収され、同社からジョナサン・シュワルツ氏やJavaの父ジェームズ・ゴスリング氏など昨年までのJavaの顔が去って最初のJavaOneです。
マルチコア、大規模メモリのサーバへの最適化
基調講演に登場したのは、プロダクトデベロップメント担当上級副社長のThomas Kurian氏。

Javaはサーバから小さなJavaカードまで、さまざまなデバイスのプラットフォームとなっている。

まずはサーバとデスクトップの話題から始めよう。この分野でのJavaの設計目標は、新しいアプリケーションモデルと新しいハードウェアにJavaを最適化することだ。
開発者のために生産性を向上させ、Java VMをモジュラー構造化する。そしてJava VMをJava言語だけではなく、あらゆるクラスの言語にとって最高の仮想マシンとする。

そのために行うこと。Project Coinはタイプインターフェイスを改善し、Strings-in-Switchステートメントなどを追加する。Project Lambdaでは、Javaにクロージャを持ち込む。Project Jigsawでは、Java VMの実装を単一のVMからモジュール構造に置き換え、ノートPCからハイエンドサーバまで、さまざまなスケールにあった実装を行いやすくする。

さらに、マルチコアを積んだプロセッサ、特にサーバで大規模なメモリと高速なネットワークを搭載する新しいクラスのマシンに対しての対応を強化する。Fork/Joinのフレームワークやマルチスレッドの拡張、そして大規模ヒープ領域でのガベージコレクションの改善などだ。
また、Java VMで動的言語のサポートを改善する。

2011年と2012年にそれぞれオープンソースのJDKであるOpenJDKのリリースも予定している。詳しい機能については「JDK 7 Features」を参照してほしい。
オラクルはベストなオープンソースでのJava実装にコミットしている。

JavaクライアントはHTML5のサポートへ
Javaクライアントに話を移そう。ここでの設計目標は、ベストなHTML5とネイティブアプリケーションの体験(エクスペリエンス)をJavaで提供することだ。
プログラミングモデルはJavaやJavaFXを、そしてJavaとJavaScript、HTML5とのシームレスなインターオペラビリティを実現する。レンダリングにはハードウェアアクセラレーティングを含む2Dと3Dに対応したJavaグラフィックエンジンを提供する。

アーキテクチャはこうだ。シングルプログラミングモデルとしてJavaFXを用い、HTML DOMはJavaのレンダーツリーからもたどれるようにする。Java VMとブラウザエンジンを内蔵する。ブラウザ側ではJavaFXをJavaScriptに変換して実行する。

JavaFXでは、ビジュアルデザインのためのUIコントロールやコンポーネントをサポートするとともに、これはスタンダードなJavaでもあり、ジェネリックやアノテーション、マルチスレッドといった強力な機能も持つ。
Javaアプリケーションに対してネイティブにHTML5コンテンツを埋め込むこともできるようになり、HTML5からでもJavaからでもDOMにアクセスできる。

来年にはハードウェアアクセラレーティングに対応したグラフィックスエンジンも予定している。シャドー、ブラー、リフレクションといった効果が簡単に適用できる。Windows のDirect X、OpenGLなどに対応する。

2011年にはNetBeansの新バージョン
2011年にはNetBeansで2つのリリースを予定している。詳細は「NetBeans Release Roadmap」にて。また、JavaFXのUIコントロールはオープンソースとする。

JavaアプリケーションサーバはPOJO&EJB
Javaアプリケーションサーバの開発目標は、新しいアプリケーションモデルへの最適化を進めていくことだ。DI(Dependency Injection)によってモジュール化を行い、Webアプリケーションに特化した軽量なWebプロファイルを備えるようにする。
また、POJO&EJBプログラミングは多くのデベロッパーにとって簡単で、性能も高く機能も優れている。ほかのスクリプト言語との相互運用性も高める。

今年2010年にはEnterprise OSGIをベースにしたモジュール化を進める。Webプロファイルにも対応。

2011年にはJavaアプリケーションサーバのオープンソース実装であるGlassFishで新しいリリースがでる。詳細は「GlassFish Roadmap」を参照のこと。

JavaとWebアプリをすべてのコンシューマデバイスに
モバイル環境でのJavaの設計目標は、JavaとWebアプリケーションをすべてのコンシューマデバイスに届けることだ。
モバイルデバイス向けにJavaを進化(モダナイズ)させ、HTMLやJavaScript、CSSなどのWebテクノロジーとの統合でパワフルにする。

Webテクノロジーとの統合では、WebKit Engine、JavaScript Engine、Java/JavaScriptブリッジなどを採用する。
フットプリントの最適化で、テレビやローエンドデバイスなど、パワーなどを持たないものにも対応する。

Kindle、自動車、プリンタ、VoIPフォンなどなど、新しいJavaのフロンティアを、スタックを革新することで広げていく。
