JavaエコシステムでSpringが圧倒的な存在感、60%がメインアプリケーションに採用
2020年2月5日
0 分で読めます年次JVMエコシステムレポートへようこそ!本レポートでは、JVMエコシステムに関する最大規模の年次調査の結果をご紹介します。2019年下半期に2,000人を超える方々から寄せられた回答をまとめました。JavaおよびJVM関連のトピックについて、知見を共有し調査にご協力くださった皆さまに感謝いたします。
本レポートは全6回の記事で構成されています。
Javaエコシステムを席巻するSpring、60%がメインアプリケーションに採用
すべての情報をまとめた、丁寧に作成したPDFレポートもご用意しています。ダウンロードしてご覧ください。
Spring Frameworkを使用していますか?
回答者のちょうど10人に6人が、アプリケーションを本番環境で運用するためにSpring Frameworkを利用しています。サードパーティ製のオープンソースフレームワークとしては、驚くほど高いシェアです。

メインアプリケーションでは、どのバージョンのSpringを使用していますか?
Springは長い歴史を持つフレームワークです。大幅な変更や革新を重ね、Javaエコシステムで最も広く使われるフレームワークへと進化してきました。Springユーザーの3分の2がSpring 5を使用しており、新しいバージョンへの移行が進んでいます。

どのサーバーサイドWebフレームワークを使用していますか?
サーバーサイドでは依然としてSpringが優勢です。市場の半数がSpring Bootを、ほぼ3分の1がSpring MVCを使用しています。
MicronautやQuarkusといったフレームワークには、Springと競合できるだけの可能性があるでしょう。ただし、結論を出すのは来年のレポートまで待ちたいと思います。JHipsterは、カンファレンスでの講演の多さから期待されるほど人気がないようです。また、JSFが今も使われているのも興味深い点です。

Enterprise Java(J2EE、Java EE、Jakarta EE)を使用していますか?
Java開発者がJavaのEnterprise Edition(EE)を使っているかどうかは、毎年尋ねている質問です。今年は質問を少し変更し、Springやその他のフレームワーク(JPAやServletなど)を介して使用している場合の選択肢を加えました。これにより、EEを間接的に利用している人が「いいえ」を選ばないようにしています。
Java EEを使用していないと回答した開発者は35%で、状況は昨年(38%)から大きく変わっていません。ただし、開発者の10人に4人がEnterprise Javaを間接的に使用している点は注目に値します。Java EEの人気について、懸念が生じる結果でもあります。

メインアプリケーションでは、どのバージョンのJava EEを使用していますか?
回答者の10人に4人近くが最新バージョンのJava EEを使用していますが、Java EE 7も依然として広く使われています。また、開発者の2%は今もJ2EEを使用していると回答しました。割合としては小さく見えますが、メインアプリケーションの言語としてScalaを使う人とほぼ同数であり、決して少なくありません。
また、回答者の21%が、使用しているJava EEの正確なバージョンを把握していないことも重要です。この質問と前の質問の回答を照合したところ、Java EEのバージョンを把握していない開発者の95%は、Spring Frameworkを通じてJava EEを間接的に使用していることが分かりました。

javax名前空間の継続使用についてOracleとEclipse Foundationが合意に至らなかったことに、どのような反応をしましたか?
何カ月にもわたる交渉の末、OracleとEclipse Foundationは、Eclipse Foundationコミュニティによるjavaxパッケージ名前空間の使用について合意に至りませんでした。javax名前空間はOracleの商標であるため、今後、Eclipse FoundationによるJakarta EEのすべての改良では、別のパッケージ名を使用する必要があります。その結果、Jakarta EEの変更に伴い、ライブラリコードの移行も必要になります。
パッケージ名の変更によって、Java EE 8まではOracle、それ以降のJakarta EEではEclipse Foundationが所有者であることが明確になります。しかし、Enterprise EditionのすべてのAPIがjavaxで始まるため、この変更はすべてのAPIに影響します。
この変更について尋ねたところ、参加者の大多数がOracleの対応に不満を示しました。JVM開発者の3分の2が、交渉の結果に失望したと回答しています。実際、この質問の回答からはOracleに対する懸念も浮かび上がります。この結果は、OracleによるJavaの管理に最終的な悪影響を及ぼすのでしょうか?

javax名前空間の変更に伴うJakarta EEの新しいバージョンへの移行を避けるために、別のフレームワークやテクノロジーへの切り替えを検討しますか?
回答者の大半はjavax名前空間の変更にかなり失望しているものの、別のフレームワークに切り替える開発者は10人に1人にとどまります。調査によると、開発者の66%は、名前空間が変更されてもJakarta EEを使い続ける可能性が高い、または確実に使い続けると回答しています。Springのようなフレームワークを介してEEを間接的に使う人が多いため、変更の影響はないと考えているのかもしれません。この結果から、名前空間の変更は、開発者が実際に行動を起こすほどではないものの、残念で煩わしいものと捉えられていることがうかがえます。

アプリケーションでは、ほかにどのプログラミング言語を使用していますか?
今では、アプリケーションを単一の言語だけで開発する人は多くありません。現代の開発者の大半は、複数の言語を扱うポリグロット、フルスタック、またはマルチリンガルである必要があると言えるでしょう。多くの場合、言語にはそれぞれ特定の役割があるため、メインで使うJVM言語と併せて別の言語も使うのは自然なことです。もちろん、必ずしも好きで使っているとは限りません。目的に合った言語の中には、必要悪と見なされているものもあります。
この質問では複数回答が可能だった点にご留意ください。結果は、さほど意外ではありません。フロントエンド開発ではJavaScriptが62%で最も人気の言語であり、データベースのクエリにはSQLが44%で最も多く使われています。データサイエンスや機械学習のアプリケーションでは、Pythonが22%で最も人気です。

どのクライアントサイドWebフレームワークを使用していますか?
この質問では複数の選択肢を選べました。使えるフレームワークがいくつもあるのに、1つに絞る必要はありませんよね?
回答を見ると、38%のAngularが明らかに優勢です。ただし、Angularには非常に多くのバージョンがあるため、新旧どちらが選ばれているのかは分かりません。次点は31%のReactで、28%のjQueryが僅差で続きます。
また、調査によると、開発者の10人に2人はフレームワークを使用していません。今後、この状況が大きく変わるか見ていきましょう。

レポートにはまだ続きがあります!次に読みたいセクションを選んでください。
Javaエコシステムを席巻するSpring、60%がメインアプリケーションに採用



