小山博史のJavaを楽しむ(12)
「Javaは遅い」から「Javaは楽しい」に至る歴史
株式会社ガリレオ
小山博史
2008/12/15
教育界、技術者コミュニティでJava言語の教育と啓蒙に長年携わってきた筆者が、独自の視点からJavaの面白さを掘り下げていく。(編集部)
■ 「Java SE 6u10」そして、「JavaFX 1.0」という事件
| 今回の主な内容 ・ Webブラウザアプリの出現に興奮した時代 ・ Java Webアプリ開発の主役はサーブレットへ ・ 開発ツールの実装で人気が出た Javaデスクトップアプリ ・ クライアントのバージョン管理が問題だ ・ 既存技術を見直すと、そこにチャンスがある ・ ドラッガブルアプレットを作ってみよう ・ Javaアプレット+REST=RIA? |
12月4日、サン・マイクロシステムズはJavaの最新デスクトップ・RIA技術JavaFXの正式版SDKをリリースしました(JavaFX SDK 1.0正式版をリリース、サン)。
JavaFXには、これまでのJavaデスクトップ技術のさまざまな要素が集約されているといってよいでしょう。最近リリースされたJava SE 6 Update 10(以下、Java SE 6u10)の機能も盛り込まれています。「HotJava」(後述)が登場した10年程前から「デスクトップアプリケーションの在り方が変わる」といわれていましたが、当時夢のように思えた世界が現実のものとなりそうです。
今回は、これからのデスクトップアプリケーションの在り方について、Webブラウザアプリケーションとして登場したJavaアプレットの話から、最近リリースされたJava SE 6u10の話までしながら、歴史を振り返りつつ考えてみましょう。
□ これは楽しい! ドラッガブルアプレット
まずは、Java SE 6u10の楽しい新機能「ドラッガブルアプレット」を実際に体験してみましょう。ドラッガブル(Webブラウザ外へドラッグできる)アプレットはJavaFX 1.0の機能にも組み込まれています。サンプルを試す前に、「Java SE Downloads」からJava SE 6u10以降(早くも、Java SE 6u11も出ています)のJREをインストールしておいてください。対応Webブラウザは、Internet Explorer(以下、IE) 6/7とFirefox 3のようですが、本稿ではIE 7を使います。
準備ができたら、こちらの「SimpleJApplet.html」をIE 7で開くと、セキュリティ関係の警告がいくつか出るかもしれませんが、Javaアプレットが動作するように答えていくと、Javaアプレットが動作します。Javaアプレットの上で[Alt]キーを押しながらマウスでドラッグすると、Javaアプレットが移動できて、デスクトップ上のウィジェット/ガジェットのようになります。
![]() |
| 図1 ドラッガブルアプレットのサンプル |
IE 7を終了させても、Javaアプレットは表示され続け、ショートカットの作成を要求してきます。了解すると、デスクトップにショートカットが作成されます。その後、Javaアプレットの右上隅の「X」をクリックしてJavaアプレットを終了すると、画面が消えます。次に、デスクトップのショートカットをクリックすると、SimpleJApplet.htmlで開いたJavaアプレットがデスクトップ上に表示されます。
Javaアプレットは6.10に至り、こんな楽しい機能を実装したばかりではなく、起動速度も格段に速くなったのが実感できたと思います。ここに至るまでには、実にさまざまな出来事がありました。その歴史を振り返ってみましょう。最後に、ドラッガブルアプレットの作り方も簡単に紹介します。
■ Webブラウザアプリの出現に興奮した時代
1995年5月23日の「SunWorldカンファレンス」でJavaがセンセーショナルに登場した当時は「Webブラウザ」というソフトウェアが世の中に認知され始めたときでした。HTMLにより、世界中のテキストと画像ファイルがリンクされて、クモの巣のように張り巡らされたドキュメントがインターネット上に存在するようになりました。コマンドベースでテキストを検索していたインターネットの世界をがらっと変えたのです。
□ 昔はJava製Webブラウザがあった
そんな中、HotJavaというJavaで実装されたWebブラウザが発表されたので、そこで動作するJavaアプレットが注目を浴びることになったのです。Javaを使えば、Webブラウザ上で動作するGUIアプリケーションを開発できるということで、ちまたのJava入門書ではJavaアプレットを題材としたものが多かった記憶があります。
![]() |
| 図3 HotJava 1.1.5の使用例 |
□ Javaアプレットが大人気
もちろん、当時から「JavaScript」というWebブラウザで動作するプログラミング言語があったので、Webブラウザでプログラムが動作できるということは、それほど驚くことではありませんでした。しかし、Javaには次のようなJavaScriptと違った有利な点がありました。
- Webブラウザがなくても動作する
- JavaScriptとは比較にならないほど充実したAPIが提供されている
- デスクトップアプリケーションの開発ができる
- ネットワークアプリケーションの開発ができる
- JavaVMがインストールされた環境であれば動作する(「Write Once, Run Anywhere」)
Javaアプレットにはいくつか魅力がありますが、筆者が最も魅力だと感じていたのは、アプリケーションをローカルマシンへインストールしなくても実行できるという点でした。コンピュータの初心者にとっては、環境が変わってしまうアプリケーションのインストールというのは、なかなかできない難しい作業ですから、それをしなくても新しいアプリケーションを実行できるというのは、素晴らしいことだったからです。
筆者は、いまだに、初めてコンピュータへアプリケーションをインストールしたときのことを覚えています。そのときは、インストールマニュアルを片手に、おそるおそる作業をしていました。この作業でコンピュータが動作しなくなったらどうしようかと心配になってしまったからです。家庭向けコンピュータゲーム機のようにカセットを差したら使えるようになっていたら、どんなに簡単だろうと思ったものです。
Javaアプレットであれば、あるURLへアクセスしさえすれば、そこですぐに使いたいアプリケーションが動かせます。ですから、ものすごく魅力的でした。しかも、この方法だと、サーバ側でJavaアプレットのバージョンアップをすれば、自然とWebブラウザへ配布されるJavaアプレットのバージョンもアップします。つまり、ユーザーは、常に最新バージョンのアプリケーションを利用できるわけです。
筆者と同様に、Javaアプレットに魅力を感じる人が多かったからでしょうか、当時はJavaの入門書でもJavaアプレットは必ずといってよいほどよく紹介されていました。また、デスクトップアプリケーションにもなるJavaアプレットの作成方法などが紹介されたりしていて、Javaアプリケーションの可能性を感じたものでした。
□ Javaアプレットの問題点
しかし、Javaアプレットは話題にはなりましたが、最終的には主流となるほど普及しませんでした。ワープロや表計算ソフトといったオフィスアプリケーションと同等の機能を持ったアプリケーションをJavaアプレットとして実装して実行するには、いくつかの課題があったからです。
- ダウンロードするアプリケーションのファイルサイズが大きいと起動に時間がかかる
- JavaVMの起動に時間がかかる
- 当時はJavaVMによるJavaアプリケーションの実行が遅かった
- セキュリティ上の問題が発生しないように、ネットワークからダウンロードしたプログラムであるJavaアプレットは、デフォルトの設定ではローカルマシンへ自由にアクセスできなくなっていた
- 安全なサンドボックス内でしか動作しない代わりに、ファイルの保存などユーザーが使いたい機能を自由に使えなかった
この結果、Webブラウザ上で実行するアプリケーションとしては、Webブラウザの機能を補てんするものや、Webブラウザの表現力を高める機能を持つものの方が注目されて利用されるようになったのです。つまり、JavaScriptやFlashの方が主流となり、Javaアプレットはいつの間にか見掛けなくなりました。
□ 当時のJavaVMは遅かった
当時、IEへ搭載されていたマイクロソフトのJavaVMは起動が速かったのですが、Netscape Navigatorに搭載されていたJavaVMやサン・マイクロシステムズから提供されていたJREのJavaVMは起動が遅かったのを覚えています。Netscape Navigator 4辺りまでは、起動時にJavaVMを起動した状態で、Webブラウザを開始する起動オプションがあったのですが、いつからか、そのオプションもなくなってしまったと記憶しています。
マイクロソフトとサン・マイクロシステムズがJavaの互換性について争った結果、マイクロソフトのJavaVMがIEへ搭載されなくなったというのも影響があったかもしれません。いろいろな要因があって、いずれにせよ、Javaアプレットの注目度は下がっていきました。
次ページでは、サーブレットやEclipseが登場します。
| 1-2-3 |
| INDEX | ||
| 第12回 「Javaは遅い」から「Javaは楽しい」に至る歴史 | ||
| Page1 「Java SE 6u10」そして、「JavaFX 1.0」という事件 Webブラウザアプリの出現に興奮した時代 |
||
| Page2 Java Webアプリ開発の主役はサーブレットへ 開発ツールの実装で人気が出たJavaデスクトップアプリ |
||
| Page3 クライアントのバージョン管理が問題だ 既存技術を見直すと、そこにチャンスがある ドラッガブルアプレットを作ってみよう Javaアプレット+REST=RIA? |
||
小山博史のJavaを楽しむ バックナンバー 連載インデックスへ»
- 第1回 JavaとJavaScriptの親しい関係
- 第2回 いろいろなJavaを楽しむ
- 第3回 待望のJava SE 6 でパーシステンス
- 第4回 (Java+Derby)* Ruby on Rails プログラミング
- 第5回 【新人研修向け特別企画】JavaでPHPを使ってみた
- 第6回 JavaFXでJava RIA開発はどれくらい変わるの?
- 第7回 そろそろブログ+RSSアプリでも作ってみませんか?
- 第8回 デスクトップをJava製ウィジェットでにぎやかに
- 第9回 Google Android用携帯アプリ作成のための基礎知識
- 第10回 【新人なるプログラマーへ】ソースコードを読みましょう
- 第11回 Javaはクラウドのプラットフォームになり得るのか
- 第12回 「Javaは遅い」から「Javaは楽しい」に至る歴史
- 第13回 Subversionならできる! NetBook最強バックアップ術
| Java Solutionコラム一覧 |
ホワイトペーパー(TechTargetジャパン)
- Android NDKでJNIを使用してアプリを高速化するには (2010/3/17)
C/C++やOpenGL ESといったネイティブコードを使うためのNDKとJNIを紹介し、その使い方や注意点を徹底解説します - 調査の難しい「OutOfMemoryError」事例、5選 (2010/3/11)
Java開発者が避けて通れないメモリ不足エラーの基本的な問題切り分け方法と発生につながる事例、対処法を解説 - 究極の問題解析ツール、逆コンパイラJD-Eclipseとは (2010/3/8)
ライブラリ内で例外が発生! そのクラスのソースコードを調べたい!! 自動で逆コンパイルしてくれる無料Eclipseプラグインがあります - いまさら聞けない「Webサービス」の常識 (2010/2/26)
昨今では企業システムでも使われる「Webサービス」の概念やJava標準のJAX-WSを紹介しJBoss WSでサンプルを作成
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |









