オラクル、Java 24をリリース–さらなる改善と耐量子暗号への対応も
今回は「オラクル、Java 24をリリース–さらなる改善と耐量子暗号への対応も」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Oracleは米国時間3月18日、同日から開催のJava開発者会議「JavaOne 2025」に合わせて、Javaプラットフォームの最新版となる「Java 24」(Oracle JDK 24)をリリースした。開発生産性のさらなる改善と耐量子暗号への対応などを図った。
Javaは、1995年5月の最初のアルファ版リリースから30周年を迎える。Java 24の事前のメディア向け説明会で、Java Developer Relations担当バイスプレジデントのChad Arimura氏は、「長い歴史を持つJavaは、今も世界で最も選ばれている(VDC 2023 Studyより)。最新版においても常に相互運用性を考慮しながら最新機能の取り込みとのバランスを図りながら、変化へ対応し続けている」とコメント。稼働中のJava仮想マシンは全世界で約630億台、クラウド環境で約410億台にも上るという。5月には、Java30周年のセレモニーも企画しているとのことだ。
現在のJavaは6カ月ごとのリリースサイクルを採用する。今回のJava 24では、「JDK Enhancement Proposals」(JEPs)に基づいてプレビューを含む24件の主要なアップデートを反映した。ちなみ、Java 24の主要アップデートが24件なのは、「たまたまそうなった」(Arimura氏)という。
Arimura氏が取り上げたアップデートのポイントは、開発生産性のさらなる向上とAPIやセキュリティ関連のライブラリーの強化などになる。
例えば、性能面では、JEP 491(ピン留めなしで仮想スレッドを同期)において、同期メソッドやステートメントを使用するJavaのコードやライブラリーの拡張性を向上。開発者がより多くの仮想スレッドにアクセスできるようにした。また、JEP 483(事前クラス・ローディングおよびリンク)では、Java仮想マシン起動時にアプリケーションのクラスをロード、リンク済みの状態で即座に利用できるよう高速化し、起動時間を短縮するという。
APIライブラリーでは、JEP 489(Vector API)が9度目のインキュベーターとして取り込まれた。これは、AI開発などで使用されるベクトル計算において、実行時にサポートされているCPUアーキテクチャーのベクトル命令に確実にコンパイルするためのAPIとなる。Arimura氏によれば、プロジェクト成果の更新が続いているため、Java 24では通常より頻度の高いの9度目のインキュベーターの状態となっている。
セキュリティのライブラリーでは、耐量子暗号への対応として、JEP 478(キー導出関数API、プレビュー)と、JEP 496(量子耐性のあるモジュールlatticeベースのキー・カプセル化メカニズム)、JEP 497(量子耐性のあるモジュールlatticeベースのデジタル署名アルゴリズム)の3件が取り込まれた。これらは、既存の暗号アルゴリズムが将来の量子コンピューターの進化によって危殆(きたい)化する懸念に備えたものになる。
耐量子暗号の取り組みでは、米国標準技術局(NIST)が2024年8月にポスト量子暗号(PQC)の標準となる「FIPS 203/204/205」を公開した。現状の量子コンピューターの能力では既存の暗号アルゴリズムを危殆化させるのは不可能との見方が強いものの、能力の進化のペースが極めて速く、今後10年以内に実現される可能性が高いと見るサイバーセキュリティ研究者は多い。
Arimura氏は、「量子コンピューターがもたらす懸念がいつ現実のものになるか、誰も分からないが、備えておく必要がある。(FIPS 203/204/205の公開で)われわれとしては、開発者の皆さんにまずはすぐに試してみることを推奨したい。今後バックポートにより長期サポートをしているバージョンにも反映していく」と述べた。
また、学生などJavaの初学者とその指導者向けの取り組みも拡充。新たにオンライントレーニングの「Learn.java」を開設するほか、Java 24でもJEP 495(シンプルなソースファイルとインスタンスのmainメソッド、第4プレビュー)において、初学者が容易に最初のプログラム作成ができるよう支援を反映している。
次回のリリースは、9月に予定する長期サポート(LTS)のJava 25となっている。