Press Release

オラクル、Java 23をリリース

新リリースでは、Java言語の改善により開発者の生産性を向上させる12のJDK Enhancement Proposalsを提供

プラットフォームのパフォーマンス、安定性、セキュリティの強化により、企業のビジネス成長を加速

Java Management Service 9.0とGraal JITコンパイラが、Javaアプリケーションの管理およびピークパフォーマンスの向上を支援

テキサス州オースティン —2024年9月18日
Java

(本資料は米国2024年9月17日にオラクル・コーポレーションより発表されたプレスリリースの抄訳です)
オラクルは本日、世界でトップクラスを誇るプログラミング言語および開発プラットフォームの最新バージョンであるJava 23の提供開始を発表しました。Java23(Oracle JDK 23)は、プラットフォームのパフォーマンス、安定性およびセキュリティ面での数千もの改良により、開発者の生産性をさらに向上させ、組織全体のイノベーションと成長を促進します。

IDCのソフトウェア開発担当リサーチ・バイスプレジデントであるArnal Dayaratna氏は次のように述べています。「Javaは、ますます多様化する最新のアプリケーション開発ニーズに対応するために、進化を続けています。今回の新しいリリースは、開発者がツールセットを拡張して生産性を向上させ、AIなどの画期的なテクノロジーを活用したアプリケーションを構築・提供することを可能にします。Javaでは、6カ月ごとに革新的な新機能を提供しています。これにより、開発部門は、継続的に組織に大きな価値をもたらすことができます。

開発者向けの新しい機能や機能強化に加えて、Java 23は組織にもさらなる価値を提供します。例えば、Java 23は、 Java Management Service (JMS)9.0の最新の一般提供版でサポートされています。JMS 9.0は、 「Oracle Cloud Infrastructure (OCI)」のネイティブサービスであり、統合コンソールとダッシュボードを提供することで、組織がオンプレミスまたはあらゆるクラウド上のJavaランタイムとアプリケーションを管理できるようにするものです。また、JMS 9.0では使いやすさが大幅に向上しています。Oracle JDK23には、Javaで記述され、バイトコードを最適化されたマシンコードに変換する動的JIT(ジャストインタイム)コンパイラであるGraalコンパイラが追加されています。これにより、よりきめ細かな調整とピークパフォーマンスの向上を実現するオプションが提供されます。

Oracle Java Platform担当シニア・バイスプレジデント兼OpenJDK運営委員会の議長であるジョージ・サーブ(Georges Saab)は次のように述べています。「Java 23の新機能により、あらゆる技術レベルの開発者が生産性を向上させ、高性能でセキュアかつスケーラブルなアプリケーションの開発を効率化することができます。Java 23には、開発者がアプリケーションをより迅速かつ効率的に構築し、提供できるよう支援する幅広い新機能とツールが備わっているため、開発部門とその組織は、イノベーションを推進し、ビジネスの成長を加速させることができます。」

Java 23は、Java言語、ランタイム、ライブラリ、およびJava Development Kit(JDK)に含まれるツールにさまざまな改善と強化をもたらします。Java 23で提供される重要なアップデートは以下の通りです。

Project Amberの言語機能

  • JEP 455: プリミティブ型のパターン、instanceof、switch(プレビュー): 言語をより一貫性のある表現力豊かなものにすることで、Javaプログラミングの生産性を向上させます。パターン・マッチング、instanceof、switchを使用する際に開発者が直面するプリミティブ型に関する制約を緩和します。例えば、プリミティブ型のパターンをすべてのパターン・コンテキストで許可してパターン・マッチングを強化します。また、instanceofとswitchを拡張してすべてのプリミティブ型で実行できるようにします。
  • JEP 476: モジュール・インポート宣言(プレビュー): インポート・コードをモジュール自体に配置する必要がないため、モジュールがエクスポートしたすべてのパッケージを迅速かつ簡単にインポートできるようになり、開発者の生産性が向上します。これにより、すべての開発者にとってモジュール・ライブラリの再利用が簡素化され、初心者でもパッケージ階層内の位置を学習することなく、サードパーティ・ライブラリや基本的なJavaクラスをより簡単に使用できるようになります。
  • JEP 477: 暗黙的に宣言されたクラスとインスタンスのメイン・メソッド(第3プレビュー): 大規模なプログラム向けに設計された言語機能を理解することなく、学習者が最初のプログラムを作成できるようにします。これにより、Javaプログラミングへのスムーズなオンボーディングが可能となり、学習やスキル開発を加速させることができます。その結果、講師やインストラクターは概念を徐々に導入できるようになります。また、学生は単一クラス・プログラム用の簡素化された宣言を記述し、スキルが向上するにつれてより高度な機能を使用してプログラムをシームレスに拡張できるようになります。一方、経験豊富なJava開発者は、大規模プロジェクト用のツールを使用することなく、簡潔に小規模なプログラムを記述することができます。
  • JEP 482: 柔軟なコンストラクタ本体(第2プレビュー): 開発者が、super(..)やthis(..)などの明示的なコンストラクタ呼出しの前に文を表示できるようにすることで、生産性を向上させます。文は構築中のインスタンスを参照できませんが、別のコンストラクタを呼び出す前にフィールドを初期化できます。これにより、メソッドがオーバーライドされた場合のクラスの信頼性が向上します。この機能により、開発者はコンストラクタの動作をより自由に表現できるようになります。また、クラスのインスタンス化中にコンストラクタが上から下へと順番に実行されるという既存の保証が維持されます。

ライブラリ

  • JEP 466: Class-File API (第2プレビュー): Javaクラス・ファイルの解析、生成、変換のための標準APIを提供することで、開発者の生産性向上を支援します。
  • JEP 469: Vector API(第8インキュベーター): ベクトル計算を表現し、実行時にサポートされているCPUアーキテクチャのベクトル命令に確実にコンパイルするためのAPIを導入することで、開発者の生産性向上を支援します。これにより、開発者は同等のスカラー計算よりも優れたパフォーマンスを実現できます。
  • JEP 473: Stream Gatherers (第2プレビュー): Stream API の機能を拡張してカスタムの中間操作に対応することで、開発者の生産性を向上させます。これにより、ストリーム・パイプラインは、既存の組み込み中間操作では困難だった方法でデータを変換できるようになります。ストリーム・パイプラインの柔軟性と表現力を強化し、カスタム中間操作で無限サイズのストリームを操作できるようにすることで、開発者はJavaコードの読取り、書込み、保守をより効率的に行えるようになります。
  • JEP 480: 構造化された並行性 (第3プレビュー): 構造化された並行性のための新しいAPIにより並行プログラミングを簡素化することで、マルチスレッド・コードの保守性、信頼性、および可視性を向上させます。構造化された並行性は、異なるスレッドで実行されている関連タスクのグループを単一の作業単位に統合することで、スレッド・リークや取消遅延など、取消や停止に起因する一般的なリスクを排除します。
  • JEP 481: スコープ値(第3プレビュー): スレッド内およびスレッド間で不変データの共有を可能にすることで、開発者はプロジェクトの使いやすさ、理解しやすさ、パフォーマンス、堅牢性を向上させることができます。

パフォーマンスおよびランタイムに関する更新

  • JEP 474: ZGC: 世代別モードのデフォルト化: ZGC(Z Garbage Collector)のデフォルト・モードを世代別モードに切り替えることで、2つの異なるモードをサポートするために必要なリソースと保守コストを削減し、開発者の効率を向上させることができます。

ツール

  • JEP 467: Markdownドキュメント・コメント: Javadocドキュメント・コメントをHTMLおよびJavadoc @-タグのみでなくMarkdownでも記述できるようにすることで、開発者の効率性と生産性を向上させます。ドキュメント・コメントで、HTML要素およびJavaDocタグとともにMarkdown構文を使用できるため、開発者は、既存のドキュメント・コメントの解釈に悪い影響を与えることなく、ソース形式でAPIドキュメント・コメントを簡単に記述および読み取ることができます。

スチュワードシップ

  • JEP 471: sun.misc.unsafeのメモリアクセス・メソッドを削除を予定した非推奨に設定: 将来のリリースで削除が予定されているsun.misc.Unsafeのメモリアクセス・メソッドに、アプリケーションが直接または間接的に依存しているかどうかを開発者が理解できるようにするための簡素化されたツールセットを提供します。

今回のJava 23のリリースは、オラクルと世界中のJava開発者コミュニティの他のメンバーが、OpenJDKとJava Community Process(JCP)を通じて、継続的な協業を行った結果です。Java 23で提供される機能の詳細については、 Java 23に関する技術ブログ記事をご覧ください。

クラウド・イノベーションによりJavaのグローバル・コミュニティをサポート

OCIに導入された場合、Javaは最適なパフォーマンス、効率性、イノベーションを提供します。OCIは、Java 23に対応した業界初のハイパースケール・クラウドの1つです。「Oracle Java SE」、「Oracle GraalVM」、「Java SE Subscription Enterprise Performance Pack」は、OCI上で追加の費用を支払うことなく利用できるため、開発者は、より速く、より優れた、圧倒的なコスト・パフォーマンスで動作するアプリケーションをJava 23で構築し、デプロイすることが可能です。

「Oracle Java Universal SE Subscription」は、クラス最高のサポートをお客様に提供する従量制のサービスです。Javaポートフォリオ全体のトリアージ・サポートを含むクラス最高のサポート、「Oracle GraalVM」へのアクセス、「Java SE Subscription Enterprise Performance Pack」、JMSの先進機能へのアクセス、ビジネスのペースに合わせたアップグレードの柔軟性をお客様に提供します。これにより、IT組織は、複雑性の管理、コストの抑制、セキュリティ・リスクの軽減を図ることができます。

さらにオラクルは、最近開催されたOracle CloudWorldで、「Oracle Code Assist」をまずJava向けに最適化することを 発表 しました。「Oracle Code Assist」は、Javaアプリケーションの構築を容易にするAIコード・コンパニオンです。OCI上で稼働する「Oracle Code Assist」サービスは、C、C++、Go、JavaScript、PL/SQL、Python、Ruby、Rustにも対応する予定です。

JavaOne、2025年に復活

グローバルJavaコミュニティのフラッグシップ・イベントである JavaOne, が、2025年にサンフランシスコのベイエリアで開催されます。2025年3月17日から20日まで、カリフォルニア州レッドウッド・ショアーズで開催されるJavaOne 2025では、参加者は最新のJava開発について話を聞いたり、オラクルのJavaエキスパートや業界の著名人と交流したりすることができます。詳しくは、Inside Javaの ブログ記事をご覧ください。また、JavaOneでの講演をご希望の方は、 こちらをご確認ください。

賛同コメント

Agile Developer, Inc.の社長であるVenkat Subramanian氏は次のように述べています。「アジャイル開発は、フィードバックループを通じて顧客ニーズとの整合性を確保するのに役立ちます。また、Javaは開発者が求める俊敏性を提供します。Java 23には数多くの優れた機能がありますが、中でもStream Gatherersの進化には感銘を受けました。これは、機能コード開発パイプラインでカスタムステップを作成する際に非常に役立つ機能であり、特定のビジネスニーズに効果的に対処することを可能にしてくれます。」

Drew University教授、Barry Burd氏は次のように述べています。「私は、Java 23の暗黙的に宣言されたクラスのプレビュー機能を使用して、私が執筆したJava入門書の改訂作業を行っています。著者および教育者として、これらの機能は私の作業を非常に楽にしてくれます。以前のエディションに見られた冗長なコードの多くが不要になったため、学生たちはボイラープレートテキストの行を読む必要がなくなり、重要なロジックに集中できるようになりました。さらに、暗黙的に宣言されたクラスとインスタンスのメイン・メソッドにより、この本のコード例を簡素化できるようになったため、他の興味深いJavaの概念を盛り込む余地が生まれました。Java 23を使って大学生にプログラミングを教えるのが楽しみです。」

JetBrainsのJava開発支援責任者であるMala Gupta氏は次のように述べています。「JetBrainsでは、開発者がIntelliJ IDEAで新しいJavaの機能を利用できるよう、本番環境にリリースされる前にサポートを開始するよう努めています。もちろん、IDEはJava 23のサポートも行う予定です。IntelliJ IDEA 2024.2では、開発者は、たとえばプリミティブ型のパターン、暗黙的に宣言されたクラス、柔軟なコンストラクタ本体、Markdownドキュメント・コメントなど、Java 23の非常に革新的な新機能を簡単に活用できます。」

Javaとそのグローバル・エコシステムの詳細については、以下をご参照ください。

  • Dev.java: Javaを学ぶための公式ポータル
  • Inside.java: オラクルのJavaチームメンバーからのニュースや意見
  • Java YouTube: Javaの学習動画を配信するJava公式YouTubeチャンネル

その他のリソース

【本件に関するお問い合わせ先】

日本オラクル株式会社

広報室 谷地田
03-6834-3020

オラクルについて

オラクルは、広範かつ統合されたアプリケーション群に加え、セキュリティを備えた自律型のインフラストラクチャをOracle Cloudとして提供しています。オラクル(NYSE: ORCL)に関するより詳細な情報については、 oracle.comをご覧ください

将来の製品に関する免責条項

上記の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。上記の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料にしないで下さい。オラクル製品に関して記載されている機能の開発、リリース、時期および価格については、弊社の裁量により変更される可能性があります。

商標

Oracle、Java、MySQL及びNetSuiteは、Oracle Corporation、その子会社及び関連会社の米国及びその他の国における登録商標です。NetSuiteは、クラウド・コンピューティングの新時代を切り開いたクラウド・カンパニーです。