開発者に高い生産性を提供するJava SE8
日本オラクルの寺田佳央氏がデブサミ2011に続いて登壇。「JavaOne TokyoとJavaの今後について」と題するセッションを行った。昨年は、OracleがSunを買収したことで、Javaの今後について不透明要素が残っていたタイミングだったが、この1年で、Sun時代の末期よりも着実に進化し続けている。その象徴が2011年7月にリリースされたJava SE7だ。Oracleでは「Moving Java Forward」をテーマとして掲げており、そこでのポイントはJavaの開発者数の増加、採用実績の拡大、競争力の拡大、市場変化への適用になる。
では次の2013年夏リリース予定のJava SE8には、どのような機能が盛り込まれるのか(図1)。まずNashornという、JavaのVM上で動くJavaScriptのエンジンが現在のRhinoに変わって提供される。NashornはSE7でJRubyなどの動的言語を効率的に利用するために盛り込まれたバイトコード命令invokedynamicを実装したもので、Rhinoと比較して高いパフォーマンスを得られるようになる。JVMについては、オラクルがもつ旧BEAポートフォリオの「Oracle JRockit」とSun由来の「HotSpot」が統合され、「HotRockit」という開発コードネームで開発中だ。また旧来のマルチスレッドの書き方では対応が難しいマルチコアCPUの性能を楽に引き出せるようにするため、Lambda式をサポートする。
またProject jigsawにより、新しくモジュール化という概念が入る。今までJavaのライブラリを使う際、例えばアプリケーションサーバーを起動する際には、大量のjarを列挙する必要があった。モジュール化を使うことにより、jar地獄から解放される。パフォーマンスも起動時、運用時ともに向上する。例えば起動時では、一度アプリケーションを起動する際に読み込んだモジュールの一覧を特定のファイルに書き出し、再起動の際にそれを読み込むことにより起動が早くなる。運用時には、必要なタイミングでモジュールをダウンロードして使うことで、パフォーマンスを高める機能も考えられている。
さらに重要なポイントとなるのが、小型機器への対応だ。今までJava MEがターゲットとしてきたハードウェア機器の性能が上がったことで、Java SEのサブセットで十分に動く時代になっている。そこで小型機器へのJava SEのサブセットが用意され、SEが提供している機能が使える様になる予定だ。
またJavaのリッチクライアントを作成する新しい技術であるJavaFXが、Java SEの標準ライブラリとして取り込まれる。一方、現在の主流のSwingのライブラリも引き続き提供されるが、新たな機能追加などがないメンテナンスモードに入る。
またすでにJava SE9の検討も開始されている。ポイントは統合運用性、クラウド対応、最適化などだ。セッションでは今後のロードマップも披露された。2013年にJDK 8がリリースされ、2015年にJDK9というように2021のJDK 12まで、2年周期で提供される予定だ。