Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

日はまた昇る「Javaアプレット」をもう一度

アプレットは過去の技術にあらず Javaアプレット再考

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/05/17 08:00

既に過去の技術となってしまったJavaアプレットを再評価し、Web 2.0時代のリッチクライアントの技術としての価値を再評価します。アプレットをFlashやAjax、間もなく登場するSilverlightなどに対抗する、高度なWebベースのプレゼンテーションを実現する技術として、選択肢に入れることはできないのでしょうか。本稿では、Webと組み合わせて利用するプレゼンテーション技術としてのJavaアプレットの可能性を、いくつかのサンプルコードを交えて紹介します。

目次

はじめに

 「Javaアプレットなんて、もう誰も使っていない。いまさら何を…」と思ってはいませんか。

 近年、Ajaxの発見によるJavaScriptの再評価は目覚ましいものがあります。コンピュータ言語学に詳しい技術者たちの間では、JavaScriptが高度なオブジェクト指向を備えている事実が知られていましたが、その能力を十分に活用した実装はほとんど見られませんでした。ところが、Ajaxが一般に周知されて以来、高度なJavaScriptライブラリも次々と登場し、多くの技術者がJavaScriptに再び注目しています。

 余談になりますがLispのような古い関数型言語もまた、ここ数年で実用的な言語として再評価されるなど、このほかにも過去の技術が再浮上する例はいくつもあります。

 本稿を書くきっかけとなったのは、こうしたAjaxブームの中で再浮上したJavaScriptを目の当たりにして、かつてインタラクティブなWebを実現する技術としてJavaScriptと同様に注目されたJavaアプレットの存在を思い出したからです。リッチクライアントを実現するモジュールとしては、Microsoftが近くリリースする予定のSilverlight(旧コードネーム WPF/E)や、Adobe Flash、そしてAjaxなどが考えられますが、もう1つの選択肢としてJavaアプレットの可能性があるのではないかと提案します。

 Javaアプレットは1995年以降、Javaブームと共に大きく注目された技術です。Javaアプレットは、OSに依存することなくどこでも実行可能なJavaプラットフォームの利点を生かし、ブラウザに仮想マシンを組み込んでブラウザ上でJavaアプリケーションを実行するというものでした。当時のWebは今よりも回線速度が遅く、相互運用技術も十分に確立されていませんでした。Javaアプレットはブラウザ上に自由に図形やイメージを描画することができ、ブラウザの内部でJavaプログラムを実行することができたため、テキストベースのWebから解放する救世主として喝さいを浴びました。

 しかし、その夢は長くは続きません。当時のコンピュータは現在よりも遅く、リソースは限られていました。Java仮想マシンの起動に非常に時間がかかり、Javaアプレットを組み込んでいるWebサイトは動作が重く敬遠されました。また、Javaアプレットはサンドボックスと呼ばれるセキュリティ空間内で実行されるため、ローカルファイルなどにアクセスすることができません。サービス指向アーキテクチャが確立されていない当時では、情報ソースが限定されるため限られた範囲の動きしかできなかったのです。

 こうして、徐々にJavaアプレットは支持を失い、代わってFlashが台頭しました。Flashアプリケーションは特別なプログラミングの技術がなくても、スクリプトを使って個人で簡単に開発することができ、Javaアプレットと比較しても軽量でリッチな動きのあるプレゼンテーションを実現することができます。また、アプレットがWebベースの図形処理ソフトやファミコン世代的なミニゲームを中心に広まったのもよくなかったかもしれません。Flashはプロのデザイナーや企業などにも採用される一方、アプレットはビジネス展開の研究が十分になされないままホビーストの間で終わってしまった傾向があります。

なぜJavaScriptは再浮上したのか

 こうした事情から、現在では一部で実用されている程度のJavaアプレットですが、本当にJavaアプレットは過去の技術でしょうか。Javaアプレットとは性質が異なりますが、似たような道をたどっていた言語にJavaScriptがあったと思います。JavaScriptもまた、ブラウザに組み込むことができるスクリプトとして注目された過去がありました。ところが、ある程度時間が経過するとアプレット同じ限界に突き当たりました。

 JavaScriptも限られたクライアント環境で動作するため、外部データとの入出力ができません。リソースが限られているため、あらかじめ用意された情報の範囲でしか振る舞うことができず、結果として簡単なミニゲームやユーザーとの対話が主な役目となりました。90年代後半から2000年前後位まで、JavaScriptはホビーストやデザイナのための簡易スクリプトという印象が強く、高度な機能を十分に活用されていませんでした。

 ところが、Ajaxの発見によって状況は一変します。XMLHttpRequestオブジェクトを用いた通信機能と、Document Object Model(DOM)による文書制御を駆使することで、クライアントアプリケーションに引けを取らない高度なWebアプリケーションを実装できることが注目されました。この発見の最大のポイントは、XMLHttpRequestオブジェクトがWebサーバーと通信し、データを送受信できる点です。

 また、JavaScriptが最初から持っていたHTMLとの親和性も重要です。JavaScriptはHTMLに組み込むことができ、多くのブラウザでサポートされています。取得した情報を、即座にブラウザ上に反映できるのも、大きな魅力となっているでしょう。

 まとめると、Ajaxの発見によるJavaScriptのブームには、次のような要因があると考えられます。

  • HTMLに組み込むことができる
  • URIからWebサーバーに問い合わせ、結果を取得できる
  • Document Object Modelによる文書の操作
  • クロスブラウザ・マルチプラットフォーム
  • 初心者でも、比較的簡単な言語構造
  • インストール作業が不要

 このリストとJavaアプレットを比較し、アプレットの可能性に迫りたいと思います。本稿ではJavaアプレットの基本的な開発やJavaのグラフィックス処理については触れません。詳細は、Sunのドキュメント内のアプレットSwingを参照してください。本稿は、Javaアプリケーションの開発経験者を対象とさせていただきます。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 赤坂 玲音(アカサカ レオン)

    平成13年度「全国高校生・専門学校生プログラミングコンテスト 高校生プログラミングの部」にて最優秀賞を受賞。 2005 年度~ Microsoft Most Variable Professional Visual Developer - Visual C++。 プログラミング入門サイト Wis...

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5