第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript
株式会社ピーデー
川俣 晶
2008/2/25
ハイライト1・連載30回企画「Ajaxはじめて物語」
- - PR -
連載30回を記念して、Ajaxの歴史を簡単に振り返り、Ajaxが流行した理由について考えてみたいと思います。
■ 先日、3歳になった「Ajax」という言葉
「Ajax」という名前は、2005年2月18日に公開されたJesse James Garrett氏の「Ajax: A New Approach to Web Applications」によって、初めて世に送り出されました。これ以前に、Ajaxという言葉は使われていません。しかし、Ajaxは便利かつ強力であるため、即座に爆発的な普及を始めました。この勢いは、いまに至ってもまだ止まっていません。盛り上がりそのものはやや落ち着いてきたものの、新しい技術、新しい提案、新しい応用は出現し続けています。
■ Googleマップの出現で始まった「Ajaxブーム」
Ajaxブームの火付け役になったのは、Googleが提供した地図サービスの「Googleマップ」です。GoogleマップはそれまでのWeb上の地図と違って、マウスでドラッグすることで自由にスクロールできるという革新的な機能を実現していました。これは、「スクロール地図」という新しいジャンルを生み出し、マイクロソフトやYahoo!といったライバルも巻き込んで激しい競争を繰り広げるようになります。
|
拡大地図を表示 |
| Googleマップの例(実際にこのまま動かせます) |
さて、ここで重要なポイントは、Googleマップは「Ajax」を実現するために作られたものではなく、Googleマップのようなサービスを示す言葉として「Ajax」という名前が後付けされたことです。
| Webアプリのユーザビリティを改善しまくるAjax Ajax うきうき Watch(1) Ajaxという流行技術の定義を明確にしながら、Ajaxの動向からうきうきするような面白いもの、確実に押さえておきたいものを厳選してお届けしていく 「リッチクライアント
& 帳票」フォーラム 2005/11/2 |
||
つまり、Ajaxアプリケーションは、「Ajax」という言葉が生まれる前から存在することができたのです。
■ 約10年前から存在していた「Ajax」的なもの
Ajaxを構成するHTML/XHTMLやCSS、DOM、XML、XSLT、XMLHttpRequest、そしてJavaScriptといった技術の大半は20世紀が終わってしまう前にすでに出現しています。事実として、Webブラウザ上でページの再ロードを行うことなくリッチな操作性を実現するWebアプリケーションは1998年ごろからすでに出現しています。
例えば、筆者が1998年07月に出版した「XMLコンテンツの作り方」(東京電機大学出版局)という書籍は、そのようなWebアプリケーションの作成方法を説明したものです。また、日本XMLユーザーグループのXMLデザイナーメーリングリストでも、メーリングリストが開設された1999年より数年間、そのような特徴を持つWebアプリケーションが積極的に作成されていました。
■ Webブラウザの「舌戦」
それらが、なぜ普及することなくフェードアウトしたのかといえば、実質的にそれらのWebアプリケーションがInternet Explorer(以下、IE)でしか動作しなかったからです。ライバルのWebブラウザは、十分な機能を提供することよりも、IEの不公正さを非難するという「舌戦」に熱心だったのです。そして、サービス提供側はIEでしか動作しないサービスはユーザーニーズを満たせないためになかなか採用できなかったのです。
このような流れが明確に変わったのは、「舌戦」ではなく優れたサービスを寡黙に提供することにまい進するGoogleの発展と、理念よりも有用性を重視する新しいWebブラウザFirefoxの出現によります。GoogleはIEを非難するのではなく、IEユーザーにも便利に使用できるサービスを提供してユーザーを獲得し、Firefoxはマイクロソフト独自技術であったはずのXMLHttpRequestと互換性のあるオブジェクトを提供することで、より便利なサービスを支える基盤となりました。
■ なぜAjaxはブームだけで終わらないのか
さて、このようなAjaxの歴史を見ると、明確な「技術主導」という流れが見えます。つまり、美辞麗句を並べて自らを称揚しライバルをおとしめる「舌戦」よりも、技術を1つ1つ積み重ねて、実際に使えるサービスを構築して利用者の支持を得ることによって、Ajaxはブームになったということです。正しいか正しくないかではなく、動くか動かないか、便利か不便かという価値観がAjaxを普及させてきたといえます。
このような特徴は、なぜAjaxが一過性の流行としてフェードアウトしていかないのか、という理由をよく示しています。実際に動くこと、それが便利であることを駆動力として普及を続けるAjaxは、実際に役に立つが故にユーザーの支持を失いません。逆にいえば、Ajaxの行く末を「舌戦」に委ねる時代が来ると、Ajaxが衰退していく可能性も考えられます。
いずれにしても、われわれは健全な猜疑(さいぎ)心を持ち、サービス提供者のいい分を信用せず、実際に動作するサービスを使った結果だけを納得するように心掛けるべきでしょう。
ハイライト2・サーバサイドでもJavaScript!?
![]() |
| Aptana Jaxerのページ |
Ajaxの長所の1つは、プログラム言語に対する偏見を持ちにくいところだと思います。クライアント側はJavaScriptでほぼ決まっていますが、サーバ側でJavaScriptが使われることはあまりなく、かといって決まった定番プログラム言語もありません。そのため、大多数のAjaxプログラマはクライアント側とサーバ側で異なる言語を使うバイリンガル生活を余儀なくされます。そのような立場は、どのプログラム言語も一長一短であり、適材適所だと知るチャンスが多くあります。そして、それはたった1つのプログラム言語しか知らないために、ほかのプログラム言語がすべて誤って見えるという典型的な偏見を除去するのに役立ちます。
……という話は1つの事実ではありますが、やはり2つの言語を混用すると間違いやすく生産性も上がりません。例えば、サーバ側でやっていた処理をクライアント側で実行させようと思っただけで、そのためのコードはすべて書き直しになってしまいます。それを考えると、サーバ側もJavaScriptで書くのもありではないかと思います。Aptana Jaxerは、それを行うソフトウェアです。
さらにAptana Jaxerで面白いのは、1つのファイルの中にHTMLコード、サーバ側で実行するJavaScriptコード、クライアント側で実行するJavaScriptコードをまとめられる点です。Ajaxアプリケーションでは、緊密に連携するコードが複数ファイルに分散していることも多いので、コンパクトに1つにまとめられると扱いやすくなるかもしれません。
ハイライト3・人のつながりを検索するSocial Graph API
![]() |
| Google Social Graph APIのページ |
昔、FOAF(Friend of a Friend)という言語を紹介したことがあります。これは、「私」と「誰」が友達関係であるかを記述する言語です。各人がこの言語で記述したデータを公開していると、それらを集めて人間関係のネットワークデータベースを作ることができます。それの何が面白いのかというと、例えば「私とあなたの共通の知り合い」が分かるのです。以前試したときは、まったく意外な人が、私と別の人との共通の知り合いであることが分かって驚いたことがあります。
しかし、この手の人間関係の記述がはやったという話は聞きません。FOAFを紹介した某社は、それを契機になぜかまったく関係ないSNSソフトの開発に着手してしまいました。ですから、いまごろになって、Googleがそのような情報を活用して検索するAPIを作り出したという話は、少しだけうれしかったりします(参考「ブログやSNSを結び付ける『Social Graph API』をグーグルが公開〜FOAFやXFNをクロールしてAPI化〜」)。
1-2 |
| INDEX | ||
| 第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript | ||
| Page1 連載30回企画「Ajaxはじめて物語」 サーバサイドでもJavaScript!? 人のつながりを検索するSocial Graph API |
||
| Page2<そのほかのみどころ> Ext JSでできたWebブラウザベースのマッシュアップエンジン Twitter風の新サービスが続々と GoogleマップとVirtual Earth、2つの地図の違いとは? 快適なレスポンスを得る1つの方法として「CSS Sprite」をAjaxへ応用 なぜリッチクライアントの必要性が問題になるのか |
||
Ajax うきうき Watch バックナンバー
- 第1回 Webアプリのユーザビリティを改善しまくるAjax
- 第2回 Ajax、それはWeb 2.0へと続く道
- 第3回 どんなに無茶をやっても「それもありかな」なAjax
- 第4回 自動車業界のAjaxを活用したキャンペーンを目撃せよ
- 第5回 “どのブラウザでも動くAjax”を共有財産として育てよう
- 第6回 プロプライエタリ2.0から考えるAjaxの公開/非公開部
- 第7回 メモリリークが小さくなったGoogle Maps APIの新版
- 第8回 “CGUI” 消費者が作り出すUIの時代突入
- 第9回 巨大化するAjaxライブラリをシンプルにする新たな流れ
- 第10回 地図のように年代を移動できるMITのAjax歴史年表
- 第11回 JSONがRFCになり、どんどんこなれるAjaxサービス
- 第12回 サーバが通信を開始できるComet活用Webチャット
- 第13回 オンラインゲームで検索精度を上げるGoogleの巧みさ
- 第14回 IE7とFirefox 2への利用者の大移動は起こるか?
- 第15回 グーグル検索エンジンを特定ジャンル専用に、Co-op
- 第16回 帯域やデバイス領域をフル活用させる“モバイルAjax”
- 第17回 新しい技術を模索するYahoo!、Google、MS
- 第18回 Ajaxの高度な使用例、Yahoo! pipes
- 第19回 Apollo参戦でウィジェット開発者の争奪戦が激化
- 第20回 Twitter登場で注目されるRTコミュニケーションツール
- 第21回 過熱するTwitterブームとMicrosoftのマッシュアップ
- 第22回 iPhoneのAjax戦略、そして今日もWeb APIは増加する
- 第23回 Ajax開発者がヒーローになるとき、それはいま!
- 第24回 携帯電話への拡張を進めるGoogleとWeb隠しコマンド
- 第25回 Ajaxで加速!? エンタープライズ2.0とWebOSの普及
- 第26回 「言葉」を超えた説得力を持つAjaxの存在感と広がり
- 第27回 ゲームから読み解く、俺スクリプト時代の知的な挑戦
- 第28回 マッシュアップ元年が終わり、2008年はどうなる?
- 第29回 Twitterやクラウドへも分岐するAjax/Web APIの道
- 第30回 Ajaxはじめて物語、そしてサーバでも動くJavaScript
- 第31回 新ブラウザ戦争はon fireだがJavaScriptはoffのナゾ
- 第32回 Google App EngineはAjaxへのハードルを下げるか?
- 最終回 Pure JavaScriptの動画再生やRPGも好きでした
ホワイトペーパー(TechTargetジャパン)
- 画像を美しく魅せる効果を加えるjQueryプラグイン3選 (2010/3/17)
2つ重ねて比較するBefore/After、部分ごとに切り替えるpanelGallery、ズーム/カーテンなどができるcycle - 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜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台以上! グループ内 サーバの「統合管理」によるメリットは? |








