プログラミング言語マスターへの道


Java(2)

Javaでは充実したライブラリにより、コンピュータネットワークを活用するソフトウェアを、効率良く開発することができます。
Javaはその初期のバージョンから、TCP/IPのライブラリを備えていました。分散オブジェクト環境 (Java RMI, CORBA) のソフトウェアの開発も早い時期からできるようになっていました。
近年では、様々なネットワークプロトコルの高水準なライブラリが使えるようになっています。充実したネットワーク機能と次に述べるXML文書を扱う機能を有効に組み合わせることにより、これまでにない高度なシステムの構築ができる言語の一つです。

Javaのスレッド

Javaではスレッドを言語仕様で規定しており、マルチスレッドによる並行計算を、従来の言語と比べて簡単に実装することができます。並行計算は、複数の処理を同時に実行する処理形態です。またスレッドは、プロセスより小さく軽量な処理の単位となっています。

JavaとXML文書

XML文書を扱う機能も早期に実用化されました。XMLは、広く普及している構造化文書の技術です。近年では、XMLプロセサとXSLTプロセサがJava標準ライブラリに統合され提供されています。

Javaとセキュリティ

Javaはセキュリティを考慮して設計されていて、サンドボックスモデルに基づいたセキュリティ機構を備えています。セキュリティ機構を正しく実装したJava実行環境を適切に使うことで、遠隔のコンピュータ上にある実行コードを安全に実行することができるのです。

Javaの名称

Javaは名前空間の機構をもつ言語で、ライブラリおよびアプリケーションに含まれる多数のJavaのプログラム(クラスとインタフェース)は、パッケージという階層構造で管理することができます。JavaScript (ECMAScript) は、Javaとは直接の関係はありませんが、Javaと似た言語名称と構文を持っています。表記はJのみが大文字の「Java」が正しく、「JAVA」は正式な表記ではありません。

歴史

Javaプラットフォームおよびプログラミング言語Javaは、1990年12月にサン・マイクロシステムズが1つの内部プロジェクトを立ち上げたことから始まりました。この内部プロジェクトでは、C++/C の代替となるプログラミング言語を開発しました。この言語は、プロジェクトで Greenオペレーティングシステム (Green OS) と共に、同OSの標準言語として開発されました。この言語は、1992年頃プロジェクト内では Oak と呼ばれていましたが、後に Java の呼称に変更されることになります。呼称変更の理由は、Oakは既に別の会社が商標として使っていたからです。

パトリック・ノートンって?

1990年頃、サンの技術者パトリック・ノートンは、自社のプログラミング言語 C++ とCの API(アプリケーションプログラミングインタフェース)と開発ツールに不満を募らせていました。その頃、情報技術の世界でNeXTが開発した技術が注目を浴びていたことがきっかけとなって、ノートンはサンで新技術の仕事をすることになったのです。

ステルスプロジェクト(1)

NeXTが開発したNeXTワークステーションとNEXTSTEPオペレーティングシステムでは、公式開発言語としてオブジェクト指向プログラミング言語 Objective-C を採用していました。こうした経緯のなかで「ステルスプロジェクト」が始まりました。ステルスプロジェクトには、始まってすぐにジェームズ・ゴスリンとマイク・シェルダンが参加し、プロジェクトの名称は「グリーンプロジェクト」に変更されました。プロジェクトには他の技術者たちも参加し、彼らはアメリカ合衆国カリフォルニア州メンローパーク市サンドヒルロードの道沿いにある小さなオフィスで作業を始めました。

プロジェクトの目的

プロジェクトの目的は、次世代の家電製品のための新しいプログラミング技術を開発することでした。サンはこの分野が重要な市場になると予測していたのです。プロジェクトチームでは当初はプログラミング言語としてオブジェクト指向プログラミング言語である C++ を採用することを検討していましたが、いくつかの理由から C++ は却下されました。彼らの目的は、家電製品すなわち組み込みシステムの技術を開発することでした。組み込みシステムでは、利用できるコンピュータ資源が少ないという制約があります。彼らは C++ ではコンピュータ資源を食いすぎると判断したのです。また C++ は複雑なプログラミング言語であり、C++ を使うプログラマは注意していても間違いを犯しがちといわれています。

ステルスプロジェクト(2)

C++ にはガベージコレクションの機能がありません。ガベージコレクションが無いということは、プログラマが自分でシステムのメモリを管理しなければならないことを意味します。プログラマが自分でシステムのメモリを管理することは、冒険的で間違いやすい作業です。プロジェクトチームは、いくつかの重要な機能について C++ の移植性が乏しいことも問題であると考えました。このプロジェクトでの重要な機能とは、セキュリティおよび分散コンピューティング、マルチスレッドであり、これらの機能が、プラットフォームに依存せずに使える必要がありました。このような事情で、彼らはあらゆる機器に容易に移植できるプラットフォームが必要であると認識するようになったのです。

ステルスプロジェクト(3)

プロジェクトチームは残業までして作業を続け、1992年の夏までに新しいプラットフォームを、Green OS、Oak言語、ライブラリ、ハードウェアによって部分的なデモンストレーションができるようになりました。1992年9月3日の最初のデモンストレーションでは、チームは Star7という携帯情報端末機器を開発することに力点をおいていました。
この機器の名称の由来は、電話機能が *7 とボタンを押すことで有効になることによります。この機器は、グラフィカルなインタフェースを備え、"Duke" という名前の知的な仮想代理人が利用者を支援しました。
同年11月、サンはグリーンプロジェクトを分離して完全子会社のFirstPerson, Incを設立しました。それに伴ってチームはパロアルトに引っ越ししました。FirstPersonチームは、高度にインタラクティブな機器に関心を持っていたのです。そんな時タイム・ワーナーがケーブルテレビのセットトップボックスのRFP (Request For Proposal) を公表していました。そこでFirstPersonチームは自分たちの目標を変更し、タイム・ワーナーの RFP に応じてセットトップボックスの提案を提出しました。しかし、FirstPersonは入札でシリコングラフィックス (SGI) に負けてしまいました。その後に3DO社のセットトップボックスの案件もありましたが、契約には至りませんでした。FirstPersonはテレビ業界では利益を出すことができず、サンはFirstPersonを解散してチームを自社に戻しました。