JVMエコシステムレポート2018
Andrew Binstock
2018年10月17日
0 分で読めますJava開発者を対象とした、史上最大規模の調査へようこそ。本レポートのデータは、10,200件を超える回答から集計しました。調査にご協力いただいた皆さま、お忙しい中、ほかの開発者の参考になる経験を共有してくださり、誠にありがとうございました。
本レポートは、全4回の記事で構成されています。
JVMエコシステムレポート2018 — JDKについて
この調査結果をすべてまとめた、手作りの素敵なPDFレポートもご用意しています。ダウンロードしてご覧いただけます。
はじめに
この調査は、主にソーシャルメディアを通じてJavaコミュニティ全体に告知し、Virtual JUGを含む世界各地のJavaユーザーグループ、およびOracle Corp.が隔月で発行するJava専門誌Java Magazineの購読者に向けて実施しました。回答を促すため、調査のスポンサーであるSnykとOracleは、Devoxx4Kidsへの寄付を約束しました。
Devoxx4Kidsは、子どもたちがコンピューターゲームを作ったり、ロボットをプログラミングしたり、電子工学に触れたりできるイベントを世界各地で開催しています。楽しく学べる機会を通じて、ティーンエイジャーにプログラミング、ロボット工学、エンジニアリングを紹介し、コンピューターを使えばもっと創造的なことができると伝えることを目指しています。

回答者の地理的な所在地、勤務先の企業規模(該当する場合)、年齢、Javaの経験などの情報は、調査の最後に掲載しています。
建設的なフィードバックやご意見をお待ちしています。特に、分析に関するご意見をぜひお寄せください。今後の調査への参加について連絡を希望される場合は、お知らせください。本レポートをお楽しみいただき、調査結果から役立つ知見を得ていただければ幸いです。

要約
本題に入る前に、本レポートはかなり長いため、主なポイントを簡単にまとめておきます。もちろん、レポートにはほかにも多くの情報がありますが、30秒しかない方には、この画像が何よりの味方です。

Capture the Flagを始めよう
オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。
JDKについて
1. メインアプリケーションの本番環境では、どのベンダーのJDKを使用していますか?
まずは、重要な質問から始めましょう。独自のJDK実装を提供するベンダーが数多くある中、開発者はアプリケーションの本番環境でどの製品を使っているのでしょうか。Oracle JDKとOpenJDKがほかを大きくリードしていることがわかります。開発者の10人中7人がOracle JDKを、さらに10人中2人がOpenJDKを選んでおり、競争の余地はあまりありません。ただし、今後のライセンスやサポートの変更によって、これらの数字は変化する可能性があります。

2. メインアプリケーションの本番環境では、どのJava SEバージョンを使用していますか?
Java 9ではJDKの構造に大幅な変更が加えられ、移行や普及に影響すると多くの人が予測していました。調査結果(Java 10とJava 11のリリースの中間に調査を実施)を見ると、Java 8が依然として最も広く使われています。回答者の10人中ほぼ8人が、メインアプリケーションの本番環境でJava 8を使用していると答えました。また、Java 8以外を使う回答者のうち、より新しいバージョンを使用している人は半数に届きません。

3. Javaの新しいリリースサイクルに、どのように対応する予定ですか?
Java 9では大規模なアーキテクチャの変更が行われただけでなく、Java SEの新バージョンを6か月ごとにリリースする新しいサイクルも導入されました。2~3年ごとにリリースされる長期サポート(LTS)版では、セキュリティアップデートなどの長期サポートが提供されます。なお、Java 9はLTS版ではありません。この質問では、開発チームが新しいリリースサイクルにどう対応するかを尋ねました。回答はさまざまで、今後の進め方がまだ定まっていないことがうかがえます。実際、開発者のほぼ3人に1人は、新しいリリースサイクルへの対応をまだ決めていません。
今後1年でベストプラクティスが確立され、企業は望ましい移行サイクルに落ち着くと予想しています。移行サイクルは、業界によって大きく異なる可能性があります。その結果、「まだわからない」という回答は減ると考えられますが、ほかの選択肢のどれが増えるかはわかりません。

4. メインアプリケーションでは、どのJava EEバージョンを使用していますか?
回答者の10人中ほぼ4人は、エンタープライズJavaを使用していないと回答しました。使用している人の大半はバージョン7を利用しています。Java EE 8は2017年9月にリリースされたため、リリースから1年も経たないうちに最も人気のあるバージョンに迫っているのは、期待の持てる結果です。Java SEとは異なり、Java EEは実装が利用可能になるまでに時間がかかるため、リリースの普及にも時間を要します。また、アプリケーションサーバーのベンダーが仕様を採用し、実装するまでにも時間が必要です。
Jakarta EE 8の展開と普及が始まるにつれて、これらの数字がどう変化するかに注目したいと思います。また、最終的なメジャーリリースが2003年だったJ2EEを今も使い続けている、苦労の多い2%の方々にも思いを寄せたいところです。

5. メインアプリケーションで主に使用しているJVM言語は何ですか?
JVMユーザーのちょうど10人中9人が、メインアプリケーションにJavaを使用しています。現在、多言語やポリグロットを前提に設計されるプロジェクトは数多くありますが、JVM上で動作する部分では、主にJavaが使われています。
Javaが圧倒的に選ばれている一方で、JVM開発者はほかのJVM言語にも一貫して強い関心を示しています。そのことは、Java Magazineや主要なプログラミングサイトで、それらの言語に関する記事が人気を集めていることからもうかがえます。ここ数年、新たに登場した「注目の」JVM言語といえばJetBrainsのKotlinで、着実に普及を続けています。現在はAndroid開発でサポートされているほか、ビルドツールGradleのスクリプト記述に使われる主要言語の一つ(Groovyに次ぐ)でもあります。こうした採用の広がりにより、今回の調査ではKotlinがScalaを上回り、Groovyもわずかに追い越しました。

Clojureの3.0%という数字は非常に高く、少なくとも私たちにとっては、関数型プログラミングへの関心が続いていることを示しています。Java 8の多くの機能に見られる関数型の方向性には、Java自体にも関数型プログラミングの影響が及んでいることが表れています。
JDKのまとめ
開発者の10人中7人が、本番環境でOracle JDKを使用
開発者の10人中2人が、本番環境でOpenJDKを使用
開発者の10人中8人が、本番環境でJava SE 8を使用
開発者の10人中1人が、バージョン9以降に移行済み
開発者のほぼ10人中3人が、新しいJavaのリリースサイクルへの対応を決めていない
開発者の10人中3人以上が、JavaのLTSリリースのみを使い続ける予定
最新バージョンのJavaを使い続ける予定の開発者は、10人中わずか1人
開発者の10人中ほぼ5人が、Java EE 7または8を使用
Java EE 7は今も最も人気のあるエンタープライズ版Javaで、開発者の10人中ほぼ3人が使用
JVM開発者の10人中9人がJavaを使用
言語の利用率では、Kotlinが2.42%でGroovyとScalaをわずかに上回る
このレポートにはまだ続きがあります。次に読むセクションをお選びください。
JVMエコシステムレポート2018 — JDKについて
