Java: 開発ツールのバージョン履歴

ソフトウェア開発では様々なツールを使用する。Java も例外ではなく、基本となる JDK に始まり、Eclipse のような統合開発環境や、Maven などのビルドツールが広く利用されている。Git のような特定のプログラミング言語に依存しないツールもある。
1995 年に Java の発表とα版リリースが行われてから 20 年以上が経過し、昔は使われていたが今では消えてしまったツールもある。そんな中で、いわば「王道」として生き残り長く使われているツールについて、登場してからバージョンが上がってきた様子を図にしてみた。


個人的な都合で、ツールと言いつつ API やライブラリも混じっている。
一方で、2016 年時点で普及しているものであっても、この図に含めていないものはかなりある。かなり保守的な選び方をしているためで、おおよその目安として、Pleiades All in One の範囲内に留めている。
また、OSS として最初に公開された時点ではバージョンが 1.0 未満というのはよくある話だが、この図では 1.0 以降のみ線を引いている。例えば Maven は最初に公開されてから 1.0 まで 2 年くらいかかっているが、この図ではその部分の線を省略している。

以下、それぞれについて簡単に。

Java

1995 に Web ブラウザ関連の新技術として登場してから、20 年以上が経過した。
図に示したのは Java の標準開発ツールである JDK (Java Development kit) のバージョン履歴。最新版は 8 で、7 までのバージョンはすべてサポートが切れている。来年には 9 のリリースが予定されている。

Servlet API

これはツールではなく、Java で Web アプリを作るための API。元々、アプリを作りやすいように作られた API というよりは、コンテナ (Tomcat など) とアプリの間のやり取りの仕方を決めたものなので、Servlet API を直接使うのではなく何かしらのフレームワークを介して利用することが多い。
およそ 2000 年〜2010 年くらいの期間、Servlet API 2.x と Tomcat の組み合わせが広く利用されていた。Servlet API 3.0

Tomcat

Servlet コンテナ。元は Sun Microsystems が開発したもので、その後 Apache Software Foundation に寄贈された。最新版は 8.5 で、次の 9.0 はα版が開発中。
コンテナをセットアップして、そこに war 形式のアプリを配備するという標準的な使い方が長く使われているが、昨今の流行に合わせてアプリ自体に Tomcat を組み込む方式も多く見られるようになった。

Spring

ツールではなく、アプリケーション開発に使用するフレームワーク。図にはその中核に当たる Spring Framework のバージョンを示した。
コアの機能は DI/AOP だが、その上で使うための各種ライブラリが多数作られていて、「Spring Framework 上で Web アプリを作る」「Spring Framework 上でメールを送信する」「Spring Framework 上で NoSQL DB のデータを操作する」などの諸々を実装するためのクラス群があらかじめ用意されている。
競合する形で登場した Web 開発専用フレームワークである Dropwizard に対抗して、Spring Boot という追加のフレームワークも登場している。これは、いわば「Spring Framework をうまく使うためのフレームワーク」で、最近の流行に合わせたアプリをより短時間で楽に開発できるようにするためのもの。
Spring Framework 本体の最新バージョンは 4.3 で、次の 5.0 は 2017 年の JDK9 に合わせてリリースすることが予定されている。

Eclipse

Eclipse Foundation が開発している統合開発環境 (IDE)。元は IBM が開発していた製品を OSS プロジェクトとして公開した。
3.0 以降は毎年 6 月に新バージョンがリリースされており、今年も最新版となる 4.6 がリリース済み。図では、すべてのバージョンに番号を書くと読みづらくなったので、途中のバージョンは表記を省略した。
3.0 から 3.8 まではバージョン番号が毎年 0.1 ずつ上がっていき、3.8 と同じタイミングで、4.x 系の最初の一般向けリリースである 4.2 が公開された。4.0 と 4.1 は Eclipse そのものの開発に関係している人たち向けで、一般の利用者向けとしては公開されていない。
来年の 6 月には次の 4.7 がリリースされる予定。

Git

バージョン管理システム
Linux の主要開発者である Linus Torvalds さんが最初に作り、現在はGoogleの濱野純さんが引き継いでいる。最新バージョンは 2.9。
Eclipse から使用する場合、Java へ移植して Eclipse に組み込んだもの (JGit、EGit) を使用するため、厳密には Git 2.9 を使うわけではないが、Git 自体の成熟度合いを示すため、あえて図には Git 本家のバージョンを記載した。

Checkstyle

コーディング規約に沿って書かれているかソースコードをチェックするツール。
今年 6 月に最新バージョンの 7.0 がリリースされた。

FindBugs

ソースコードコンパイルしてできる中間コード (.class ファイル) を検査して、実装の不具合や、今後不具合の元になりそうな箇所を見つけ出してくれる静的解析ツール。
最新版は 3.0.1。

Maven

プロジェクト管理機能を持つビルドツール。最新版は 3.3.9。
継続的統合 (CI) や継続的デリバリーといった概念が知られるにつれて、Eclipse のような統合開発環境を使う場合であっても Maven のようなツールと組み合わせる方法が広く普及している。

Jenkins

CI コンテナ。Sun Microsystems に在籍していた川口耕介さんが Hudson という名前で開発を始めたが、現在は Jenkins に「改称」している。
2016 年 4 月にバージョン 2.0 がリリースされた。