オラクル、Java 21のリリースとサポート・ロードマップの延長を発表

プレスリリース発表元企業:日本オラクル株式会社

配信日時: 2023-09-20 11:00:05

Oracle CloudWorldの発表では、15のJDK Enhancement Proposal(JEP)を提供し、Java言語の改善、プラットフォームのパフォーマンス、安定性、セキュリティを促進

オラクルは本日、世界ナンバーワンのプログラミング言語および開発プラットフォームの最新バージョンである、Java 21の提供を開始したことを発表しました。Java 21(Oracle JDK 21)は、プラットフォームの機能強化を含む、パフォーマンス、安定性およびセキュリティ面での数千もの改良により、開発者の生産性をさらに向上させ、組織全体のイノベーションと成長を促進します。オラクルは、9月18日から21日までネバダ州ラスベガスで開催されるOracle CloudWorldにおいて、Java 21の最新機能を紹介します。

Oracle CloudWorld, ラスベガス - 2023年9月20日

(本資料は米国2023年9月19日にオラクル・コーポレーションより発表されたプレスリリースの抄訳です)

オラクルは本日、世界ナンバーワンのプログラミング言語および開発プラットフォームの最新バージョンである、Java 21の提供を開始したことを発表しました。Java 21(Oracle JDK 21)は、プラットフォームの機能強化を含む、パフォーマンス、安定性およびセキュリティ面での数千もの改良により、開発者の生産性をさらに向上させ、組織全体のイノベーションと成長を促進します。オラクルは、9月18日から21日までネバダ州ラスベガスで開催されるOracle CloudWorldにおいて、Java 21の最新機能を紹介します。

オラクルのJava Platform開発担当シニア・バイスプレジデント兼OpenJDK運営委員会の議長であるジョージ・サーブ(Georges Saab)は次のように述べています。「Javaは、世界中の組織や何百万人もの個人が使用する、堅牢で拡張性と安全性に優れたアプリケーションを設計するための言語、そしてプラットフォームとして選ばれ続けています。Java 21の新しい機能強化により、これまで以上に短期間で、より優れたアプリケーションを構築できるようになります。加えて、商用サポートを最低でも8年間利用できることから、お客様に合ったペースで移行することが可能です。」

最新のJava Development Kit(JDK)では、15のJDK Enhancement Proposal(JEPs)によるアップデートと改良が行われています。JDK 21は、OpenJDKプロジェクトのAmberによる言語の改善(String Template、Record Pattern、Pattern Matching for Switch、Unnamed Pattern and Variable、Unnamed Classes and Instance Main Method)、Project Panamaによる機能強化(Foreign Function & Memory APIとVector API)、Project Loomに関する機能(Virtual Thread、Scoped Value、Structured Concurrency)、パフォーマンスのアップデート(世代別ZGC)、および保守・非推奨機能(32ビット x86ポートの削除を非推奨にする、エージェントの動的ロードが許可されなくなることに対する準備)を提供します。

オラクルでは、Java 21に対して最低でも8年間の長期サポートを提供する予定です。今回サポート期間が延長されたことで、保守を最小限に抑えつつ、アプリケーションの実稼働時間を延ばし、最終的に自身のペースで移行するための柔軟性が組織にもたらされます。また、お客様のフィードバックとJavaエコシステムでの使用状況を鑑みて、オラクルはJava 11の長期サポートを少なくとも2032年1月まで延長し、オラクルがサポートと更新を提供する期間を最低でも8年間延ばすことを発表しました。

Java 21で提供される主要なアップデートは以下の通りです。

Project Loomの機能
JEP 444:仮想スレッド:Javaプラットフォームに軽量の仮想スレッドを導入することで、高スループットの並列処理アプリケーションの記述、保守、監視のプロセスが大幅に効率化されます。仮想スレッドにより、開発者はJDKの既存のツールやテクニックを使って、並行処理アプリケーションのトラブルシューティング、デバッグ、プロファイリングを容易に実行でき、アプリケーション開発の加速化につながります。

JEP 446:スコープ値(プレビュー):スレッド内およびスレッド間で不変データを共有できるようになります。これにより、開発プロジェクトの使いやすさ、理解しやすさ、堅牢性、パフォーマンスの向上が促進されます。

JEP 453:構造化された並行性(プレビュー):構造化された並行性のためのAPIを導入することで、並行プログラミングが簡素化されます。その結果、スレッド・リークや取消の遅延など、取消やシャットダウンにより生じる一般的なリスクを解消するための並行プログラミングのスタイルが促進され、同時実行コードの可観測性が向上します。これにより、開発者はエラー処理と取消を効率化し、信頼性を向上させ、可観測性を強化することができます。



パフォーマンスのアップデート
JEP 439:世代別ZGC:Zガベージ・コレクター(ZGC)を拡張して、新旧のオブジェクトの世代を分けられるようにすることで、アプリケーションのパフォーマンスが向上します。世代別ZGCは、アプリケーションで必要とされるヒープ・メモリとガベージ・コレクションCPUのオーバーヘッドを減らし、割り当て不能のリスクを緩和することで、開発者の生産性を高めます。



言語のアップデートと改善
JEP 430:文字列テンプレート(プレビュー):実行時に計算される値を含む文字列を簡単に表現できるようにすることでJavaプログラムの開発を簡素化、ユーザーが指定した値から文字列を構成し、他のシステムに渡すプログラムのセキュリティを高めます。さらには、文字列と式が混在した式の可読性が向上し、中間文字列表現を経由することなく、リテラル文字列と埋め込み式から計算される非文字列値を作成することができます。これにより、Java言語の読み取り、書き込み、保守が容易になり、開発者の生産性の向上につながります。

JEP 440:レコード・パターン(第3プレビュー):パターン・マッチングを拡張して、レコード・クラスのインスタンスを分解できるようにし、ネストされたパターンの追加を可能にすることで、Java言語を強化します。これにより、開発者はパターン・マッチングの適用対象をより高度で構成可能なデータ・クエリにまで広げることができ、生産性の向上につながります。

JEP 441:Pattern Matching for Switch:caseラベルにパターンを表示できるようになり、switch式とswitch文の表現力と適用範囲が広がります。さらには、パターンswitch文ではすべての可能な入力値をカバーする必要があることから、switch文の安全性が高まります。また、引き続き、既存のすべてのswitch式とswitch文を、変更を行うことなくコンパイルして、同一のセマンティクスで実行することが可能です。これにより、Java言語のセマンティック性が増し、複雑なデータ指向のクエリを簡潔かつ安全に表現できるようになることから、開発者はプロジェクトを合理化し、信頼性を高めることができます。

JEP 443:無名のパターンと変数(プレビュー):コンポーネントの名前やタイプを指定することなく、無名のパターンをレコード・コンポーネントと照合できるようにするのに加え、初期化はできても使うことのできない無名の変数を有効にすることで、Java言語を強化します。これにより、レコード・パターンの可読性とすべてのコードの保守性が向上することから、開発プロセスの簡素化につながります。

JEP 445:無名のクラスとインスタンス・メイン・メソッド(プレビュー):Java言語へのアクセスが容易になり、教育者がプログラミングの概念を段階的に取り入れることができます。初心者向けのJava語彙やツール・チェーンを個別に導入する必要がなく、通常のJavaプログラムをコンパイル・実行するのと同じツールを使用して、学生向けのプログラムをコンパイル・実行できます。そのため、基本的なプログラムを簡潔な方法で記述し、学生のスキルが上がった時点でコードを難なく拡張できます。これにより、大規模なプログラムのための言語機能を理解していなくても、学生が初めてのプログラムを記述することができ、生産性の向上につながります。



Project Panamaのプレビュー機能
JEP 434:Foreign Function & Memory API(第3プレビュー):JavaプログラムがJavaランタイム外のコードやデータと相互運用できるよう、APIを導入します。この新しいAPIにより、Javaプログラムは、Java Native Interfaceを必要とせずに、外部関数(Java Virtual Machine [JVM]外のコード)を効率的に呼び出したり、外部メモリ(JVMによって管理されていないメモリ)にセキュアにアクセスしたりすることで、ネイティブ・ライブラリの呼び出しやネイティブ・データの処理を行うことができます。これにより、開発者にとっての使いやすさ、柔軟性、パフォーマンス、安全性が向上します。

JEP 448:Vector API(第6インキュベーター):ベクトル計算を表現し、実行時にサポートされているCPUアーキテクチャのベクトル命令に確実にコンパイルするためのAPIを導入します。これにより、開発者はさまざまなベクトル計算を明確かつ簡潔に表現するためのAPIにアクセスできるようになり、プロジェクトのパフォーマンスの向上につながります。



今回のJava 21のリリースは、オラクルのエンジニアと世界中のJava開発者コミュニティの他のメンバーが、OpenJDKとJava Community Process(JCP)を通じて、広範囲にわたるコラボレーションを行った結果です。新しい機能強化に加えて、Java 21はJava Management Service(JMS)によってもサポートされています。JMSは「Oracle Cloud Infrastructure(OCI)」のネイティブ・サービスであり、組織がオンプレミスまたはあらゆるクラウド上でJavaのランタイムとアプリケーションを管理するための統合型のコンソール/ダッシュボードを提供します。Java 21で提供される機能の詳細については、Java 21に関するブログ記事をご覧ください。

クラウドのイノベーションによりJavaのグローバル・エコシステムをサポート
クラウドのOCIに導入された場合、Javaは最適なパフォーマンス、効率性、イノベーションを提供します。OCIは、Java 21に対応した業界初のハイパースケール・クラウドです。OCI上でJavaを実行することで、運用コストの削減、追加コストなしでのパフォーマンスの向上、最新の機能を使った既存のJavaアプリケーションのモダナイズや新しいアプリケーションの構築など、組織全体でさまざまなメリットを享受していただけます。「Oracle Java SE」、「Oracle GraalVM」、「Java SE Subscription Enterprise Performance Pack」は、OCI上で追加の費用を支払うことなく利用できるため、開発者は、より速く、より優れた、圧倒的なコスト・パフォーマンスで動作するアプリケーションを構築し、デプロイすることが可能です。

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

Java Playgroundとコミュニティへの貢献によるDev.javaの拡張
Dev.javaは、Java開発者のための公式サイトです。オラクルは本日、同サイトのコンテンツ・カタログにJava Playgroundと新たなコミュニティへの貢献を追加することを発表します。

Java Playgroundは、ローカル・ランタイムやIDEを使わなくても、小さなJavaコード・スニペットを入力して、実行することができるオンライン・サンドボックスです。このたび、OCIを使用して、開発者がJava 21の新機能のすべてをブラウザからすぐに試すことができるようになりました。

Dev.javaでは、オラクルのJavaチームにより作成された、何百という高品質なJavaチュートリアルをあらゆるスキル・レベルに向けて提供しています。また、現在Dev.javaは、Java GitHub組織内の新しいパブリック・リポジトリを通して、コミュニティへの貢献を受け付けています。現時点で、ヴェンカット・サブラマニアム(Venkat Subramaniam)博士や、ケイ・ホルストマン(Cay Horstmann)氏、ジーン・ボヤルスキー(Jeanne Boyarsky)氏、ハインツ・カブーズ(Heinz Kabutz)氏、ポール・アンダーソン(Paul Anderson)氏、ゲイル・アンダーソン(Gail Anderson)氏といった業界著名人にコミュニティへの貢献をいただいています。

Javaとグローバル・エコシステムの詳細
Dev.java:Javaを学ぶための公式ポータル URL: https://dev.java/

Inside.java:オラクルのJavaチーム・メンバーからのニュースや意見 URL: https://inside.java/

Java YouTube:Javaの学習動画を配信するJava公式YouTubeポータル URL: https://www.youtube.com/java



関連資料
Oracle JDK 21のダウンロード URL: https://www.oracle.com/java/technologies/downloads/

Java 21の技術ブログ URL: https://blogs.oracle.com/java/post/the-arrival-of-java-21

Java Management Serviceの詳細 URL: https://docs.oracle.com/en-us/iaas/jms/doc/getting-started-java-management-service.html

Oracle Java SE Universal Subscriptionの詳細 URL: https://www.oracle.com/jp/java/java-se-subscription/



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

Oracle CloudWorldについて
「Oracle CloudWorld」は、世界中のお客様とパートナー企業を対象に開催するオラクル最大のイベントです。ビジネス上の最大の課題に取り組むために必要なインサイトの探究、スキルや知識の習得、人脈の構築、クラウド・インフラストラクチャ、データベース、アプリケーションやJavaを含む開発者向けテクノロジーを構築し活用する人々からその詳細を学ぶ機会として、是非イベントにご参加ください。登録方法、基調講演の視聴方法、セッション詳細、ニュースなどの情報は、https://www.oracle.com/cloudworld/ またはhttps://www.oracle.com/news/ をご参照ください。

商標
Oracle、Java、MySQL及びNetSuiteは、Oracle Corporation、その子会社及び関連会社の米国及びその他の国における登録商標です。NetSuiteは、クラウド・コンピューティングの新時代を切り開いたクラウド・カンパニーです。文中の社名、商品名等は各社の商標または登録商標である場合があります。本文書は情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。

PR TIMESプレスリリース詳細へ