Javaは今、もっとも色々な場所で使われている言語だ。
携帯電話・スマートフォンのような小さなものから銀行の大型コンピュータ、DVDのプレイヤーやWebシステムまで、Javaでつくられるようになっている。
このページではそんなJavaの歴史をざっとなぞってみる。Javaプログラミングを勉強中の方、勉強をはじめようかと思っている方には参考になるだろう。
目次
Javaの開発がはじまる
1990年代に,アメリカでワークステーションと呼ばれるコンピュータ市場を独占した会社があった。Sun Microsystemsだ。
この「ワークステーション」という言葉、今ではあまり聞くことがない。科学計算や設計に用いられる高性能のコンピュータのことだ。1991年に,この会社の中でGreenという名前のプロジェクトとしてJavaの開発がスタートした。
C++からスタート
Greenプロジェクトグループは、当時の家電製品企業に最新のソフトウェアを全力で売り込もうとしていた。彼らのプロジェクトのゴールはそこだった。
家電にはどんどんソフトウェアが入っていっており、成長速度も速く、需要が多かったのだ。
1991年、James Gosling は,このプロジェクトのためにプログラミング言語としてC++を拡張することを考えたが,彼らの目標を実現するには不十分だった。
彼らの目指すべき地点は,ハードウエアに依存しない新しいソフトウエア開発プロセスの仕組みを生み出すことだったからだ。
家電製品に使われるプロセッサは技術の進歩ですぐに変更される。進化する度にプログラムを全部作り直すなんてことをしていたら参ってしまう。
こうして後にJavaとなるGreen OSとOakプログラミング言語の開発が始まった。
上で、「ソフトウエア開発プロセス」と書いたのは、Javaがプログラミング言語にとどまらず、プログラムを実行する環境までも含んでいるという意味だからだ。その環境には以下の3つのものが含まれる。
- オブジェクトを通したメモリアクセス:メモリへのユーザ・アクセスを制限する機能
- ガベージ・コレクション:メモリの確保と開放を自動的に管理する機能
- 仮想マシン:CPUやOSに依存しないでプログラムを実行する機能
これらは今のJavaでも引き続きのこっている概念だ。
最初のデモンストレーション
1992年から1993年にかけて、Greenプロジェクトチームは目標をStae7携帯情報端末の開発に置いた。現在のタブレットのような手に乗る対話型の端末だ。
これには、Green OS・Oak言語・ライブラリーが含まれていて、これまでにない画期的なものだった。
この時点で行われたデモンストレーションは、JavaがCPUやOSに依存しないプログラミング言語に秘められた潜在能力の片鱗をうかがわせていた。その後,ケーブルテレビのセットトップ・ボックスの開発に、このチームは力を注ぐようになる。
インターネット時代へ
大転換点
1994年、プロジェクトチームは家電製品への組み込みからインターネットの世界へと大きく目標を転換した。インターネットが登場したからだ。
世界中の人々が、ネットワークとブラウザからの双方向の情報によって結ばれるようになった。
人々は、新しいブラウザの登場を待っていた。技術者だったPatrick NaughtonとJonathan Payne はOak言語を使って、グラフやアニメーションを状況に応じてグラフィカルに表示させる画期的なブラウザ「WebRunner」を開発した。
名前がJavaに! 名前の由来は?
Oakという名称がこれまで使われてきたが、問題が発覚する。他の会社によって商標として使われていることが明らかになったのだ。
このため、「Java」という名前が採用された。
名前の由来は次のどちらかだと言われている。
- メンバーが集まっていたコーヒーショップにあったコーヒーから取った
- なんらかの英語の頭文字
前者の案が有力だろう。次の豆知識からもそれが伝わってくる。
Javaコンパイル後のデータのはじめの4バイトは16進記数法で「0xCAFEBABE」となっている
1995年のSunWorldで、JavaによるブラウザWebRunnerが、HotJavaという名で世界に公開された。
また、当時多くのユーザがいたブラウザNetscapeがJavaのサポートをアナウンスした。こうして,Javaはインターネット時代の幕開けとともに、世界のインターネット・ユーザーの注目を浴びるようになる。
Java 1.0 リリース
1996年、初めてのJavaOneカンファレンスが開催された。6千人の聴衆が最新のJavaテクノロジーについて学ぶためにこのカンファレンスに集まった。
さらに、この年最初の正式バージョンJava 1.0がリリースされる。世界中の開発者が、Javaのプログラミング環境をダウンロードして開発することが可能になった。その結果、Netscapeから始まったユーザの広がりが、Microsoft、Apple、IBMなど世界100社に及んだ。
広がるJavaの世界
3つのマーケットへ
1999年、Javaのプラットフォームのための構成が,ソフトウエア開発業者,サービス提供業者,デバイス製造業者の3つのマーケットために再構築された。
Java SE (Java Platform, Standard Edition)
このプラットフォームを活用すれば、デスクトップとサーバーだけでなく、今日要求される組み込みシステム上でも動作するJavaアプリケーションが開発できる。
機能豊かなユーザー・インタフェース、パフォーマンス、一度プログラムを書けばどこでも動かせる汎用性、移植性に加えて、不可欠なセキュリティも提供している。
Java EE (Java Platform, Enterprise Edition )
世界中に支店を持つ銀行や商社のような大企業の情報システムを動かすための様々な機能を持った低リスクのプラットフォームを提供している。
Java ME (Java Platform, Micro Edition)
携帯電話、携帯情報端末(PDA)、TVセットトップ・ボックス、プリンタなどの組込みデバイスやモバイル・デバイスの上で動くアプリケーションのためのプラットフォームだ。
止まることを許されない環境で、プログラムが安全に動くフレキシブルな環境を提供している。
ユーザの要求に柔軟に対応できるユーザー・インタフェース、セキュリティ、ネットワークのサポートを含んでいる。
増え続けるユーザ
2005年、Javaの開発者が450万人を超えた。Javaを搭載した機器は25億個、Javaが組み込まれたSmart Cardは10億枚生産された。
完全に最もスタンダードな言語としてみられるようになった。
Android, JavaFX発表
2007年、Googleがアプリケーション開発にJavaを採用したAndroidを発表した。もちろん、専用のJava仮想マシンも搭載している。
また、JavaOneカンファレンスで、JavaFXが発表された。Java FXは, アニメーションやマルチメディア再生を含むユーザー・インタフェースを開発するためのプラットフォームだ。当初は、Java SEとは独立していたが、現在ではJava SEに含まれる。
Oracleへの買収
2010年、Oracle社がSun Microsystems社を買収した年だ。この買収によりJavaの権利はすべてOracle社のものとなった。現在、JavaはこのOracle社のデータベース製品などと並ぶ主要な製品のひとつとなっている。
OracleがGoogleを訴えたことにより、「AndroidがJavaから離れるのでは?」という話も出ている。しかし、現実的には離れることはないだろう。ここまで築いたプラットフォームをすべて作り直すくらいなら、和解金を払う方を選ぶはずだ。
Apple社のSwiftという言語になるという噂話もあるが、もっとありえないだろう。
進化を続けるJava
Java 7
2013年、Java 7がリリースされた。このリリースにより、WebSocketによる双方向で高速な通信によりHTML5を使ったブラウザの開発を容易にする機能が提供された。また、広くWebアプリケーションで使われているJSON形式のデータを、シンプルに扱う機能も提供された。
Java 8
2014年、Java 8がリリースされた。新たに加えられた機能は、Lambdasのような関数型インタフェース、Streamを活用したパラレル・プロセッシング(並行処理)などもり沢山だ。特に、Big Dataの活用が進む情報時代に大量のデータをコンピュータにばらまいて、同時にパラレル・プロセッシング(並行処理)する技術は欠かせない。最新バージョンにはこうした時代のニーズに応える機能が組み込まれている。
出典
当記事は下記サイトを参考にした。原文が読みたければ、下記へどうぞ。
出典:
- http://www.oracle.com/technetwork/java/javase/overview/index.html
- http://www.oracle.com/technetwork/java/javaee/overview/index.html
- http://www.oracle.com/technetwork/java/embedded/javame/index.html,
- http://oracle.com.edgesuite.net/timeline/java/
まとめ
このページではJavaの歴史の流れについて、難しいことを除いてお伝えしてきた。
Javaは「Write once, run anywhere」という理念のもとつくられて来たため、その理念に沿って進化を続けている。今後もJavaが動く場所は増えていくだろう。
勉強にも適した言語なので、エンジニアの入り口としては最適だ。
「Write once, run anywhere」だけど...
いつもご愛読いただきありがとうございます。
ご指摘の箇所ですが、確かにおかしな部分がありましたので修正いたしました。
今後とも、ご愛読のほどよろしくお願いいたします。