
実行スピードに挑戦する
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
|
||||||||||
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
