観測とモニタリングのリーディングカンパニーであるNew Relicが、Javaエコシステムの状況に関する最新のレポートを発表した。主なポイントは、Java 8 を使用しているアプリケーションが 30% 未満であること、Oracle が OpenJDK ベンダーに後れを取り続けていること、比較的小さなヒープ サイズの使用が非常に一般的であることなどが挙げられる。
このレポートは、New Relicが顧客のJVMから報告された実際の稼働データを使用しているため、市場の他の調査とは根本的に異なっている。これは、言語が実際にどのように使用されているかについての、高品質で直接観察されたデータであることを意味する。
このレポートは、New Relicに過去1回以上報告された6,200万個のJVMインスタンスから受信したデータに基づいており、約50万個の異なる本番Javaアプリに相当する。
New Relicは過去数年にわたりJavaエコシステムを監視し、開発者がJavaをどのように使用しているか動向を明らかにしてきた。2024 年の Java エコシステムの現状レポートでは、次の点を調査している。
- 本番環境でもっとも使用されているJavaのバージョン
- もっとも人気のあるJDKベンダー
- Javaアプリケーションにおけるコンピューティングとメモリの使用
- ログ、暗号化、データベース用のもっとも人気のあるJavaフレームワークとライブラリ
Javaのバージョンに関する永遠の課題から始めると、もっとも印象的なこととして、Java 8が減少し続けていることがあげられる。
アプリケーションの30%未満しかJava 8を使用していないため、特に主要なフレームワーク(Hibernate 6、Mockito 5、Spring 6など)がJava 8のサポートを終了していることを考慮すると、Java 8はレガシーバージョンと考えるべきだろう。
最先端では、Java 21のリリース後6ヶ月で、New Relicが監視しているアプリケーションの1.4%がJava 21を使っていた。これを考慮すると、Java 17が導入された6ヶ月後には、0.37%のアプリケーションしかJava 21を使用していなかったことになる。
この急速な普及は、おそらく2つのことに起因すると考えられる。
- 仮想スレッドが最終機能として登場したこと
- 17から21へのアップグレードの容易さ
Javaベンダーという点では、OracleはOpenJDKベンダー、特にEclipse AdoptiumとAmazonのCorrettoに負け続けている。Oracleは依然として市場をリードしているが、Adoptiumとの差はわずか2、3ポイントで、Amazonはそのすぐ後ろに迫っている。
ガベージ・コレクターに関しては、もう少し複雑な様相を呈している。G1が70%以上のシェアを持つ傑出したマーケットリーダーだが、これはJavaバージョン9以降のデフォルトGCであり、コレクターが指定されていない場合に使用されるからだ。
ただし、これには重要な注意事項がある。シングルコアのコンテナでは、G1コレクタは無効化され、代わりにシリアルコレクタが使用される。これは、G1が本質的に並行アルゴリズムであるため、シングルコアでは Serialよりもメリットがないためである。
その結果、シングルコアのコンテナの数がNew Relicに報告されるため、G1の結果はおそらくSerialに比べて誇張される。
さらに、比較的小さなヒープが非常に一般的であり、報告されたJVMの30%以上が1GB以下のメモリを使用しており、さらに27%が1~2GBを使用している。これは、システムをより小さなヒープサイズのマイクロサービスに分解するというメガトレンドとほぼ一致している。
ログ、セキュリティ、データベース用のもっとも人気のあるライブラリを見ると、明確な勝者は見当たらない。 市場は依然として断片化している。さらに、多くのアプリケーションが複数のログフレームワークを使用していると報告している。log4jが76.4%、JBoss Loggingが61.2%、Logbackが52.2%で、合計すると100%をはるかに超えていることから、このことがはっきりとわかる。
また、New Relicのレポートには、新しく導入されたAIアシスタントに尋ねられたもっとも人気のある質問に関する結果も含まれている。
Javaエコシステムがここ数年でどのように変化したかについてのより詳細な画像については、2020年と2019年の過去レポートから確認できる。