今,「Ajax」(エイジャックス)という技術が注目を集めている。Ajaxとは,「asynchronous JavaScript + XML」の略で,米国のJesse James Garrett(ジェシー ジェイムズ ギャレット)氏が今年の2月に作った造語である。

 JavaScript,CSS(cascading style sheet),DOM(document object model),XMLHttpRequestなどを組み合わせ,ユーザーの使い勝手を良くするためのWebアプリケーションのしくみや開発手法をAjaxと呼んでいる。

 このAjaxを使って開発されたWebアプリケーションの代表例が,「Googleマップ」である。Googleマップを開発した米GoogleのSoftware Engineer,Jim Norris(ジム ノリス)氏とLars Rasmussen(ラース ラスムセン)氏の両名に話を聞いた。なお,Norris氏は米国のマウンテン・ビューを拠点に,Rasmussen氏はオーストラリアを拠点に開発作業を続けている。(聞き手は高橋 健太郎=日経NETWORK)

−−まず確認したいのですが,Googleマップはいわゆる“Ajax”を使って実装されているのでしょうか。また,GoogleサジェストやGmailなども同様に,Ajaxで実装されているのでしょうか。

[Jim Norris] はい,「Googleマップ」,「Googleサジェスト」,「Gmail」はAjaxと呼ばれている技術を使用しています。ただ,開発当時はまだそのような名前はありませんでした。

−−Googleマップで滑らかなスクロールはどのようなしくみで実現しているのでしょうか。

[Jim Norris] Googleマップは,タイルの集まりによってつくられています。まず,実際の表示サイズよりも大きいタイルのセットが,JavaScriptを利用してダウンロードされます。ユーザーがマップ上を移動するとともに,新たなタイルのセットがロードされるしくみです。

−−なぜ,Googleマップ(あるいはその他のGoogleのサービス)をAjaxの手法で構築しようと考えたのですか。どのような技術的なメリットがあるのでしょうか。

[Jim Norris] これらの技術はユーザーとのインタラクティブなやりとりができるところが魅力です。この技術を使えば,Webブラウザの中によりリッチなアプリケーションを作れることになり,ユビキタス性,安全性などの部分でもいろいろと工夫できると考えられます。

[Lars Rasmussen] Ajaxは開発の簡易性に加え,WindowsやMac,Linuxなど幅広いプラットフォームをカバーすることができるところも魅力です。

−−クライアント側のエンジンとして,FlashやJavaなども選択肢にあったと思います。なぜ,それらを使わずに,なぜJavaScriptを選んだのでしょうか。

[Jim Norris] FlashもJavaもWebブラウザの外で実行されるため,ソフトウエアのインストールが必要になります。また,パフォーマンスとフレキシビリティに問題があります。例えば,Flashはプログラミング言語として作られていません。また,Javaはメモリーをかなり必要としますし,既存のWebブラウザのコードとは別のものです。Googleのユーザーの使いやすさを考えると,一番の選択ではありませんでした。

[Lars Rasmussen] Javaは,技術的な部分やその性格的な部分で,「Googleマップ」のエンジニア・チームの求めるものではありませんでした。JavaScriptはオープン・スタンダードとしてFlashより使いやすいものでしたし,「Googleマップ」の目的に合うものでした。もちろん,Googleはユーザーにベストのものを提供したいと考えていますので,ひとつの技術に固執していませんから,この点は将来的には変わることも考えられます。

−−JavaScriptは,大規模で複雑なアプリケーションには向かないという意見もあります。また,CやC++のようなネイティブの言語ではないと,実行速度が遅くなるという意見もあります。これについて,どうお考えですか。また,それらは「Google Earth」の実装と関係がありますか。

[Jim Norris] その目的によって使い方が変わるので,一概にどうとは言えないと思います。例えば,細かいパフォーマンスが要求されるサーバー環境では,JavaScriptはベストの選択ではないかもしれません。また,JavaScriptのコードでは,C++のように迅速な動作は無理かもしれません。でも一方では,C++のコードをユーザーのパソコン上でリスクなく動かすことはとても難しいという現状があります。

[Lars Rasmussen] ネイティブのC++アプリケーションの方がJavaScriptより速く動くことは事実です。Googleは両方の良いところを取り込み,「Googleマップ」はWebブラウザの中で動かすようにし,「Google Earth」ではパソコンで動くようにしています。

−−“Ajax”という言葉は最近作られましたが,この言葉はいつ,どのようにして知りましたか。また,そのときどのように感じましたか。JavaScriptやXMLなどを組み合わせた開発手法に,Ajaxという名前が付けられたことを,どのように評価しますか?

[Jim Norris] AjaxはasynchronousとJavaScriptとXMLの合成語ですが,ちょっと誤解が生じてしまいそうな名前ですね。Ajaxと聞くと,たいていの人は言語よりもasynchronicity(非同期性)を思い浮かべてしまいがちです。でも,なかなかかっこいい名前ですね。

[Lars Rasmussen] はじめてAjaxを聞いたのはJesse James Garrettのエッセイ(http://www.adaptivepath.com/publications/essays/archives/000385.php)の中でだったと思います。その後,Wall Street Journalの「Google Pioneers Use Old Microsoft Tools In New Web Programs」という記事の中でも使われてたのを覚えています。Ajaxという言葉は誤解を生じる可能性があります。でも,短・中期的にみれば,この組み合わせはとても良いと思いますし,来年までにはもっといろいろなAjaxのサービスが市場に出てくると思います。

−−なぜAjaxが今注目を集めているのでしょうか

[Jim Norris] 皆,Webがこれまでよりも便利で簡単で,楽しくなればいいと考えているでしょう。この目的を考えたとき,Ajaxはとてもパワフルなツールだと思います。

−−今後のAjaxに基づいたWebアプリケーションの可能性について,どのようにお考えでしょうか。

[Jim Norris] AjaxはWebアプリケーションとして,これまでできなかったいろいろな可能性を実現させることができるので,もっと広く使われていくと思います。

[Lars Rasmussen] すでに言いましたが,今年から来年にかけて,もっと多くのAjax関連のサービスが出てくると思います。よりリッチなWebアプリケーションが作られ,Webブラウザの作り手にも影響を与えるかも知れません。