JVMエコシステムレポート2018 - 開発ツールについて
Andrew Binstock
2018年10月17日
0 分で読めますJava開発者を対象とした、史上最大規模のアンケートへようこそ。以下のレポートで紹介するデータは、10,200件以上の回答に基づいています。アンケートにご協力いただいた皆さまには、他の開発者の役に立つ経験を共有するために時間を割いていただき、心より感謝申し上げます。このレポートは4つの記事に分かれています。
JVMエコシステムレポート2018 - 開発ツールについて
すべての情報をまとめた、手作りの素敵なPDFレポートもご用意しています。ダウンロードしてご覧いただけます。
開発ツールについて
6. 開発に使用しているIDEは何ですか?
このグラフは、最近の他の調査結果と一致しています。IntelliJはここ1~2年でEclipseを追い抜き、Apache NetBeansは市場の約10%を維持しています。IntelliJの合計45%は、IntelliJ IDEA Ultimate Edition(有料版)が32%、IntelliJ Community Edition(無料版)が11%、Android Studioが2%です。Eclipseには、Eclipse STS、JBoss Tools、Rational Application Developerなど、Eclipseベースのツールが含まれます。Apache NetBeansのユーザー数はほとんど変わっていません。このことから、OracleからApache Software Foundationへの移行は、ユーザー基盤に影響を与えていないようです。また、Visual Studio Codeが1%ながら登場しており、Javaコミュニティで存在感を高め始めていることがわかります。さらに、「vi/vim/emacsなど」のグループにも敬意を表します。おそらくタブレット(石板製)でこのレポートを読んでいることでしょう。

7. メインプロジェクトで使用しているビルドツールは何ですか?
数値を見る際には、使用している「主要なビルドツール」を尋ねた点が重要です。メインプロジェクトで頼りにしているビルドツールを知ることが目的です。チームがすべてのプロジェクトで使うビルドツールを知るのも興味深いですが、回答が多岐にわたると、結果の有用性が薄れてしまいます。ここからわかるように、Mavenは最も近い競合であるGradleに対して3対1の割合で圧倒的なシェアを占めています。開発者の10人に1人は今もAntを使い、20人に1人はビルドツールを使っていません。RebelLabsが2016年に実施した同様の調査(回答者2,000人)では、Mavenが68%、Gradleが16%でした。Gradleの採用率が伸びたのは、スクリプト言語としてKotlinをサポートしたことが一因かもしれません。また、GradleはAndroidプロジェクトのデフォルトのビルドエンジンです。しかし、Mavenとの差を縮めるペースは緩やかです。

8. 使用している静的コード品質ツールは何ですか?
インターネットを正そうとメールやツイートを送る前にご注意ください。これは複数回答の質問なので、合計は100%になりません。このデータからわかることの一つは、広く使われている静的コード品質ツールはほんの一握りで、上位には意外性がないということです。SonarQube、Findbugs、Checkstyleが大半を占めています。最も意外なのは、回答者の36%が静的コード品質ツールを一切使っていないことかもしれません。静的コード品質ツールは一般的に使われているものと考えていたため、これは驚くべき結果です。

9. テストで静的セキュリティツールを使用していますか?
さまざまな企業で重大な情報漏えいが相次ぎ、セキュリティテストへの関心が高まっています。しかし現在でも、静的セキュリティツールをまったく使っていないサイトが大半です。実際、回答者の72%、つまりほぼ4分の3が、パイプラインのどこでも静的解析ツールを使用しておらず、既知の脆弱性にさらされている可能性があります。今後の調査では、セキュリティツールの導入がさらに広がることを期待しています。

10. 使用しているCIサーバーは何ですか?
多くの開発者の予想どおり、JenkinsがCIサーバーの競争を制し、圧倒的な57%のシェアを獲得しています。最も近い競合は「なし」で、得票率は21%。残りの競合を合わせた22%に迫る数字です。ほかのCIサーバーはそれぞれシェア5%未満で、Jenkinsの古参の親戚ともいえるHudsonは、2%でなんとか残っています。Java/JVMの分野ではあまり意識されないMicrosoftのVSTS(Visual Studio Team Server)も、2%を占めています。現在、ほぼすべてのサイトが継続的インテグレーションを利用していると、多くの開発者は考えているでしょう。だからこそ、アプリケーションの5つに1つがCIをまったく行っていないという結果は衝撃的です。Travis CIやCircleCIなど、個人プロジェクトでも使えるCIは、BitbucketやGitHubといった公開プロジェクトホスティングサイトで利用できます。プロジェクトでCIを使っていない21%の皆さん、ぜひその理由を聞かせてください。

11. メインプロジェクトでチームが使用しているソースコード管理プラットフォームは何ですか?
予想どおり、ソースコード管理の競争ではGitが圧倒的な勝利を収めました。その優位性がどれほどか疑問に思う方もいるかもしれませんが、回答者のほぼ4人に3人が、Gitでコードベースを管理するチームで働いています。残りの回答者の大半はSubversionを使用しています。それでも2018年に、ソースコード管理をまったく使っていない人が3%もいます。もう言葉もありません。

12. メインプロジェクトで使用しているコードリポジトリは何ですか?
コードリポジトリの状況はSCMとはかなり異なり、利用先が分散しています。GitHubとBitbucketがそれぞれ25%で並び、GitLabが20%で続いています。この3つをプロジェクトホスティングの「ビッグスリー」と呼べるでしょう。この質問は公開プロジェクトだけを対象にしたものではありません(公開プロジェクトではGitHubがさらに大きくリードすると考えられます)。公開・非公開の両方のプロジェクトホスティングが対象です。Microsoftによる最近のGitHub買収は、今後の採用率に影響する可能性があり、詳しい状況は次回以降の調査で明らかになるでしょう。GitHubの25%の内訳を見ると、回答者の半数強(52%)が公開版を使用し、残り(48%)はオンプレミス版の非公開GitHub Enterpriseを使用しています。VSTSは「その他」の一部で、2%を占めます。

13. 使用しているプライベートバイナリ/アーティファクトリポジトリは何ですか?
多くのサイトでは、パッケージ化されたアーティファクトリポジトリを使っていません。必要がないというのが、おそらくその理由でしょう。利便性を重視する場合は、JVMエコシステムに特化した実績あるNexusが選ばれ、その次に、さまざまな言語のエコシステムでより広く利用されているJFrogのArtifactoryが続きます。

14. 使用しているテスト技術は何ですか?
驚くことに、ほぼ5人に4人がJUnitを使っており、TestNGもそれより10ポイント少ない割合で利用されています。JVMエコシステムでは、単体テストが圧倒的に主流のテスト手法であることは明らかです。(複数回答のため、合計は100%を超えます。)モックでは、Mockitoが好まれるフレームワークとして定着しています。JMeterを使う回答者はほぼ4人に1人、Gatlingは5%であり、パフォーマンステストの重要性が広く認識されつつあることがわかります。Seleniumは29%と健闘しています。静的コード品質ツールの結果とは異なり、テストツールを一切使っていないと答えた人はわずか10%です。ちょっと待ってください……10人に1人はテストツールを使っていないのですか?!人類への信頼を失う前に、次に進みましょう。

開発ツールのまとめ
開発者の20人中9人がIntelliJ IDEAを使用
開発者の10人中6人がメインプロジェクトのビルドにMavenを使用
開発者の10人中7人以上が、今も静的セキュリティツールを未使用
開発者の10人中6人近くがCIにJenkinsを使用
開発者の4人中3人近くがSCMにGitを使用
コードリポジトリ市場では、GitHub、Bitbucket、GitLabがほぼ同じシェアを占める
開発者の10人中8人近くがJUnitを使用
レポートはまだ続きます!次に読みたいセクションを選んでください。
JVMエコシステムレポート2018 - 開発ツールについて
