BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Java 17はグラス・ハーフ・フルか

Java 17はグラス・ハーフ・フルか

ブックマーク

原文(投稿日:2021/07/28)へのリンク

Oracleは最近、JDK 17がRampdown Phase 2に入ったことを発表した。

このフェーズは、機能セット全体が凍結され、このリリースの対象となるJEPがなくなることを意味する。

JDK 17に含まれる機能の最終リストは次のとおりである。

Java 17は次のロングタームサポート(LTS)リリースであり、2021年9月にリリースされる予定である。/p>

Oracleは、LTSリリースについて特別なことは何もないと述べた。LTSリリースは単にOracleがサポートする製品に対応するものであり、Oracleからのサポートを購入する有償顧客でない人にとっては重要ではない。

しかし、Javaのエコシステムとコミュニティは、これまでのところOracleのメッセージと異なる反応を示している。

多くのチームが6か月サイクルのメジャーリリース番号と一致するようにJavaバージョンをアップグレードしているという証拠はない。New Relicの顧客ベース(数千万の本番JVMを含む)のデータによると、LTS以外のJavaバージョンが1.5%を超える市場シェアに至ったことは一度もない。LTS以外のJavaバージョンのほとんどは、リリースから数か月以内に、0~0.5%に低下する。

むしろ、市場全体としてはJava 8と11を使用し続けている。これには、Oracleから離れ、8と11の増分更新の提供を別のベンダーに依存している場合も含まれる。現在、2つのLTSバージョンが市場シェアの二分しつつある(統計的なノイズレベルを下回る非LTSバージョンもある)。これは、Java 8が普及した速さと比較して、Java 11の普及がはるかに遅いことを表している(3年で約50%の市場シェア)。

全体として、Java 17の機能は、InfoQが以前に報告したように、予想されるパターンにほぼ沿っている。残念なことに、過去3年間にJDK開発の主要な領域であった主要なプロジェクト(Loom、Valhalla、Amber、Panama)は、Java 17のリリース時点で完全なものはない。

これは、Java 17の機能セットが多くの開発者が望んでいたよりも控えめであることを意味する。

たとえば、代数的データ型の機能(レコードとSealed型を含む)は17の時点で完了している。これは、データモデリングとJava言語のオブジェクト指向機能の強化という点で大きな前進である。ただし、代数的データ型の上に補完、構築されるパターンマッチング機能は、Java 17のプレビュー機能としてのみ存在する(そして、かなり基本的な形でのみ存在する)。

これはProject Amberが提供するものの一部にすぎない。Amberには、プロジェクト構造が順次提供していくことに非常に適しているという利点がある。LoomやValhallaのようなプロジェクトは、本質的に「ビッグバン」であるが、Java 17には基本的にまったく存在しない(ただし、予備的な基盤部分は除き、それはユーザがアクセスできる新しい機能としては表面化していないものである)。

より楽観的な見方をすれば、LTSからLTSにアップグレードするだけのメジャーな確立されたパターンが続く場合(そしてコミュニティが他に何かをするという兆候がない場合)でも、Java 11から17にアップグレードするチームは多くのメリットを得られるであろう。アップグレードする開発者が関心を持つ可能性が高い主な機能は次のとおりである。

  • Switch式
  • instanceofの強化
  • テキストブロック
  • レコード
  • Sealed型
  • JFRストリーミング
  • 暗号を強化し最新化
  • クラスデータ共有
  • ShenandoahとZGCのガベージコレクタ

他にも、非常に多くのパフォーマンスと内部が改善された。

これは、Java 17が「グラス・ハーフ・フル」リリースである可能性がある一方で、言語の進化における1つの主要なマイルストーンであることを意味する。

フィーチャーコンプリートベータ版はこちらからダウンロードできる。Java17の最終バージョンは9月14日にリリースされる予定である。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT