[95.12.31]

「ジャバ」かいつまみ

お正月休みに入り、TP530の設定も一段落したため、早速FAIに「ジャバ」情報をかいつまみにいってまいりました。ちょうどASCII1月号の「インサイド・シリコンバレー」にも関連の記事が載っていましたので、ここでは、その両者が入り交じった形になっています。

■「ジャバ」とはなにか

Java は Sun Microsystems 社が作った、インターネット・プログラミングのできるアーキテクチャ・ニュートラル言語です。

アーキテクチャ・ニュートラル、つまりアーキテクチャに中立であるというのは、特定のハードウェアやOS、ウィンドウシステムのインターフェイスに依存しないということです。

このアーキテクチャ・ニュートラルな性質により、もうすぐ「マルチプラットフォームでの標準開発言語環境」としての一般的な地位を獲得するかもしれないとのことですが、現時点ではあまり一般的になっていないせいか、インターネットの画面上に動画や音声を取り込んで賑やかにする機能ばかりが大きく扱われているようです。プログラミング言語である Java を、Java で書かれた WWW ブラウザ「Hot Java」と混同している人も多いと書かれています。

言語的には、表面上はCやC++のソースコードに似ています。

Java 言語そのものは、Sun のエンジニアであるジェームズ・ゴスリングが作り出したもので、元は Oak と呼ばれていました。これが、商標として登録できなかったために、Java という名前に変わったのですが、Java の FAQ によると「技術の真髄を彷彿させる名前をつけよう」ということで、熱く、かぐわしい香りの飲み物で多くのプログラマーが愛飲している「ジャワコーヒー」から名前をとって、Java と名付けられたそうです。

■どのようにアーキテクチャ・ニュートラルが実現されるか

現在の Java 言語処理系はバイトコードを介して実行する形態を採用しています。つまり Java 言語で書かれたソースコードをコンパイラにかけ、一旦バイトコード(マシンアーキテクチャーによらない擬似的な機械語)に変換し、その後 Java ランタイムインタープリタがそれを逐次的に実行するという方法をとっているわけです。

このバイトコードが、アーキテクチャ・ニュートラルであるため、Java のランタイムインタープリタが稼動するプラットフォームであれば、Java 言語で作成されたアプリケーションが共通的に実行できることになります。

  Java ソースコード    ...  C++ に似たプログラム言語
         ↓            ...  Java コンパイラでコンパイル
  Java バイトコード    ...  アーキテクチャ・ニュートラルなコード
         ↓            ...  ネットワークで、各コンピュータへ
  Java インタープリタ  ...  Java プログラムの実行
現在、スイッチを入れるとXサーバ・プログラムが起動して、X-window の端末として動作することのできる、X端末というハードウェアがありますが、近い将来には、スイッチを入れると Java のランタイムインタープリタだけが起動して、Java 端末になるようなハードウェアが出てくるものと思われます。これを称して、「OS不要」と言われることが多いのでしょう。実際には、Java のインタープリタを起動するOSが必要なわけですが...

さて、Java で作成されたプログラムのうち、グラフィック表示が伴うようなものを「アプレット(Applet)」と呼ぶようです。「アプレット」も、やはりコンパイルしてアーキテクチャ・ニュートラルなバイトコードに変換するわけですが、実行時には Java インタープリタではなく、アプレット・ビューワというプログラムを使用します。

ワードプロセッサや表計算、データベースなど、従来のどんなアプリケーションも、一つもしくは複数の Java アプレットとして作成することが可能です。

■Java の動作イメージ

さて、Java を利用するときにはネットワーク上を Java のバイトコードが行き来することになります。これは、今までのネットワークコンピューティングの在り方を大きく変えることになります。重要なのは、いわゆる「プログラムそのもの」が行き来することによって、ほとんどのコンピューティングパワーはクライアント側のものを利用することになり、サーバ側には必要なくなるということです。

従来のサーバ/クライアント型のプログラミングでは、ほとんどの仕事はサーバがこなし、クライアントはその結果を単にディスプレイすればよい程度であったことを考えると、Java の考え方は画期的なものです。

WWW を例にとって考えてみると、従来は、テキストとグラフィックスの情報をディスプレイして見せるのみであったのに対し、Java を利用したものだと、自由にデータを操作できるようになります。

つまり、簡単な計算式一つをとってみても、従来は、計算式そのものを示すという程度だったのにたいし、Java 利用の場合には、その計算プログラムそのものが自分のコンピュータ上にやってくることになります。入力データを与えると、その計算式にそった計算の答えが得られることになるわけです。

■その他のキーワード

ここまでは、Java のネットワークの機能を中心にご紹介してきましたが、その他にも「新しいオブジェクト指向言語」としての側面や、「マルチスレッドに対応した言語」としての側面などがあります。

さらに、Java には非常に精巧なセキュリティ機能もあり、インターネット上でのアプリケーションに適しています。このため、企業の重要なアプリケーションなども Java を利用して、web 上に作られるようになるかもしれません。

■Java に関する情報のありか

まず、FAIの「ジャバ」に関する記述ですが、これはFAI(人工知能フォーラム)の7番会議室「Lisp/Prolog/Smalltalkなどの言語と実践(4)」の#244から始まるコメントリンクで、主としてFAIのシスオペの村上 雅章さん(SDI00556)によって、ミニ講座形式で展開されているものです。こちらでは、プログラムの書き方や、クラス構成などについても言及されているため、Java についてかなり詳しく知ることができます。現時点では、#253から始まる番外編とも合わせて85発言がアップされています。

Java に関する WWW は、http://java.sun.com にあるそうです。(今日この情報に気がついた私は、自宅ではインターネットできないため、内容は見てみていません。年明けにでも会社で見てみようと思います。)

書籍としては、同会議室の#359で、工学図書株式会社の「インターネットをより楽しくするHotJava入門」(中山茂著 ISBN 4-7692-0351-9 C3058 2900円)という書籍が紹介されています。

Java は、現在のところ WindowsNT、Windows95、Solaris が動いているコンピュータで動作可能で、次のところから FTP でとってくることができます。(NIFTY の FTP サービスでもダウンロード可能)

WinNT,Win95版入手先= ftp://java.sun.com/pub/JDK-beta-win32-x86.exe
Solaris版入手先= ftp://java.sun.com/pub/JDK-beta-solaris2-sparc.tar.Z

容量がかなりあるため、ダウンロードには時間がかかるそうです。なお、JDK というのは、 Java 開発環境(Java Developer's Kit)の略です。

以上、概略をかいつまんでみましたが、私自身が、Java に精通しているわけでもなんでもなく、単なる受け売りですので、間違っている点があればご指摘ください。


[Home] [Index] [覚書] [知研] [居酒] [徒然]