実行スピードに挑戦する
Javaアーキテクチャの変遷をたどる


塩野誠
日本ヒューレット・パッカード
2003/12/11


Javaの歴史は、Javaの実行環境であるJava VMの実行スピードへの挑戦の歴史だったといっても過言ではない。速く実行するためのJava VMのアーキテクチャの変遷をたどることで、Java VMへの理解をより深めることができる。(編集局)

Javaの歴史

 Javaは、1995年5月23日に開催された「Sun World Expo」のデベロッパーカンファレンスで公表された。「Java誕生のページ」によれば、この日がJavaの誕生日であるとされている。サン・マイクロシステムズがいうのだから間違いないが、もともとJavaの前身はOakという言語である。Oakは1990年12月にスタートしたGreen Projectの一環として開発された言語である。Javaが1995年に生まれたなら、Oakが誕生した1990年にはすでに受胎していたことになる。私には、Green Projectのおなかの中で、日の目を見るべく温められていたという印象がある。

 Javaフリークの皆さんにはおなじみのマスコット、“Duke”も、このGreen Projectの“重要な副産物”として、Green Projectのホームページに掲載されている。

 ところでOakは、James Gosling氏がGreen Projectで家電製品への組み込み用の言語として開発したが、コストリダクションの厳しい家電業界において、コスト増を招くという理由であまり受け入れられなかったといわれている。実際Green Projectの主力な成果物である“*7”(StarSeven:大型PDAとでもいうべきか)も日の目を見ていない。ただ、ビジネス的な諸事情が絡んでいただけに、単に運がなかったという見方もあるだろう。しかし、あの大きさ、重さで、片手に持って操作できるのは体格の大きなアメリカ人だけだと思う。

 余談はさておき、言語としてのOakの系譜をあえて表現するなら父親はC++、母親はSmalltalk(インタプリタという観点で)といった、オブジェクト指向言語の正統種と位置付けている人もいる。(父親がSmalltalkで母親がC++だろうか? いや、父親はC++で母親はGreen Projectだ!)。Gosling氏によれば、Oakはlispやそのほかの言語にも影響されているそうだ。初期のOakのマニュアルは、Green Projectのページに行けばPostScript(懐かしい!)のVer 0.2形式のものがダウンロードできる。

 1995年5月に誕生したJavaは、1996年に開催された「JavaOne」において、80社以上の協賛企業、5000人以上の参加者を得て大盛況を収める。それはオープンソース、プラットフォーム非依存、ポインタを廃した開発者に優しいオブジェクト言語仕様が、Webの開発環境にぴったりだったことを象徴した大ブレークである。

 歴史的に見れば、Javaの当初のポリシーは、Gosling氏のホームページにあるJava誕生当時の「original Java White Paper」に記載されている。そして、このポリシーは、現在に至っても生きている。それは以下のようなものだ(編集注:現在、Gosling氏のホームページは閉鎖されている。original Java White Paperは現在次のURLで参照することができる「Focus on Java:on Overview, original Java White Paper by James Gosling」)。

(1)Simple
  プログラマにとって単純で分かりやすい。
(2)Object-Oriented
  オブジェクト指向である。
(3)Distributed
  ネットワーク透過的で分散オブジェクトである。
(4)Robust
  堅牢である。
(5)Secure
  保護されている。
(6)Architecture Neutral
  マシン環境に依存しない。
(7)Portable
  データタイプが統一されている。
(8)Interpreted
  Javaのバイトコードを翻訳しながら実行する。
(9)High performance
  メモリ効率、動作速度で高性能である。
(10)Multithreaded
  マルチスレッドである。
(11)Dynamic
  実行時に動的にクラスをロードする。

 上記の11項目は、ホワイトペーパーに番号なしで書かれている。ここで書き添えた日本語は筆者が勝手に解釈して付け足したもので、詳しくはオリジナルを見てほしい。以下、この“偉大なるポリシー”の項目に沿って、次項以降でJava VMのアーキテクチャの変遷をご説明しよう。

1/2

 INDEX

実行スピードに挑戦するJavaアーキテクチャの変遷をたどる
Page1
Javaの歴史
  Page2
Simple、Object-oriented、Distribute
Robust、Secure、Archtecture Nutral、Portable
Interpreted
High Performance
JITの登場
ガーベージコレクタ(GC)の改善
HotSpotの登場
Multithreaded(マルチスレッド)
Dynamic


Java Solution全記事一覧

 



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間