BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Java 14がフューチャーフリーズおよびリリースランプダウンに

Java 14がフューチャーフリーズおよびリリースランプダウンに

原文(投稿日:2019/12/23)へのリンク

Java 14のリリースプロセスが開始された。JDK 14は現在、ランプダウン(rampdown)の第1フェーズにある。すなわち、機能セットはすべてフリーズされて、今回のリリースを対象とした機能がこれ以上追加されることはない。

Javaリリースの通例として、新バージョンに向けたJEP(Java Enhancement Proposal)の一覧が作成されている。最終的な機能セットは次のようなものだ。

以下の2つのJEPでは、ZGCガベージコレクタを新たなプラットフォームで提供する。

以下のJEPは、プレビューおよびインキュべーティング段階の機能に関するものだ。

次に紹介する一連のJEPは、その見た目以上に興味深いものかも知れない — 実はこの中には、Javaの主要な新機能セットの重要なビルディングブロックが2つまれている。

Record機能は、基本的にはJavaで名前付きタプルを実現するものだが、それと同時に、他言語で代数データ型と呼ばれる機能の前半部分にもなる。残る半分であるシールド型機能はJEP 360だが、こちらはターゲットとなるリリースがまだ決まっていない。

将来的な機能のもうひとつのビルディングブロックは、JEP 305("Pattern Matching for instanceof")である。この機能は一見すると、極めて小さなものに思われる。現時点では`instanceof`演算子を使用する場合に、見栄えの悪い定型的なキャストを排除するだけのものだからだ。

if (obj instanceof String s) {
    // can use s here
} else {
    // can't use s here
}

些細なことのようにも思えるが、この機能の真の力が発揮されるのは将来のJavaバージョンになってからなのだ。switch式(これもJava 14で標準化される)では、汎用的なパターンマッチングの実現がJEP 305に基づいて開発されている。これは重要な新機能のひとつであり、特に代数データ型と組み合わせた時に大きな意味を持つ。

最後に、厳密な意味では機能とは言えないJEPのグループがある — これらは単に非推奨や機能削除を扱ったものだ。

これが意味するのは、JDK 14はある意味で残念なマイルストンである、ということだ。Javaテクノロジの最初の公開リリースの一部として、1995年に初めて登場したプラットフォームであるSolaris上のJavaの道は、今回のリリースで終わることになる。

CMSコレクタの廃止も注目すべき点だ。現代的なワークロードのほぼすべてにおいて、G1はCMSと同等以上のパフォーマンスを示している(成熟と安定に長期間を費やした結果だ)。しかしながら、G1のポーズしきい値(pause threshold)も、ShenandoahやZGCの持つパフォーマンス上のオーバーロードも許容できないような、低レイテンシかつ処理停止に敏感なアプリケーションは、ごく一部ではあってもいまだ存在するのだ。このようなワークロードに対するソリューションがなくなるということは、事実上、短期ないし中期的にはJava 11のサポートを継続しなければならない、ということである。

全体として、主要機能の多くがプレビュー段階に留まってはいるものの、Java 14はプラットフォームが前進する上で重要なステップとなる。また現時点において、Javaマーケットが非LTSリリースに対しては大きな普及を見ていないことも事実であるため、Java 14がその採用の針を大きく動かすものになるかどうかは不透明だ。

Java 14のフィーチャーフリーズとランプダウンが行われたことにより、Java開発リポジトリのメインラインは現在、Java 15(2020年11月に公開予定)に向かっている。

この記事に星をつける

おすすめ度
スタイル

BT