Oracleは米国時間3月19日、「Java」プラットフォームの最新版「Java 22」をリリースした。6カ月ごとのリリースサイクルに基づくもので、Java 22には12種類の「JDK Enhancement Proposal(JEPs)」が反映されている。
Oracle Java開発担当バイスプレジデントのBernard Traversat氏
Javaは、開発開始から29年目を迎える。アップデートの概要を説明したJava開発担当バイスプレジデントのBernard Traversat氏は、Javaが長く支持されている理由を「コミュニティーにおける透明でオープンな開発による信頼性と、最新のイノベーションを提供していること、そして、スケジュール通りのリリースを行うことによる企業ユーザーが求める安定性と安全性の実現にある」と述べた。なお、企業ユーザー向けの最新の長期サポートバージョンは、2023年9月にリリースしたJava21となっている。
※クリックすると拡大画像が見られます
Java 22の主なアップデートは、Java言語を改善する「Project Amber」では、「無名変数とパターン」(JEP 456)において無名変数とパターンでのJava言語を強化し、エラー発生の抑制とレコードパターンの可読性の向上によるコード全体の保守性を高めた。第2プレビューとなる「文字列テンプレート」(JEP 459)では、実行時の計算の値を含む文字列の作成を容易にして開発を簡素化している。
コアライブラリーおよびツール領域では、プレビューの「Class-File API」(JEP 457)でJavaクラスファイルの解析・生成・変換の標準APIを提供し、開発者の生産性を向上させている。並列処理に関する「Project Loom」では、第2プレビューの「構造化された並行性」(JEP 462)で、構造化された並行性のためのAPIを導入しており、開発者によるエラー処理と取り消しを簡素化して可観測性を高めた。これによりスレッドリークや取り消しの遅延などにより生じるリスクを解消する並行プログラミングのスタイルが促進されるとする。
接続処理関連の「Project Panama」では、「Foreign FunctionとMemory Java」(JEP 454)において、Javaランタイム以外のコードやデータと相互運用するためのAPIを導入した。これにより、Javaプログラムが「Java Native Interface」を必要とすることなく外部関数を効率的に呼び出せるようになり、外部メモリーへの安全なアクセスを通じてネイティブなライブラリーの呼び出しやデータ処理を行えるようになる。
また、開発者の負担軽減やJava開発初心者の学習の支援も推進しているとした。例えば、Project Amberで第2プレビューとして反映された「暗黙的に宣言されたクラスとインスタンスのメインメソッド」(JEP 463)では、Javaの冗長的な記述を削減することで、開発初心者が初期に大規模なプログラム用に設計された言語機能を理解することなく最初のプログラムを記述できるようにし、習熟度の向上に応じて高度な開発を進められるようにしている。
「JEP 463」の成果例
「Visual Studio Code(VS Code)」のマーケットプレイスでJavaプラグインの提供も開始しており、コードのコンパイルなどをサポートした。Traversat氏は、「VS Codeのサポートが不十分であったことに気付き、2023年にこのプラグインを提供した。23の早期言語もサポートしている」などと説明した。
Javaの開発では、オープンソースのコミュニティーが多大な貢献をしている。Javaプロダクトマネジメント 開発者エンゲージメント担当シニアディレクターのSharat Chander氏は、「29年にわたるJavaの歴史をコミュニティーが支えており、Oracleもコミュニティーを継続的に支援している」と述べる。
Oracle Javaプロダクトマネジメント 開発者エンゲージメント担当シニアディレクターのSharat Chander氏
また、Chander氏はコミュニティー内のさまざまなユーザーグループにおいて日本の開発者も活動に大きく貢献しているとした。2023年5月には、Java認定資格者が100万人に到達。100万人目の取得者は富山県のソフトウェアエンジニアの荒木大介さんとなった(関連リンク)。
このほかにChander氏は、Java開発者のための教育コンテンツの拡充にも継続して取り組み、開発者の成果を外部へ積極的に発信していくと説明している。
開発者向けコンテンツ