Skip to main content

JavaエコシステムでSpringが圧倒的な存在感、60%がメインアプリケーションに採用

jvm with logos feature

2020年2月5日

0 分で読めます

年次JVMエコシステムレポートへようこそ!本レポートでは、JVMエコシステムに関する最大規模の年次調査の結果をご紹介します。2019年下半期に2,000人を超える方々から寄せられた回答をまとめました。JavaおよびJVM関連のトピックについて、知見を共有し調査にご協力くださった皆さまに感謝いたします。

本レポートは全6回の記事で構成されています。

  1. JVMエコシステムレポート2020 - はじめに

  2. 開発者の36%が過去1年間にOracle JDKから別のOpenJDKディストリビューションへ移行

  3. 開発者の64%が、Java 8を最もよく使うリリースとして回答

  4. KotlinがScalaとClojureを抜き、JVMで2番目に人気の言語に

  5. Javaエコシステムを席巻するSpring、60%がメインアプリケーションに採用

  6. IntelliJ IDEAがIDE市場を席巻、JVM開発者の62%が利用

すべての情報をまとめた、丁寧に作成したPDFレポートもご用意しています。ダウンロードしてご覧ください。

Spring Frameworkを使用していますか?

回答者のちょうど10人に6人が、アプリケーションを本番環境で運用するためにSpring Frameworkを利用しています。サードパーティ製のオープンソースフレームワークとしては、驚くほど高いシェアです。

「Yes」と記された紫色の人物アイコン6つと、「No」と記された淡い青色の人物アイコン4つ、Snykロゴを示すピクトグラム

メインアプリケーションでは、どのバージョンのSpringを使用していますか?

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

バージョン別の採用率を示す棒グラフ:5.1.x 48%、5.0.x 18%、4.3.x 17%、その他はいずれも5%以下。

どのサーバーサイドWebフレームワークを使用していますか?

サーバーサイドでは依然としてSpringが優勢です。市場の半数がSpring Bootを、ほぼ3分の1がSpring MVCを使用しています。

MicronautやQuarkusといったフレームワークには、Springと競合できるだけの可能性があるでしょう。ただし、結論を出すのは来年のレポートまで待ちたいと思います。JHipsterは、カンファレンスでの講演の多さから期待されるほど人気がないようです。また、JSFが今も使われているのも興味深い点です。

Spring Bootが50%、Spring MVCが31%、JSFが11%、その他のJavaフレームワークが3~5%を占め、21%が「該当なし」を選択したことを示す横棒グラフ。

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の人気について、懸念が生じる結果でもあります。

直接使用している人が24%、Springまたは別のフレームワークを使用している人が41%、使用していない人が35%であることを示すドーナツグラフ。

メインアプリケーションでは、どのバージョンのJava EEを使用していますか?

回答者の10人に4人近くが最新バージョンのJava EEを使用していますが、Java EE 7も依然として広く使われています。また、開発者の2%は今もJ2EEを使用していると回答しました。割合としては小さく見えますが、メインアプリケーションの言語としてScalaを使う人とほぼ同数であり、決して少なくありません。

また、回答者の21%が、使用しているJava EEの正確なバージョンを把握していないことも重要です。この質問と前の質問の回答を照合したところ、Java EEのバージョンを把握していない開発者の95%は、Spring Frameworkを通じてJava EEを間接的に使用していることが分かりました。

Java EE 8が37%、Java EE 7が29%、Java EE 6が9%、Java EE 5とJ2EEがそれぞれ2%、不明が21%であることを示す棒グラフ。

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の管理に最終的な悪影響を及ぼすのでしょうか?

アンケート結果を示すグラフ:37%が「とても残念」、32%が「少し不満」、17%が「どちらでもない」、2%が「満足」、14%が「わからない」と回答。

javax名前空間の変更に伴うJakarta EEの新しいバージョンへの移行を避けるために、別のフレームワークやテクノロジーへの切り替えを検討しますか?

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

回答を示すドーナツグラフ:確実に使う 10%、おそらく使う 24%、使う可能性は低い 36%、使わない 30%。Jakarta EE一択。

アプリケーションでは、ほかにどのプログラミング言語を使用していますか?

今では、アプリケーションを単一の言語だけで開発する人は多くありません。現代の開発者の大半は、複数の言語を扱うポリグロット、フルスタック、またはマルチリンガルである必要があると言えるでしょう。多くの場合、言語にはそれぞれ特定の役割があるため、メインで使うJVM言語と併せて別の言語も使うのは自然なことです。もちろん、必ずしも好きで使っているとは限りません。目的に合った言語の中には、必要悪と見なされているものもあります。

この質問では複数回答が可能だった点にご留意ください。結果は、さほど意外ではありません。フロントエンド開発ではJavaScriptが62%で最も人気の言語であり、データベースのクエリにはSQLが44%で最も多く使われています。データサイエンスや機械学習のアプリケーションでは、Pythonが22%で最も人気です。

フロントエンドJavaScript(62%)とSQL(44%)が最も多く報告された技術で、PythonとNode.js(各22%)が続くことを示す横棒グラフ。

どのクライアントサイドWebフレームワークを使用していますか?

この質問では複数の選択肢を選べました。使えるフレームワークがいくつもあるのに、1つに絞る必要はありませんよね?

回答を見ると、38%のAngularが明らかに優勢です。ただし、Angularには非常に多くのバージョンがあるため、新旧どちらが選ばれているのかは分かりません。次点は31%のReactで、28%のjQueryが僅差で続きます。

また、調査によると、開発者の10人に2人はフレームワークを使用していません。今後、この状況が大きく変わるか見ていきましょう。

Angular 38%、React 31%、jQuery 28%、該当なし 20%、Vue 11%、Backbone 2%を示す横棒グラフ。複数回答可。

レポートにはまだ続きがあります!次に読みたいセクションを選んでください。

  1. JVMエコシステムレポート2020 - はじめに

  2. 開発者の36%が過去1年間にOracle JDKから別のOpenJDKディストリビューションへ移行

  3. 開発者の64%が、Java 8を最もよく使うリリースとして回答

  4. KotlinがScalaとClojureを抜き、JVMで2番目に人気の言語に

  5. Javaエコシステムを席巻するSpring、60%がメインアプリケーションに採用

  6. IntelliJ IDEAがIDE市場を席巻、JVM開発者の62%が利用

今すぐレポートをダウンロード!

続きを読む

Blog

フロンティアモデルは脆弱性を発見した。攻撃者だけがエクスプロイトチェーンを見つけた。

静的解析で欠陥は見つかりましたが、ライブ攻撃テストで侵害につながる連鎖を実証できたのは唯一でした。Evo COS、Claude Security、Claude Code Securityを比較します。

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

Blog

AIコーディングエージェントが不適切なアクセス制御を繰り返し実装する理由

AIコーディングエージェントは、コンパイルが通りレビューも通過する一方で、あるテナントのデータを別のテナントに公開してしまう認可ロジックを生成することがあります。不適切なアクセス制御が検出しにくい理由と、その防止策をご紹介します。