KotlinがScalaとClojureを抜き、JVMエコシステムで2番目に人気の言語に
2020年2月5日
0 分で読めます年次JVMエコシステムレポートへようこそ!本レポートでは、JVMエコシステムに関する最大規模の年次調査の結果をご紹介します。2019年下半期に2,000件を超える回答が寄せられました。JavaおよびJVM関連のトピックについて、知見を共有し、調査にご参加くださった皆さまに感謝いたします。
本レポートは、全6回の記事で構成されています。
KotlinがScalaとClojureを抜き、JVMで2番目に人気の言語に
この情報をすべてまとめた、丁寧に作り込んだPDFレポートもご用意しています。ダウンロードしてご覧ください。
メインのアプリケーションで使用しているJVM言語は何ですか?
ここ数年でJVM言語の選択肢は増えましたが、JVMユーザーの大多数、ほぼ10人中9人は、今もメインの言語としてJavaを使用しています。
この高い割合が長年にわたって維持されている理由の一つは、Javaが絶えず進化していることです。ローカル型推論やラムダ式など、他のJVM言語がJavaとの差別化に活用してきた言語構造やパラダイムの多くが、Javaにも導入・実装されてきました。また、新しいJavaのリリースサイクルにより、こうした機能を以前より早く開発者が利用できるようになっています。
一方で、Javaが根強く支持されているにもかかわらず、他のJVM言語の利用も増えています。特に、JetBrainsが開発したKotlinは、ここ数年で大きく人気を伸ばしました。実際、Kotlinの利用率は昨年のレポートの2.4%から、5.5%へと大幅に上昇しています。

JVMユーザーの間でKotlinの採用が増えているのは、Javaとの連携が非常にスムーズであることを考えれば驚くことではありません。さらに、Spring BootなどのフレームワークでKotlinが採用されていることも、本番環境に対応できるシステムを構築しやすくしています。
Kotlinが目指す革新が、Javaの開発にも反映されている点は重要です。新しいJavaのバージョンでは、Kotlinのような言語で人気を集め、支持されている概念を取り入れようとしています。こうした動きが、今後のJVM言語の採用にどのような影響を与えるのか、注目されます。
Javaアプリケーションを開発または保守していますか?メインのアプリケーションでJavaを使っていない人も、Javaを何らかの形で使っているのでしょうか?
すべてのJVM開発者が、メインの言語としてJavaを使っているわけではありません。前の質問への回答によると、主に他の言語をアプリケーションで使っているJVM開発者は13%です。そのうち大多数(70%)は、日常業務の何らかの場面でJavaも使用しています。
つまり、回答者全体の96%が、メインの言語として、あるいはアプリケーションの一部でJavaを使用しています。JVM上で動作するアプリケーションに、他のJVM言語のみを使用している回答者はわずか4%です。

JavaアプリケーションでJavaモジュールを使用していますか?または、使用する予定はありますか?
Java 9のリリースでは、アーキテクチャに大きな変更が加えられました。最もよく知られ、影響の大きかった変更は、正式名称をJava Platform Module System(JPMS)とするモジュールシステムの導入です。この新しい抽象化レイヤーはパッケージの上位に位置し、用途に合わせてより小規模なJDKを作成できるようにします。
しかし、これほど大規模なアーキテクチャ変更は、古いシステムやレガシーシステムを移行する際に大きな影響を及ぼす可能性があります。ただし、Java 9以降でモジュールシステムの使用が必須というわけではありません。クラスパスを使い続けることもでき、その間、モジュールシステムはすべてのJARを暗黙のモジュールにまとめます。
モジュールシステムを使用しているか、今後使用する予定があるかを開発者に尋ねたところ、興味深い結果が得られました。すでに使用していると回答した人はわずか7%でした。参加者の大多数、つまり10人中6人以上はJPMSを使用しておらず、29%は今後使用する予定だと回答しました。

Javaモジュールの導入はどのくらい簡単でしたか?
Javaモジュールの導入に関しては、難易度について意見が分かれています。回答者の4分の1は、導入プロセスを難しくも簡単でもないと評価しました。一方、かなり難しい(7/10以上)と答えた人も25%に上りました。平均値、中央値、最頻値はいずれも5/10でした。これらの回答から、Javaモジュールの導入には時間と労力がかかるものの、決して不可能ではないと言えるでしょう。

新しいアプリケーションの開発時と、既存アプリケーションの移行時のどちらにJavaモジュールを導入しましたか?
新しいものを導入する場合、グリーンフィールドプロジェクトのほうが簡単だと考えられています。アプリケーションを一から作れば、多くの場合、ソフトウェアプロジェクトの複雑な進化に対応する必要がないためです。しかし、Javaモジュールの導入は必ずしもそうとは限りません。調査によると、回答者のほぼ半数は既存アプリケーションの移行時にJavaモジュールを導入していました。

レポートはまだ続きます!次に読みたいセクションを選んでください。
KotlinがScalaとClojureを抜き、JVMで2番目に人気の言語に
