WisdomSoft - for your serial experiences.

1.3 プログラミング言語Java

Java の成り立ちと歴史について説明します。

1.3.1 Javaの誕生と歴史

Java 言語は、今となっては世界中の開発者が利用する国際的なプログラミング言語として認識されていますが、開発当初は家電製品の組み込みアプリケーション用の言語として設計されました。

Java 言語の開発には James Gosling 氏を筆頭に、BSD 版 UNIX の開発で有名な Bill Joy 氏なども参加しています。Sun Microsystems 社と Bill Joy という人物の関係から見て、Java がネットワークに強く、サーバーサイドプログラミングの分野でシェアを伸ばしていることも納得できます。

当時、家電製品市場のアプリケーション開発のために、プラットフォームに依存しない、信頼性の高い開発システムが必要であると考えられていました。1991年、James Gosling はこれを実現するために、プラットフォームに依存せず、より簡易で生産性の高いプログラミング言語 Oak (オーク)を開発しました。この Oak 言語が後の Java 言語です。

しかし、Oak はなかなか成功を見ることなく、マネジメント・サイドで失敗を繰り返しました。そこで、製品名を Java と改名し、キラーアプリケーションとして Java で開発されたブラウザ HotJava を公開し、1995年から世界に発信されたのです。このときから、世界はインターネットの時代に突入し、インターネットを中心に Java は世界に広がり、熱狂的に支持されるようになったのです。Java の開発環境 JDK (Java Development Kit) は Sun Microsystems の Web サイトから無償でダウンロードすることができ、誰もが自由に使うことができます。これも Java が広く支持された理由でしょう。

最初の JDK 1.0 はアプレットなどを中心に、クライアント側のネットワーク関連ソフトウェアや、小規模な GUI プログラミング、コマンドラインで利用する変換プログラムや、圧縮、暗号などの研究プログラムなどに利用することができました。しかし、この当時は完成度が不十分で、標準ライブラリが提供する機能も貧弱なものでした。多くの開発者たちが Java の可能性に気づいていたものの、実用するには二の足を踏んでいた時代です。

その後、サーブレットや JDBC と呼ばれる API の普及によって、サーバー側のネットワーク関連ソフトウェアやデータベース関連ソフトウェアなどが注目を集め、ビジネスの世界で大きな役割を果たすようになります。認証・承認、暗号化などを備える Java の堅実なセキュリティ・システムなども評価されています。また、国際化プログラムを得意としている点でも、ビジネスの世界で支持される理由の 1 つでしょう。

JDK 1.2 からは Swing と呼ばれる GUI (Graphical User Interface)コンポーネントが登場し、再びクライアント側のソフトウェア開発で注目されるようになります。Java の動作が遅いことから、一般ユーザーを対象とするソフトウェア市場では避けられていましたが、コンピュータの高速化と Java 技術の向上によって十分に採用できる範囲になったのです。このころは、携帯コンピュータや携帯電話も発達し、これらに実装するアプリケーションとしても Java が流行りました。

そして、Java 1.3、Java 1.4 のリリースによって、近年ではついにマルチメディアの分野でも Java が実用可能な範囲になってきました。これらでは、XML、サウンド、イメージなどの高度な入出力をサポートする API が新たに実装されたため、今後はゲーム開発、音楽編集、動画関連ソフトウェアなどでも Java が利用されるようになるでしょう。

現在も、Java は十分に安定した環境にあるとは言えません。改良と拡張を繰り返して、Java は進化し続けています。その背景には、設計者である James Gosling がこの世界的規模の Java ブームを予見できなかったことと、Microsoft 社による対 Java 工作活動による混乱期などがあります(本書執筆時点でも Microsoft と Sun Microsystems は法廷で争っています)。今後も Java の動向を見守りながら学習を進めなければならないでしょう。

1.3.2 Javaを学ぶ

オブジェクト指向型言語である Java は、プログラムの流れではなく、部品としての役割を重視して目的のソフトウェアを構築していきます。しかし、オブジェクト指向プログラミングには高度な設計力が必要であり、設計力なしにソフトウェアを開発することは、高層ビルを設計図なしに建築するに等しい無謀な行為となります。

Java 言語のようなオブジェクト指向型の開発は、C 言語のような手続き型とは異なり、巨大なソリューションの小さな部品を独立して開発するという性質を持っています。オブジェクト指向が大規模な開発に適しているのはこのためですが、初心者には逆に複雑に感じてしまうところがあるのも事実です。そこで、最初のうちは、小さな部品を開発しながら Java の基本的な仕様とオブジェクト指向の概念を学習します。高層ビルを建てるならば多くの人手と設計図が必要ですが、犬小屋程度を作る時には、設計図は必ずしも必要というわけではありません。

設計論はオブジェクト指向についてある程度の知識がなければ進めないため、今は Java のプログラム方法だけを学ぶことが最適でしょう。逆に言えば、Java を学ぶことはオブジェクト指向を学ぶことにもつながるのです。今後、C++ や Microsoft .NET などを学ぶ時にも大いに役に立つことでしょう。