Javaは25周年——ワインのように熟成?それとも牛乳のように劣化?
2020年5月22日
0 分で読めます1995年5月23日、Sun MicrosystemsがJavaをリリースしました。Javaは25周年を迎えます。これはお祝いしなければなりません!とはいえ、プログラミング言語にとって25年はかなり長いですよね。プログラミング言語としてのJava、そのエコシステム、コミュニティ、そして未来を見て、熟成したワインのようなのか、それとも牛乳のようなのか考えてみましょう。
要約:Javaには意見が分かれる点や、すべての人が受け入れられているとは限らない変更もあります。しかし、エコシステムは活気にあふれ、言語はカリフォルニア産の上質なカベルネ・ソーヴィニヨンのように、急速に進化し成熟しています。
James Gosling、Mike Sheridan、Patrick Naughtonは、1991年にJava言語プロジェクトを開始しました。1995年、Sun Microsystemsが最初のバージョンをリリースしました。James GoslingはC/C++風の構文で言語を設計したため、プログラマーはJavaにすぐ慣れることができました。この言語の目的は、特定のコード変更を加えることなく、あらゆる種類のシステムで実行できるようにすることでした。人気のあるすべてのプラットフォーム向けにランタイムをリリースしたことで、「一度書けば、どこでも動く(Write Once Run Anywhere)」というWORAの原則が生まれました。
25周年を迎えた今、Javaは古く、もはやJavaのような言語に居場所はないと言う批評家もいるかもしれません。しかし、よく見てみると、Javaはいまも最も人気のある言語の1つです。さらに、JavaScriptやPythonのような他の人気言語もほぼ同じくらいの歴史があります。JavaScriptは1995年に誕生し、Pythonの最初のバージョンは1990年にさかのぼります。
Javaのエコシステム
Javaは単なる言語ではありません。JVM(Java Virtual Machine)とそのエコシステムは、長年にわたり大きく進化してきました。JVM上で動作する言語も生まれ、Scala、Groovy、そして比較的新しいKotlinなどが人気を集めました。しかし、JVM report 2020を見ると、JVM上ではJava自体が依然として最も人気のある言語です。
最新リリースは、2020年3月17日に公開されたJava 14です。拡張されたswitch式、テキストブロック、分かりやすいNullPointerException、レコードなど、新しい言語機能が追加されています。Javaは進化していない、あるいはもう終わったと主張するのは、まったく正しくありません。実際、かつてないほど速いペースで進化しています。もしかすると、Java開発者が追いつけないほどの速さかもしれません。JVM 2020 reportによると、最新バージョンにアップグレードしない傾向が見られます。新しいリリースサイクルに開発者が追いついているかどうかにかかわらず、Javaは今も確かに健在です。
Javaのエコシステムは、JVMとその上で動く言語だけにとどまりません。2002年のMavenや2007年のGradleのようなパッケージマネージャーの登場により、Java言語でサードパーティ製のライブラリやフレームワークを取り込むのがずっと簡単になりました。Apache Commons、Eclipse Collectionsなど、何千もの有名なライブラリがエコシステムを大きく豊かにしています。QuarkusやSpring(Boot)のようなフレームワークは、アプリケーション開発全般を大幅に簡素化します。現在、エコシステムで最も広く使われているフレームワークはSpringであり、数多くのアプリケーションに不可欠な存在です。
最新の状態を保つ
Javaとそのエコシステムは大きく成長しています。言語にもサードパーティ製のライブラリやフレームワークにも、新機能や修正が次々と加わっています。言語を支える大規模なコミュニティや、さまざまなJDK(Java Development Kit)のディストリビューション、オープンソースライブラリのメンテナンスによって、エコシステムは急速に進化しています。現時点で開発者にとって最大の課題は、そのペースについていくことです。本番環境で古いJavaバージョンが使われ続けているだけでなく、2020年初頭の時点で64%が本番環境でJava 8を使い続けていました。古いライブラリやフレームワークのバージョンについても同じことが言えます。
古い依存関係を使い続けると、まず、システムに被害をもたらす既知の脆弱性にさらされます。Snykは、プロジェクトをスキャンして修正することで、その対策を支援します。さらに、アップグレードを先延ばしにするほど、新しいバージョンへの移行は難しくなります。更新しないままでいると技術的負債が生まれ、時間とともに膨らんでいきます。

まとめ
大規模で活発なコミュニティに支えられ、Javaは今も非常に活気のある言語であり、エコシステムです。すべての変更が歓迎されているわけではありませんが、Javaが今も急速に進化していることは明らかです。Javaディストリビューションやライブラリを新しいバージョンに更新することは、今も、そしてこれからも重要です。
つまり、Javaは今も元気に動き続けています。Javaには意見が分かれる点や、すべての人が受け入れられているとは限らない変更もあります。しかし、エコシステムは活気にあふれ、言語はカリフォルニア産の上質なカベルネ・ソーヴィニヨンのように、急速に進化し成熟しています。
Java、25周年おめでとう!
Snykでプロジェクトをスキャンして修正しましょう。
Capture the Flagを始めよう
オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。
