新機能 Amber、Leyden、Loom、Panamaとは
27年と長い年月が経過しても、IT業界では「重要な開発言語になっており、引き続きイノベーションを続けています」と言うのは、Oracle Corporation Vice President, Java Developer Relationsのチャド・アリムラ氏だ。現状のJavaには、開発がオープンに行われていることでの信頼性がある。その上で定期的なバージョンアップにより、常に進化を続けている。そしてスケジュールに沿った確実なリリースで、と促成が高く企業などで安心して利用できる。
そんなJavaの新機能は、OpenJDKのプロジェクトとして開発されリリースに適宜反映される。たとえば「Amber」は、Java言語を継続的に改善し、開発者の生産性を上げるプロジェクトとなっている。リリースごとに言語自体の完成度を高め、データ指向のプログラミングの世界へも導いているとアリムラ氏は言う。
プロジェクト「Leyden」は、起動時間を短くすることでピーク性能を発揮するまでの時間を加速度的に速めている。プロジェクト「Loom」は、同時並列処理のための機能が開発されており、Java 20にはこの成果がセカンドプレビューとして搭載されている。「Panama」は、JVMとJava以外のライブラリをつなぎやすくするものだ。ネイティブコードとオフ・ヒープメモリに対し容易にインターフェイスがとれるようにして、I/O集約型アプリケーションの作成などが容易になり高いパフォーマンスを発揮できる。
現在Javaは半年ごとに更新されており、Java 20、JDK 20はそのペースでの更新が始まってから11回目のリリースとなる。高い頻度で更新されるJavaに対し、Oracleは特定のリリースのみ長期サポート(Long Term Support : LTS)を提供している。次のLTSリリースは、Java 21、JDK 21だ。「LTSまであと1つとなりました。Amber、Loom、Panamaといったプロジェクトの成果による機能が今後も継続的にリリースに反映されるのを楽しみにしています」とアリムラ氏は言う。
JavaはOpenJDKという形で、多くの企業からの支援なども含めた体制で開発が進められている。そしてそのような開発体制にあっても「Javaのプラットフォームをさらに大きく前進させるためにOracleは、より大きな役割を担っています。とはいえ、開発において極めて重要なのは、やはり独立系の開発者のコミュニティです」とも言う。この独立系の開発者コミュニティには、多くの日本の開発エンジニアも含まれている。
サブスクリプションモデルのOracleのJavaのサービス
企業がJavaを安心して使えるようにするため「OracleではJavaに対する確実なサポートを提供します」と言うのは、Oracle Corporation Vice President, Java Developmentのバーナード・トラベルサット氏だ。Oracleでは2023年1月からOracle Java SE Universal Subscriptionの提供を開始している。これは、かつてのプロセッサーベースやユーザー数など複雑な構成によるライセンス体系ではなく、社員数ベースのシンプルなサブスクリプションモデルとなっている。
Oracle Java SE Universal Subscriptionに含まれるJava Management Serviceは、新しいOracle Cloudのサービスだ。これを使うことで、オンプレミスやクラウドなどJavaがどこで実行されていても、Java環境の検出、監視、管理が可能となる。これにより「Javaのデプロイメントやワークロードに関するインサイトなどが得られます」とトラベルサット氏。さらにOracle GraalVM Enterprise Editionも、Java SE Universal Subscriptionの一部として提供される。
顧客からはさまざまな要求があり、中でもリスクの低減は大きな声の1つだ。これにはもちろん全てのバージョンのJDKに対するパッチの提供があり、さらに既存のJDK 8/11/17から安全に最新のJDK 20に更新するためのサポートもある。
JavaでもChatGPTのようなAI技術は興味深くモニタリングしている
「Java全体の成功を考えると、技術的な進化と同等にコミュニティが重要です」とアリムラ氏。そのためにOracleでは、JavaユーザーグループやJavaチャンピオンなどのプログラムに継続的に投資をしてきた。またOracleでは、Java開発者のためにYouTubeチャネルも開設し、動画による分かりやすい情報発信にも務めている。既にこのYouTubeチャネルの登録者は、12万人を超えている。
またDev.javaには、開発者向けに多くのチュートリアルがある。Inside.javaはJavaの開発チームのメンバーが、さまざまなコンテンツを集約しているサイトだ。「次世代のJava開発者にリーチするための新しいチャネルが必要だと考え、このようなさまざまな投資を続けています」とアリムラ氏。
ところで、Javaは引き続き業務アプリケーション開発などでの現場で高いニーズはあるが、開発者自身が学びたい言語としては「Go」や「Python」が挙がることが多い。特に最近ではAI、機械学習領域の開発言語として、豊富なライブラリがあり使いやすいPythonの人気は高い。
ChatGPTのような生成型AIが一気に注目を集める中、JavaではAI、機械学習の開発に対しどのようなアプローチをとるのか。「AIは、興味を持ってモニタリングしている技術の1つです。JavaでAIのような新たなワークロードに対応するために、複数の開発プロジェクトが既に走っています」とアリムラ氏は言う。
たとえばプロジェクトPanamaでは、連携させるネイティブライブラリにAIや機械学習のものが数多く含まれている。また、Loomには、AIエンジニアが機械学習モデルを構築する際に求める、高い拡張性のための機能が含まれている。プロジェクトAmberでは、Java言語でよりデータ指向の開発が行えるような進化もある。さらに「プロジェクトZGCでは、AI、機械学習で必要とされるテラバイト、ペタバイトクラスのデータをインメモリで効率的に扱う機能が開発されています」とトラベルサット氏も言う。
これらの進化があるとは言え、JavaがAIや機械学習の開発に最適化されるわけではないだろう。Javaで行うさまざまな業務アプリケーション開発の中でも、これからはAIや機械学習技術を活用するのが当たり前となるはずだ。その要求に容易に応えるために、JavaでもAIや機械学習に関わる開発がやりやすくする。
つまりAIに関する開発は、どのような開発シーンでも当たり前のものとなる時代が近々やってくる。そのためAiは自分とは余り関係ないと考えている業務アプリケーションの開発エンジニアも、そういった時代が来ることを見据えて、業務で利用しているJavaの進化をしっかりウォッチする必要がありそうだ。