WhaTap Labs(https://www.whatap.io)はITサービスのパフォーマンスを分析するため、顧客の開発言語とバージョンに敏感です。特に、Javaは、エンタープライズビジネスで最も使用され、バージョンによって分析できるデータの範囲が異なるため、開発および営業会議でよく言及される言語です。ところでJavaはバージョンも多様ですが、開発者やビジネス担当者が呼ぶバージョンの名称が異なるまでします。 理由は、Javaの製品バージョンと開発者バージョンのルールが異なるためです。
それで、Javaのバージョンルールがどのように作成されたのか、そしてなぜ開発者バージョンと製品バージョンが異なるのか、そしてJavaのバージョン固有の主な機能とバージョンが出てきた当時のIT状況まで話しましょう。
Javaは現在Webの言語ですが、最初からWebサービス用に作成された言語ではありません。家電市場の成長を見込んだグリーン(Green)チームが家電製品に入るさまざまなプロセスで動作するプロセス独立言語を作る過程で、Javaは生まれました。
ワークステーションのコンピュータ市場をリードするSun Microsystemsは、将来の市場主導権を獲得するために専門家で構成されたグリーンプロジェクト(Green Project)を作ります。これには、Patrick Naughton、Mike Sheridan、James Goslingが含まれていました。
1991年、プロセスに独立した言語を作り始めます。
グリーンプロジェクトに参加した人たちは、一度集まって何をするのか悩んでおり、市場が増え続けている家電製品に使われるプロセスに独立した言語の必要性を認識します。それで、スマートな家電製品を配信プラットフォームに選び、James GoslingはOakという新しい言語を開発し始めます。
グリーンチームは、プロセスに依存しない言語の可能性を示すことができる双方向ポータブルエンターテイメントデバイスであるStar7を作成します。当時、ケーブル会社はこのような先進的な技術には全く関心がなかったが、20年が過ぎてタッチベースのデバイスが人気を得たことを考えるとStar7はあまりにも速い技術でした。Star7には、Green OS、Oakプログラミング言語、Tool Kit、ライブラリ、およびハードウェアが統合されていました。Javaの前身であるOakは、James GoslingがStar7用に作成したプロセス独立言語でした。Star7 YouTubeのデモ動画リンクをご紹介します。小部屋で撮ったJames GoslingのStar7デモ映像です。James Goslingの顔が大きすぎて負担になりますが、ぜひご覧ください。
グリーンチームは、スマート家電製品市場が思ったより誇張されたと判断することになります。そしてグリーンチームは双方向テレビに入るSet-Top Box(STB)オペレーティングシステムに提案を受け、スマート家電製品市場からSet-Top Boxオペレーティングシステム市場に素早く移行しますが、市場参入に失敗します。Star7どうして…
グリーンチームは、Set-Top Boxソフトウェアで使用する言語の特徴である小型でプラットフォームに依存せず、安定したコードが初期Webの要件でも必要であることがわかります。グリーンチームはWebベースの3番目のプロジェクトを進行し、Patric Naugtonは週末に得たインスピレーションに基づいて「WebRunner」というプロトタイプブラウザを作成します。
Javaの製品名は、Java Standard Editionを基準にご紹介します。オラクルで発売された当時の製品名を変更して使用していますが、混乱を減らすためにオラクルが現在使用している名前を基準にして説明させていただきます。
商標の問題により、OakはJavaに名前が変更されます。Java 1.0a2 は、HotJava ブラウザとともに SunWorld カンファレンスで発表されます。SunWorld会議は、NetscapeブラウザにJavaサポートが含まれると発表します。
Javaの最初のバージョンが発表されます。最初の安定化バージョンはJDK 1.0.2であり、これをJava 1と呼びます。
1996年に最初のJavaOneイベントに6,000人を超える開発者が参加します。出てから1年も経たない言語を中心に、まったく新しい市場が開かれるようになります。このイベントには、Javaの製品とサービスを表示する160を超えるビジネスが参加しました。
Java Standard Edition 名称は、発表時には使用されませんでした。 Java Development Kit 1.1として発表されました。Java Development Kit 1.1(JDK 1.1)は、3週間に220,000回以上ダウンロードされます。Javaは、約40万人の開発者が使用する世界で2番目に多い言語に成長しています。1997年のJavaOneイベントには10,000人を超える開発者が参加し、Javaのセキュリティと互換性、そして将来のデバイスについて話し合います。
主な機能
コードネームがPlaygroundである、Java Standard Editionの発表時の名前はJava 2 Standard Edition 1.2です。製品の変更が大きすぎるため、Java 2に再ブランド化されました。Java 2 Standard Edition Software Development Kitの略語はJava2SDKと呼ばれる必要がありますが、JavaコミュニティではまだJDK 1.2と呼ばれます。JDK 1.2以降、Javaの製品はStandard / Enterprise / Microに分けられます。
コードネームがKestrelである、Java Standard Edition 1.3の元の製品名はJava 2 Standard Edition 1.3です。
JavaOne開発者会議で、Appleの共同創設者であるSteve JobsとSunの会長兼CEOであるScott McNealyは、標準のMac OXオペレーティングシステムと共にJava 2 Standard Editionをバンドルすることを発表しました。
コードネームがMerlinである、Java Standard Edition (J2SE) 1.4 が発表されます。発表時の公式名称はJava 2 Platform, Standard Edition 1.4です。Java SE 1.4 は、現代でもよく使われていることが見られます。国内公共機関にインストールされている多くのJavaプラットフォームの中には、まだJava Standard Edition 1.4がベースである場合があります。Java 2 Standard Edition 1.4から、JCP(Java Community Process)によってオープンソースで管理されています。
製品名は以下の通りです。
コマンドラインインターフェイスを使用してバージョンを問い合わせると、次のようになります。
コードネームのTigerがリリースされます。「Java 2」が「Java」に変更されました。そして、1.5ではなく5.0でバージョンが発表され、現在の名前と同じルールであるJava Platform、Standard Edition 5.0として発表されます。
JavaOne開発者会議での大きな議論は、Javaがオープンソースであるかどうかでした。Sunは正式にJavaベースのプロジェクトがJava仕様と互換性があると認定される必要がありますが、オープンソースの支持者はJavaがより自由な形式で提供されることを望みました。James Goslingは、Javaテクノロジのオープンソース実装を複数許可すると、Unixとの非互換性をもたらす可能性があると反対しました。
WhaTapモニタリングの重要な機能であるActive Stackは、Java SE 5バージョンからサポートされています。
製品名は以下の通りです。
コマンドラインインターフェイスを使用してバージョンを問い合わせると、次のようになります。
主な機能
コードネームのMustangがリリースされます。製品名はJava Platform, Standard Edition 6 (Java SE 6)として発表されました。
2007年、SunはGPLに従ってJavaクラスライブラリの完全なソースコードをリリースします。(Sunのライセンスが付与されたコンポーネントは除外された。)2007年にiPhoneが登場し、これはOakが挿入されたStar7デモから15年ぶりのことでした。
2008年、Sunは2年ごとに発表した新しいバージョンのJavaを発表しません。2009年のJavaOne開発者会議のオープニングセッションで、OracleのSunの買収発表が行われます。2010年になると、JCPはJava 7とJava 8のロードマップを承認します。
製品名は以下の通りです。
コマンドラインインターフェイスを使用してバージョンを問い合わせると、次のようになります。
JDK 1.0からJDK 6まで2年ごとにアップデートされたが、JDK 7は5年ぶりにアップデートされました。JDK 7のコードネームはDolphinです。
製品名は以下の通りです。
コマンドラインインターフェイスを使用してバージョンを問い合わせると、次のようになります。
JDK 7が出てくるまで、Sun社はOracleに買収されるなど、Javaはいろいろな浮き沈みを経験しました。更新が遅すぎると、Oracleは一部の仕様を収集して更新を行うことにしました。結局、JDK 1.7にはあまり期待していたLambdaやJigsawのような機能は入っていません。
オラクルのJavaグループの副社長である「Georges Saab」は、JDK 6以降7が出てくる期間が長すぎたことが、Javaの歴史で最も失望したことだったと明らかにしました。
「JDK 6以降は非常に困難な期間がありました。Java 7とそれ以降になるまでかなり長い時間がかかりました。 次のメジャーリリースが出るまでに時間がかかりすぎたという面でがっかりしていましたが、結局それは今のOpenJDKコミュニティが形成され、Java 7と8が出てきたプロセスの一部でした.」
機能の追加
2011年JDK 1.7が登場して以来、3年が更新に3年かかりました。しかし、1.7で実装できなかった多くの変更が1.8に含まれます。
変更された機能
現在、Java FXは消えたリッチインターネット技術になりました。
JavaOneは、Oracle JDKのリリースサイクルを6ヶ月単位にすると宣言します。9バージョンと10バージョンはnon-LTSでリリースされたため、6ヶ月の無償アップデート後にパッチが行われました。
変更された機能
2018年、オラクルが新しいバージョンのリリースサイクルを進め、有償パッチに関する問題が発生します。すでにほとんどの開発者はJava Standard Edition 8バージョンに満足しており、使用していますが、時間が経つにつれて最終的に新しいバージョンのJavaを使用します。それから、Java陣営の開発者がどこにいるのか、まだ誰も知りません。
Javaは本当に長く発展してきた汎用言語です。その長い間、Javaは自分自身を発展させ、現在まで来ることができました。その過程の中には膨大な悩みが隠れており、まさにバージョンを決める単純なことでも難しい決定があったと思います。私たちもいつか長い時間発展させなければならないサービスやオープンソースを作ることになる時があります。その時になるとJavaの歴史を手本にして、よりスッキリと素敵なビジネスを作っていってほしいです。