The need for speed

グーグルが語る:Ajaxはなぜ最初失敗し、その後成功したのか

2007/02/06

 グーグルのアダム・ボスワース氏は、スピードがソフトウェア開発を大きく左右するという。

 「物理学、スピード、心理学:ソフトウェアで何がうまくいき、何がうまくいかないのか。それはなぜか」と題された講演の中で、グーグル副社長のボスワース氏は、Ajax、PDA、自然言語などの技術がなぜ過去にははやらなかったのに、今成功しているのかを語った。同氏は1月29日、 Google NYC Speaker Seriesの一環としてグーグルオフィスで講演を行った。

 ボスワース氏は、これまで約30年間ソフトを構築してきたが、常に「そのすべてがうまくいくわけではない」と述べた。「その理由は、振り返ってみると、主に物理的要素と人間心理によることが分かった」。同氏はまた、「その多くはトム・クルーズと関係がある」と語り、映画「トップガン」のトム・クルーズの台詞「I feel the need, the need for speed.」を引用した。

 実際、スピードの有無はAjaxなどさまざまなソフトウェアの革新の成功を妨げる要因となったと同氏は語った。プロセッサがもう少し高速で、ブロードバンドがもう少し普及していたら、Ajaxはもっと急速に採用が進んだかもしれない。だが、テクノロジの物理学はAjaxの流行を阻んだ要因の1 つにすぎない。

 「1996〜1997年、わたしとある人々――その多くはここグーグルにいるが――は今日Ajaxと呼ばれるものの開発に参加した。インターネットで何が起きているのかをつぶさに調べ、マイクロソフトのほとんどの上級幹部の断固たる反対と敵意に直面しながらも、シッククライアントは廃れかけており、ブラウザベースのアプリに取って代わられるであろうという結論を出した」(ボスワース氏)

 「1996年にマイクロソフトでこういうことを言うのは、精油所にマッチを投げ込むようなものだった。だが、われわれはこれを確立すべきだと結論づけた。そして、人々がシンクライアントアプリケーションを開発できるよう、そうした技術をまとめた」

 それが10年前のことだった。「今は始終Ajaxの話を耳にするが、これは1997年に作られたものだ」と同氏は語った。だが、Ajaxは幾つかの「大きなミス」を含め、さまざまな理由から失敗したという。

 そのミスとは、人々がその技術を実際にどう使うかを誤解したことだったと同氏は説明した。

 例えば、ボスワース氏は同氏の基本ルールは「KISS」――「Keep It Simple and Stupid(シンプルに、愚直に)」だと話した。ツール使用、アイコン、右クリック、ドラッグ&ドロップのような操作はあまりにあいまいだと同氏は語った。

 さらに、ほとんどのWebアプリケーションはあまりカスタマサポートのない多数の顧客向けに設計されており、ほとんどのWebアプリケーションは1日に何時間も使われていないと同氏は指摘した。

 また、「ユーザーはアプリがどんなふうに動作するのかを覚える必要はない。何かを使いやすくすることと、生産的にすることには大きな違いがある」。つまり、皆が簡単にアプリケーションの使い方を覚えられるからといって、そのアプリケーションを使えばもっと生産的になれるとは限らないということだ。

 こうしたミスに加え、1997年のAjaxの物理学は間違っていたとボスワース氏は語った。例えば、実際のアプリケーションにはたくさんの JavaScriptが必要だということが判明した上に、「1997年にはほとんどのモデムが19.2(Kbps)だったし、プロセッサは今より100倍遅かった」と同氏は言う。また、ほとんどのアプリケーションは大量の、または予測できない量のデータフローか、あるいはデータの高速オンデマンドロードが必要だったという。

 「要するに、実際のアプリケーションは恐ろしいほど遅かった」と同氏は言う。この「物理学的」限界はJavaScriptを阻み、その代替選択肢であるJavaは「VM(仮想マシン)上で、すべてを動かすには遅すぎた」と同氏。

 同氏は自身の主張を分かりやすくするため、入力した文字が画面に表示されるまで10秒のタイムラグがあるキーボードを想像してみてほしいと聴衆に語った。「鉛筆は手に入らない。そして書き始めたら、ページに文字が出てくるのに10秒かかる」

 良いツールはユーザーから見えず、半秒もかからずに処理を行い、双方向的なボトムアップ式の学習を伴うべきだと同氏は語り、その理由を「人は進むうちに自分を変えるからだ」とした。

 しかし、結局Ajaxは第2の人生を得た。それは主に物理的側面が変わったからだ。ボスワース氏はそう語った。

 その理由は、ブロードバンドの利用が急増し、プロセッサが1997年当時よりも「大幅に高速化」したためだ。これは慎重に作られたアプリケーションを「十分に高速に」動かす一助となったが、それでもこうしたアプリケーションを書くのは難しかったという。

 一方、使用状況も変わった。特に電子メール、予定表、ソーシャルネットワーキング、トレーディングのような機能のために、「多数のユーザーが1日に2回以上Webアプリケーションを使うようになった」とボスワース氏。

 「長らく見事な大失敗」だったもう1つの技術はPDAだと同氏は語った。

 PDAメーカーはペンコンピューティングに苦労していた。そこへPalmがGraffitiを掲げて登場した。それからBlackBerryとTreoがキーボードを取り入れ、それがPDAの採用拡大につながった。また、PDAでのWeb閲覧は初めは失敗だったが、スピードのおかげで復活した。 EVDOやEDGEネットワークなどの選択肢により、PDAでのWeb閲覧は第二の生を得たと同氏は述べた。

 自然言語技術も最初は、皆が期待していたような万能薬にはなれなかったと同氏は言う。

 自然言語はGUIに取って代わるものとうたわれていたが、それを実現できなかった。データベースのクエリ言語として、表計算の計算言語として、文書作成言語としても失敗したと同氏。「人は人間レベルの理解を期待する」と同氏は語り、データベースクエリと表計算の式は正確でなくてはならないと指摘した。

 だが自然言語も第2の人生を得た。そのきっかけの一部を作ったのはMicrosoft Helpであり、次の一歩となったのはグーグルだったという。自然言語で成功するこつは、「あいまいな問題、人では解決できない問題から始め、検索を中心に適応させることだ。秘訣はランキングにある」と同氏。

 Ajaxの最初の失敗から学んだ教訓を活かして、ボスワース氏は開発者らに、ユーザーの行動を考えるよう忠告した。「使用頻度がどの程度かを聞く必要がある。アプリケーションが毎日何度も使われないのなら、シンプルにしておくことだ。たとえクリックやページ閲覧がもっと必要でもだ」

 また、「リクエストされたタスクが実行されるまでどのくらいかかるかを尋ねることだ。2秒を超えるのであれば、そのタスクを提供しないか、ユーザーがコントロールできる小さなタスクに分割することを検討する」という。

 さらに、「人があまり行かないサイトには、AjaxスタイルのUIは必要ない」とボスワース氏は話した。「AjaxのためのAjaxを作り始めたら、それは顧客のためにならない」

 同氏が話している最中に、作業エリアと講堂を隔てる窓から、グーグルスタッフがRazorのキックボードでホールを行き来するのが見えた。同氏は、自分が「POF(Pontificating Old Fart:尊大に振る舞う年寄り」のようだと冗談を言った。

 「グーグルで働いていると、とても年を取ったように感じる」と同氏は講演の後で言った。また同氏は講演の間にロータスとその自然言語への進出に触れた際に、「ここにいる中でどのくらいの人がロータスを聞いたことがあるだろうか?」と問いかけた。何人かが手を挙げ、同氏はこう言った。「あの人たちはかなりの年寄りに違いない。グーグルのほとんどの人間はロータスのことは知らない」

 今回の講演の目的は、ソフト開発において何がうまくいき、何がうまくいかないかを考えることだとボスワース氏は語った。全般的に見て、同氏は意図していたことを達成した。

 「わたしは長いことソフト開発に携わってきた。大学の時は建築家になりたかったが、不利な点が2つあった。1つは絵が書けないこと、もう1つは土木建築学が苦手だったことだ」

 「だからもっとうまくやれそうなものを見つけた。それがソフトの構築だ」。ボスワース氏はAjax、XML、BEAシステムズのWebLogic Workshop、マイクロソフトのInternet Explorer、Microsoft Accessなど多くの技術に貢献した実績を持つ。

原文へのリンク

(eWEEK Darryl K. Taft)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)