Oracleが長期にわたって開発を続けていた「Java 17」「JDK(Java Development Kit)17」がついにリリースされた。長期サポート(LTS)版がリリースされるのは、3年前の「Java 11」「JDK 11」以来となる。Javaの新バージョンは半年に1度、3月と9月にリリースされているが、これらのバージョンは次のバージョンがリリースされるまでしかサポートされない。しかしJava 17は、8年間サポートされることになっている。
また、Java 17のオープンソース実装である「OpenJDK 17」もロールアウトされている。OpenJDK 17のライセンスにはGnu Public Licenseバージョン2(GPLv2)が使用されている。一方、「Oracle JDK 17」と今後リリースされるOracle JDKは、Oracleが新たに定めた「NFTC(No-Fee Terms and Conditions)」ライセンスで提供される。これはJava 17を無料で利用できるライセンスで、次回のLTSリリースから1年後まで適用される。それ以降のJava 17には、「Oracle Technology Network License」が適用されることになる。これらのライセンスは、どちらも厳密に言えばオープンソースライセンスではないといえるかもしれない。
とはいえ、この新しいライセンス形態にメリットがあると考える人もいる。IDCのソフトウェア開発分野調査担当バイスプレジデントであるArnal Dayaratna氏は、このライセンスについて、「Oracle JDKを本番環境で長期にわたって使用できる、新しくより緩やかなライセンス」だと述べている。
Oracleはまた、LTSのリリースプロセスのサイクルを早めようとしていることも明らかにした。同社の希望が実現すれば、次のLTS版は「Java 21」となり、2023年9月にリリースされる可能性がある。同社は、Javaの開発者コミュニティやJava Community Process(JCP)と協力し、LTSリリースのサイクルを3年から2年に変更するための協議を進めている。
その理由について、Oracle Java Platform Groupの開発担当バイスプレジデントであるGeorges Saab氏は、「この3年、私たちは、開発者が最新の機能にどれほど強い関心を持っているかということを耳にしてきた。そして、このエコシステムが6カ月のリリースサイクルを非常に良く受け入れていることが分かった。Java開発者が今日直面する最も大きな課題の1つは、所属する企業が最新のLTSリリースを使うことのみを許可していることだ。LTS版のリリースを2年ごとにすれば、保守的な組織に所属する開発者がより多くの選択肢を得ることができ、関心のある、使いたいと思う機能にアクセスしやすくなる」からだと説明している。
さらにOracleは、Oracle LTSと「Java SE Subscription」の顧客には、少なくとも2029年9月までJava 17のセキュリティ、パフォーマンス、およびバグ修正のアップデートを提供すると約束している。
技術的な観点から見ると、今回のバージョンでは何千ものパフォーマンス、安定性、セキュリティに関する機能がアップデートされている。また、14件のJEP(JDK Enhancement Proposal)も盛り込まれた。JEPは、開発者の生産性向上を目的としたJava言語およびプラットフォームの改良項目だ。
しかし、もっとも目立った変化は、「改善」や「追加」ではなく「削除」かもしれない。最初期からJavaに搭載されていたアプレットAPIがついに廃止に向け、非推奨となった。アプレットのブラウザープラグインは、すでにJDK 11で削除されている。Javaアプレットは以前よく使われていたが、安全性に難があることで悪名高かった。今や、その最後の痕跡が消え去ろうとしている。ただし、JavaアプレットAPIはJava 17で非推奨となったものの、実際に削除されるのはまだ先のバージョンでのことになる。
また「JEP 403」の実装に伴い、内部JDK要素のカプセル化が強化され、セキュリティが改善された。
Oracleは、クラウドでもJavaを活発に利用してもらいたいと考えている。同社はクラウドでのJavaの利用を加速するため、最近「Oracle Java Management Service」を発表した。これは「Oracle Cloud Infrastructure(OCI)」のサービスで、組織がオンプレミスや任意のクラウドでJavaのランタイムやアプリケーションの管理を容易に行えるようにすることを目指している。
また、Javaをより「Mac」で使いやすくするための改良も加えられた。これには、「macOS」向けのレンダリングパイプラインである「JEP 382」や、Appleの「M1」プロセッサー対応などが含まれている。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。