SE 7では対応が見送りになった"Prjoect Lambda"もSE 8でサポートされる予定です。クロージャと同一視されることも多いラムダですが、寺田氏はラムダが採用された経緯について「市場は現在、マルチコアCPU時代を迎えており、ハードウェアのトレンドは周波数よりもコア数、並列処理へと移っている。Javaの内部にも並列処理できるしくみが必要。クロージャに対応したというよりも、開発の容易性を重視した結果」と解説しています。サーバだけでなくクライアントもマルチコア時代を迎え、高いパフォーマンスを出すコードを書くためには、インナークラスを使ってコンカレント処理や並列処理が簡単に実行できるようになったほうが効率的といえます。
新JavaScriptエンジンの"Nashorn"(ナスホーン)は現在のRhinoを置き換えるものです。最大の特徴はRhinoに比べてパフォーマンスが非常に高速になること。寺田氏によれば「invokedynamicにより3倍の高速化と5倍の軽量化が同時に実現」するそうです。invokedaynamicはJava SE 7で追加された新しいバイトコードで、JRubyなどの動的言語のJVM実装をアシストします。また、NashornではNode.jsもサポートされます。
「Java SE 7は"進化"したバージョンであり、Java SE 8は"革新"のバージョン」とオラクルは表現しています。とくにパフォーマンスの大幅な向上に期待がかかります。
"真のオブジェクト指向言語に"─Java SE 9
Java SE 9に関しては、今後、変更される可能性がかなり高いとしながらも、寺田氏は現状での方向性を語ってくれました。
まず、Java SE 9以降のJavaの開発方針は以下の要素が重要視されるとのことです。
相互運用性
クラウド対応
最適化
幅広い動作環境
相互運用性に関しては、動的言語サポートの改善とネイティブコードの呼び出しがポイントになります。動的言語のサポートについては、Java SE 7でinvokedynamicが実装され、開発中のSE 8においてはNashornでJava⇔JavaScriptの相互運用が図られています。そしてSE 9以降では「Meta Objectプロトコル(SE 9)、Long listの最適化(SE 9以降)」が予定されているとのことです。またSE9では、JNI不要でJavaからネイティブコードを呼び出せるようになるそうです。
クラウド対応に関してはJava SE 8でもマルチテナンシーの一部がサポートされると見られています。これにより、同一OS上で稼働するJava VM間の共有やスレッドグループごとのリソース監視などが向上することが期待されます。また、SE 9以降ではハイパーバイザ対応Java VMも登場するとのことです。これにより「共通操作メモリページの共有や共通操作ライフサイクル、マイグレーションが可能になる」(寺田氏)とのことです。