Revised: Mar./10th/2002; Since: Dec./28th/2001
1991 | James Gosling、オブジェクト指向言語 Oak 開発。 |
---|---|
1994 | Java ベースのウェブブラウザ WebRunner 開発。 |
1995. 05 | Oak、Java に改称。 WebRunner、HotJava に改称。 |
1995. 09 | Netscape 社、 SunMicrosystems 社とライセンス契約。 NetscapeNavigator2.0、 Java をサポート。 |
1995. 12 | Microsoft 社、 SunMicrosystems 社とライセンス契約。 |
1996. 02 | JDK 1.0 を公開 |
1997. 02 | JDK 1.1 を公開 |
1998. 12 | Java2 (JDK 1.2) を公開 |
2000. 05 | SDK 1.3 SE を公開 |
2002. 03 | SDK 1.4 SE を公開 |
(Sun Microsystems の公開している Java の歴史)
Java は Sun Microsystems が開発したオブジェクト指向の言語である。オブジェクト指向とは、従来の CPU の動作原理に従ったプログラミング言語である手続型言語に対して、現実のモノを使って作業するスタイルに則ったプログラミング・スタイルである。
オブジェクト指向の詳細については「Java とオブジェクト指向」に譲るが、 1970 年頃に同時多発的に考案されたものである。オブジェクト指向プログラミング (OOP: Object Oriented Programming) を確立した言語として、アラン・ケイ (1940-) が開発した "Smalltalk" (1972) が挙げられる。 "Smalltalk" は現在も "Squeak" として開発が継続中である。
Java 自体は 1995 年 "SunWorld Expo" で公開された。しかし、その開発履歴は "Oak" と名付けられた家電用の組み込みアプリケーションのための言語まで遡れる。
1991 年に発足した開発プロジェクト・チームは、 1992 年にインタラクティブな携帯テレビのデモを行ったという。ここで現在の Java のマスコットキャラクタである "Duke" も初お目見えだった。James Gosling によってこのデバイス (*7: star seven) 用に開発された言語が "Oak" であり、後の Java である。最初は C++ を使うつもりだったが、開発が困難であることから、より安全な言語として "Oak" が開発されたとのこと。当時はケーブルテレビを顧客として想定していたらしいが、製品化には至らなかった。
1993 年に Web ブラウザ "Mosaic" が登場し、インターネットが普及し始めてからは、そちらへ傾斜していく。ネットワーク上で利用されることを想定して設計された為に、異なるデバイス上での動作が目標となった。 Sun Microsystems は、 Mosaic のクローンであり、 Java (Oak) ベースのブラウザ "WebRunner" を開発(1994)した。
1995 年、 SunWorldExpo が開催され、ここで "WebRunner" は "HotJava" ブラウザと改称されて公開された。このとき Oak も Java と改められた (1995)。 Java (ジャワ珈琲)に改めたのは「親しみやすい名前」にしたとの事だが、商標の問題でもめたそうだ。 UNIX のスクリプト言語 AWK と発音がかぶったからだろうか?
"WebRunner" はそれまで静的だったウェブ・ブラウザで、インタラクティブで動的なコンテンツを実現した。当事としては画期的であり、そのインパクトのために当初は「ブラウザでアニメを実現する言語」として理解された。
その後、 Java の開発者向けソース・コードがフリーでインターネットに公開されて普及していく (1995)。最初に Netscape 社が対応し (1995)、続いて Microsoft もライセンス契約し Java VirtualMachine (JVM) を開発 (1996)。 MS I.E. は当時、他に先駆けて JIT (Just-In-Time) コンパイラを搭載し、動作速度を高めて Java の普及に貢献していた。
Microsoft の JVM はとても優秀で、一時期は Java に関するコンシューマ市場を席巻した感もあった。Java の IDE (統合開発環境)である "Microsoft Visual J++" なんかも精力的に開発されていた。この頃 (1997) はウェブ・コンテンツを Java で動的にすることが、将来像と思われていた感もある。しかし、 Sun Microsystems が Microsoft をライセンス違反で提訴 (1997.10) し、 Microsoft が JVM 開発から事実上手を引いてからはウェブ・コンテンツの世界ではあまり顧みられなくなったようだ。現在、ウェブ上で動的なコンテンツを作るには CGI か Flash が利用される。 Java アプレットは企業サイトのロジック部分などで、負荷分散やクライアントサイドソフトウェアのバージョン管理や配布問題を解決するために利用されている。
Java 開発者向け環境 Java Developpment Kit (JDK) は 1996 年 1.0, 1997 年 1.1 とバージョンアップを重ね、 1998 年には JDK 1.2 を Java2 Softwear Development Kit (J2SDK 1.2) として公開。 2000 年 1.3 を経て、2002 年 3 月現在の最新版は SDK 1.4 である。 SDK 1.3 から SDK 1.4 への変更では仕様の変更は少なく細部にとどまっている。 SDK 1.5 の開発が進められているが、次回のバージョンアップで言語仕様の変更は終了するとの事。
Sun Microsystems では抽象 Java プラットフォームを Java2 Platform, Standard Edition (J2SE) と呼び、その実装を Java2 SDK, Standard Edition と呼んでいる。「抽象プラットフォームを実装するのに J2SDK が必要」と解釈すれば良いだろう。
Java プラットフォームには "Standard Edition" (J2SE) の他に、 "Enterprise Edition" (J2EE), "Micro Edition" (J2ME) がある。
J2EE はサーバサイドの Java 開発環境。 J2SE の機能に加えて、 Enterprise JavaBeans (EJB)、Java Servlets、JavaServer Pages (JSP)、XML などの機能が追加されている。
J2ME は J2SE のサブセットのようなもの。携帯電話、 PDA、セットトップボックス などマシンリソースが貧弱なデバイス上で実装できる、組み込み系 Java 環境。例えば、 DoCoMo の携帯電話には J2ME をベースにした Java 環境が実装されている。必ずしも J2SE と完全に互換するわけではない。
ウェブ・コンテンツ用言語としては死んだ感のある Java だが、 企業 EC サイトのアプリケーションサーバのロジック部分、基幹システム連携のロジック部分の開発においては、デファクト・スタンダードの地位を築こうとしている。現在も C や COBOL が多く使われているようだが、所謂 Pure Java システム開発もトレンドになっている。 Web での言語は "Java + Oracle, IBM DB2 UDB" または "PHP + PostgreSQL" が標準的な組み合わせだろう。
また、 Java の携帯電話への実装は、「不必要」の謗りもある中で、それなりに認知されるようになった。他のアプライアンス(家電など)へも普及するものと思われる。