1. はじめに
この記事では、Javaの情報サイトであるBaeldungでの2019年のJavaの現在のと、Javaは今後どうなっていくのかについてプロマリで考察してみたいと思います。
2. Javaの現状
Javaはプログラム言語としては、既に古い部類の分野の言語ですが、あらゆるWebサービスや公共、金融、ポータルサイトのバックエンドのシステムの言語として継続して開発が続けられています。
Google, MSN, Yahoo! などの有名検索エンジンで検索された結果を元に算出されたプログラム言語の月間人気ランキング、Tiobeインデックスではまだ1位のプログラム言語であり、PYPL(※1)とRedMonk(※2)の両方でJavascriptとPythonで2位を争っています。
出典:Tiobeインデックス
そして、ソフトウェア開発のプラットフォームGitHubで最も人気のある言語として3位です(GitHub Octoverseによる)。
出典:GitHub Octoverse
上記インデックスが意味するものは、最近のトピックのトレンドは、Kotlinや、React、データサイエンス、Androidや自動運転等であるものの、以前としてあらゆるWebサービス等で使われるJavaは言語としても、まだまだ現役で活火山のように活発でもあることを示しています。
- ※1 PopularitY of Programming Language Index。Google検索エンジンにおいてプログラミング言語のチュートリアルが検索された回数から、対象となるプログラミング言語がどれだけ話題になっているかをインデックス化したもの
- ※2 GitHubでホスティングされているコードリポジトリやStack Overflowでのディスカッションを反映し、プログラミング言語の順位付けを行っている調査会社
3. Javaの人気
Javaは常に、”お気に入り”言語の一つとして存続しています。ここでいう”お気に入り”とは、以前として企業、さらにその企業のFortune 500では、安定的に稼働しているJavaを愛しているといっていいでしょう。
なぜなら、企業が最も重視するのは、下位互換性であり、急進的な更新やアップグレードがあるモダンな言語には大変なアレルギーがあります。特に金融や証券等は、20年前に動作しJava5で記述されたシステムであっても、比較的新しいバージョンのJavaであってもコンパイル、実行ができるはずです。
企業が最も重視するのは安定性。開発者では不安定な言語であっても、人気があればそれを使いたがると思います。エンジニアの本能の部分において。
4. Javaのバージョン
Baeldung e-learningは、主にSpringに関するコースと書籍があり、Javaに関するすべてのトレンドを調査しているJavaの情報サイトで、独自の調査結果を公開しています。以下に述べるのは2019年現在、稼働しているJavaのバージョンを調べたものです。これは6707人の開発者の見解を反映しています。比較的調査結果としての母集団は小さなものですが、回答者は経験豊富な開発者であることを言及しておきます。
Javaについてはエンジニアであれば知っての通り、バージョン8以降のリリースサイクルが大幅に短縮されました。Javaは現時点でバージョン13ですので、次のバージョンは14になります。それでは、次のバージョンが公開された場合に、開発者や企業は新しいJavaのバージョンに移行するのでしょうか。
調査の結果、驚くべきことに、調査に参加した開発者の80%は、依然として由緒あるバージョン8を使用しています。これにはいくつかの理由が考えられます。 まず、Javaの8つの画期的な言語機能(クロージャ、ラムダ、等)は、プログラミングコミュニティによってまだ活発に議論されています。 2019年時点でまだウェブ上で流通しているStreamおよびOptional関連の質問の数を見てください。Baeldung自身によるこの12月のJava 8 Optional Guide Guideがこれです。
次に、Java 9によって承認された新しいモジュールシステム群は、開発者のコーディングを楽にするものではなく、より混乱させるものとなりました。そして、その後のJavaのバージョンで導入された機能はバージョンアップをするほど魅力的ではないものとなっています。
最後に大きな大混乱は、今年の1月以降に、Java SE 8のパブリックアップデートとその後の商用ライセンスが必要なこととなりました。そう、こうしてOracle JDKとOpenJDKの戦いの火蓋が切られたわけです。
これについては「Is Java Still Free?」で言及されています。
如何でしょうか。エンジニアであれば技術のトレンドや、安定的に使われる言語やツール等の状況を把握していることは重要です。そうした意味で、プログラム初学者は今後も安定的な需要が見込めるJava言語を覚えるのも良い選択し、Javaエンジニアにとってすぐに仕事がなくなるなんてことはありえません。
しかし、バージョンアップと共に変わるモダンスタイルなコーディングに慣れる必要があるのは間違いありません。次は、Javaの開発環境回りの状況も記事にしてみたいと思います。