2005-02
25
23:47:00
ajaxは古くて新しい夢


この一週間ぐらいで一気に名前が浸透した感があるAjax
そもそもの出所(というか名付け親?)はこちらのAdaptive Pathというコンサル会社に所属するJesse James Garrett氏の記事で(日本語訳)、これを一部のgeekたちがBlogで記事にして一気に言葉が広がったみたいですね。
定義で書けば

XHTML と CSS を用いた、Web 標準に基づくプレゼンテーション
Document Object Model によるダイナミックな表示と相互作用
XML と XSLT による、データの変換や操作
XMLHttpRequest による、データの非同期的な取得
それらを JavaScript によって結びつける

ということらしいですが、論より証拠、例えばニュースでも何度も出ているGoogle Mapsはやはり一度試してみる価値大ありです。
但し動作原理を見てみたいなら、Google MapsのHTMLコードははあまりの複雑さに驚愕してしまうと思うので、antipop2.0さんのMT検索がお勧めです。
詳細は前述の記事に詳しいとして、このajax、分かる人は分かると思うのですが、Garrett氏が元記事でも述べているように特に目新しい技術でもありません。


例えばIEに限るのであれば、実際にはIE5の頃(だから99年頃?)には既に可能でした。
IE5から ActiveXベースのXMLパーサ(MS XML)は実装されており、かつDHTMLとDOM、JScriptでよりリッチで動的なプレゼンテーション層を構築する、という手法は確立されていたと思います。というか、今でこそMicrosoftはリッチクライアント技術のアプローチを.NETへ傾斜していますが、当時はDHTML + DOM + JScript(またはVBScript)でクライアントアプリをリッチにする、という技術戦略がメインストリームだったように記憶しています。そう言えば<XML>タグを用いたXMLアイランドとか呼んでいたリモートのXMLファイルを読み込んでオブジェクト的に使えるようになったのもこの頃だったかと(内部技術的には同じですが)。
つまり元々の「発明者」はMicrosoftだと言えるかも知れません。
またNetscape(4.x)でも隠れフレームを使うと似たようなこと(クロスサイト・スクリプティングとも言うかも知れませんが)は出来たてたり。
こう考えるとGarrett氏の言うような a new approach to web applications との表現は少し違和感があります。同時に「この五年間は何だったんだ」という気も。
とは言え、これはコロンブスの卵ではあるんでしょう。
一つには、Mozilla/FirefoxやSafari、また次バージョン以降のOperaなどでXMLオブジェクトをJavaScriptから簡単に取得できる方法が実装されるようになったことでIE独自色が薄れ、逆にMS嫌い派も躊躇無く活用するようになった、という背景が恐らく大きい。アプローチとしてのマルチプラットフォーム化が現実のものとなったということですね。
次にやはり特筆すべきはGoogleラボチームの驚異的とも言える実行能力。
論より証拠、と言いましたがやはりGoogle Mapsは明らかにこれまでの常識を打ち破った歴史的なWebアプリケーションと言えます。いやー、いい仕事してます。
こうした造語も作りたくなってしまうほど見事に、これまであいまいだった技術分野を立て付けてしまったのだ、と言えるでしょう。
たった一つのアプリケーションがまた世界を変えた例なのかも知れませんね。
では果たしてajaxは今後市民権を得るアプリケーション・フレームワークとなり得るかどうか。
一点懸念があるとすれば、例えばIEではActiveX、Mozilla/Firefoxでは一般的なJavaScriptオブジェクトなど、プラットフォームでアプローチに対する差異は依然残っている点です。
十分吸収可能な部分ではありますが、微妙な温度差が気になったり。
また、非常にダイナミックな処理が必要となるかも知れず、そうするとスクラッチでは工数がかかりすぎて、一部のgeek以外には受け入れにくいことでしょう。少なくとも開発効率でFlashアプリケーションを越えられなければ。
このあたりは開発ツールか、何らかのフレームワークに期待ですね。
そしてまた、ajaxはMicrosoftからすれば古き忘れてしまった夢、Googleチームに代表されるgeekたちにすれば新しき夢、とも思えます。
皮肉といえば皮肉ですねぇ。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください