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のバージョンに移行するのでしょうか。


出典:Baeldung e-learning

調査の結果、驚くべきことに、調査に参加した開発者の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の開発環境回りの状況も記事にしてみたいと思います。

written by Takaomi Murasaki promari.png

Related posts:

【Column】24 Programming Languages That Pay Top Salaries: Scala and More
【Kotlin】MockKはKotlin独自の言語仕様をほぼ網羅しているモックライブラリ
【ニュース】STEM教育に最適!直感的に組み立てるだけで200種類以上のアクションが楽しめるプログラミングロボット「Clicbot」
【特集記事】ITエンジニアに必要な基礎スキル6つ|おすすめの勉強法を紹介!
【Kotlin】Unit Testing Firebase with Kotlin
【Analytics】Native Analytics on Apache Cassandra with Knowi: Tutorial
【Column】99% of Successful Software Engineers Practice These 10 Habits and Skills
【Swift】7 Awesome Open Source SwiftUI Projects to Inspire You (Part 2)
【Swift】7 Awesome Open Source SwiftUI Projects To Inspire You
【機械学習】Machine Learning: Google Colab- Why, When and How to Use it
【Column】The Future of Code Is in Your Browser
【Firebase】Top 3 open-source Firebase alternatives for 2020
【Docker】TIME TO SAY BYE BYE DOCKER !!! Era of Docker is over...
【JavaScript】The webpack plugin I can't live without
【特集記事】プログラミングスクールで「飛躍成長」する方法論【失敗を極力回避】
【特集記事】プログラミング初心者が知っておきたいサイト
【JavaScript】6 Reasons Why You Should Learn JavaScript
【Node.js】Node.jsでサーバーサイドJavascriptに挑戦
【Flutter】初めてのアプリを公開するまでに参考にしたサイト一覧
【Flutter】社内でFlutterのハンズオンを行ったので、資料を公開します
【Kotlin】Sequences vs Iterable in Kotlin
【Python】35 Questions To Test Your Knowledge of Python Sets
【Azure】How To Host an Angular Static Website on Azure
【Python】The Python Standard Library — modules you should know as a data scientist
【AWS】Getting started with Amazon MQ
【React】How to Deploy Your Static Sites for Free
【Column】Productivity Tips For Programmers
【React】How to write tests for React in 2020
【Column】How Remote Work Will Impact the Management of Employee Experience
【Column】Why Remote Work Is So Hard—and How It Can Be Fixed