Java 22リリース ――Project AmberやProject PanamaのスタンダードJEPを含め12のJEPsがアップデート⁠そして⁠2025年のJavaOneがベイエリアで開催

2024年3月19日(米国時間⁠⁠、米Oracle CorporationはJava最新版「Java 22」をリリースした。

12のJEPsによるアップデートと改良

Java 22は、これまで開発が進められてきたProject PanamaやProject Amber、Project Loomなどの各プロジェクト、また、コアライブラリやツールに関して、計12のJEPs(JDK Enhancement Proposal)のアップデートが行われた。

今回の発表に際し、記者向け説明会が行われ、米Oracleより、Vice President, Software Development(Java Platform Group)のBernard Traversat氏、Senior Director, Java SE Product ManagementのSharat Chander氏の両名が参加し、Java 22および最新のJavaを取り巻く発表が行われた。

Oracle, Vice President, Software Development(Java Platform Group)のBernard Traversat氏。急遽、Georges Saab氏の代理として登場した
Java 22

ここでは、12のJEPsを中心に最新のJava 22の機能やアップデート内容を紹介する。

Project Amber関連

Project Amber関連でアップデートされたJEPは次の4つ。

  • JEP 447:Statements before super(...)(プレビュー)
  • JEP 456:Unnamed Variables & Patterns
  • JEP 459:String Templates(セカンドプレビュー)
  • JEP 463:Implicitly Declared Classes and Instance Main Methods(セカンドプレビュー)

Project Amberはプログラミング言語としてのJavaのコード可読性を向上させるためのプロジェクトで、この中では唯一のスタンダードJEPである456で、無名変数とパターンの導入で効率が良くなる。

またプレビューとなる447ではコンストラクタの動作の表現の自由度の向上、セカンドプレビューとなる459、463では、それぞれ文字列テンプレートの導入、暗黙的に宣言されたクラスとインスタンスによるメインメソッドにより、Javaにある大規模向けに設計された機能を理解せずに、プログラム開発が行えることを目指している。

Project Loom関連

Project Loom関連からは2つのJEPがアップデートされた。

  • JEP 462:Structured Concurrency(セカンドプレビュー)
  • JEP 464:Scoped Values(セカンドプレビュー)

Project Loomは、軽量な実行を目指したプロジェクトで、今回の2つのJEPでは、それぞれ462で構造化された並行性のためのAPIの導入、464でスレッド内およびスレッド間での不変データの共有の実現を目指し、開発が進んでいる。

Project Panama関連

2014年のJavaOneで発表されてから10年が経ったProject Panama関連では以下2つのJEPについてアップデートされた。

  • JEP 454:Foreign Function & Memory API
  • JEP 460:Vector API(第7インキュベータ)

とくにJEP 454はProject Panamaの中心機能の1つで、これにより、JavaプログラムがJavaランタイム外のコードやデータと相互運用できるAPIが導入される。この新しいAPIは、JavaプログラムでJNI(Java Native Interface)を必要とせずに、外部関数(Java Virtual Machine(JVM)外のコード)を効率的に呼び出したり、外部メモリ(JVMによって管理されていないメモリ)にセキュアにアクセスしたりすることで、ネイティブライブラリの呼び出しやネイティブデータの処理を行えるようになる。

コアライブラリ⁠ツール関連

コアライブラリおよびツール関連では、次の3つのJEPがアップデートされた。

  • JEP 457:Class-File API(プレビュー)
  • JEP 458:Launch Multi-File Source-Code Programs
  • JEP 461:Stream Gatherers(プレビュー)

457ではJavaクラス・ファイルの解析、生成、変換のための標準APIの提供を、458では Javaアプリケーション起動ツールの拡張およびJavaソースコードのマルチファイルとして提供されるプログラムの実行を、461ではStream APIの機能拡張とそれによるカスタムの中間操作への対応が行えるようになる。

パフォーマンス関連

  • JEP 423 Region Pinning for G1

パフォーマンス関連からはJEP 423の1つがアップデートされた。これにより、ネイティブ・ライブラリの呼び出し中にどのオブジェクトをブロックする必要があるかを追跡し、これらのオブジェクトを含む領域だけを「固定」できる。結果、ブロッキングが発生するようなネイティブ・ライブラリの呼び出し中でも、固定されていない領域でガベージ・コレクションを正常に継続できるようになる。

開発者とともに成長するJava――Dev.javaをはじめとしたさまざまなコミュニティ

Senior Director, Java SE Product ManagementのSharat Chander氏は、Javaの開発の歴史を紹介する中で、今はさまざまな形での情報提供・共有が行われていることを発表した。

中でも、Dev.javaが今、コミュニティと協力に連携しながら、コミュニティに貢献できていることを強調した。さらに、近日中に、Dev.javaにおいて初めて日本人による投稿が公開されることが発表された。

その他、Inside JavaJavaに関するYouTubeチャンネルなど、公式サイトやGitHub以外にも多様な情報が用意されており、これらがまたJavaコミュニティを支えていると伝えた。

JavaOneが再びベイエリアに――2025年3月17~20日開催

また、Java 22の発表に合わせ、エンジニアをはじめとしたJavaに関わるすべての人たちの祭典JavaOneに関する発表が行われた。

2025年はJava誕生30周年を迎える年で、この節目を記念した形でJavaOneが再びベイエリア・サンフランシスコで開催されることになった。開催期間は2025年3月17~20日(米国時間⁠⁠、開催場所は、オラクルキャンパスのあるシリコンバレー、レッドウッド・ショアーズ。

詳細についてはJavaOneのサイトで随時アップデートしていくとのこと。

おすすめ記事

記事・ニュース一覧