Java 14がリリースされて1ヶ月が経つ — しかし、次のバージョンで実現されるはずの、新しいJavaのリリースモデルの持つ本来の強みに向けた歩みが止まることはない。これはつまり、Java 15のリリーストレイン(release train)はすでに動き出している、という意味である。
フィーチャーフリーズとランプダウンから2ヶ月が過ぎたばかりだが、Java 15に向けて数多くの機能が発表されている。具体的には次のようなものだ。
2つの新しいガベージコレクタの標準バージョンも機能リストに挙げられている。
ZGCはOracleが、ShenandoahはRed Hatが開発したもので、同じような機能 — 短い停止時間、大規模ヒープへのスケーラビリティ — を、パフォーマンス全体に関わるコスト(例えば、アプリケーションスループットの低下)の下で提供する。
Java 14はProject Amberの段階的デリバリの一環として、いくつかの大きなマイルストンを提供している。これには、初めてのRecordのプレビューリリース、Switch Expressionの標準バージョン、instanceof
のパターンマッチングの最初のプレビューなどが含まれている。
公式な発表はまだないが、Java 15にはこのグループの機能提供の継続として、さらに多くのJEPが含まれるのは間違いなさそうだ。
この中には、Recordの第2プレビュー、場合によっては最終(あるいは標準)リリースが含まれる可能性もある。Sealed TypeがJava 15のターゲットになることも考えられる — ただし、プレビュー機能としてであることは、ほぼ間違いないだろう。
JDK 15に入りそうなもうひとつの候補はJEP 375 — パターンマッチングinstanceofの第2プレビューだ。このプレビューでは、パターンマッチングへの次の重要なステップとして、Recordのデコンストラクションパターンが追加される。これは、他言語(直積型(product type)の実装に構造的型付け(structural typing)を使用するような)に見られるデコンストラクションの概念のJava版である。
Sealed TypeとRecord、概念としてのパターンマッチングの導入の組み合わせは、Java言語が今後進む道を明確に示すものだ非LTSリリースの採用に対して市場の示している抵抗を考慮するならば、これは2021年9月にリリースされる予定のJava 17(LTS)の一部として、完全なパターンマッチングと公称代数型(nominal algebraic type)が最終的な機能として登場することになる。