|
 |
|
 |
誤解から賞賛へ。Ajaxで再評価されたJavaScriptから学ぶこと
|
 |
|
 |
 |
 |
 |
■ Googleマップによる“Ajax”の隆盛
最近、「Ajax」という言葉を耳にすることはありませんか? Ajaxとは、「Asynchronous JavaScript + XML」の略称で、「えいじゃっくす」と呼ばれています。このワード、半年ほど前に突然盛り上がりだして、いまではWebエンジニアの間ではお馴染みの言葉になっています。
今年の2月に、Googleが「Googleマップ」という地図サービスのベータリリースを行ないました。
地図に関するサービスは、これまでも数多く存在していますし、特にYahoo!やその他大手ポータルのそれは高機能かつデータベースも充実していて、実用性十分です。そんな地図サービス界隈に、いまになってGoogleが乗り込んでくる、というので、Webな人たちは固唾を呑んでそのリリースを待っていました。
そうしてリリースされたGoogleマップは、人々の期待を裏切らない画期的なWebアプリケーションでした。マウス操作で地図がぐりぐりと動く、拡大縮小もなんのその。衛星写真と地図はワンクリックで切り替え可能……。こんなものがブラウザの上で動くのか、と誰もがその目を疑いました。
|
Googleマップ
|
当然のごとく、ちまたのギークたちは、このぐりぐり動く地図アプリケーションがどんな仕組みで実現されているのか気になり始め、調べにかかります。その結果、このアプリケーションに使われているのは「JavaScript」だったということがわかりました。
これだけインタラクティブな動きをする、これまでに類をみないWebアプリケーションですから、何か新しいテクノロジが使われているか、あるいはFlashのような外部プラグインのようなものを必要としているのだろうと誰もが思っていましたが、その回答は意外にも、ブラウザに元々組み込まれていて、枯れに枯れたJavaScriptというテクノロジだったのです。
このGoogleが見せたJavaScriptによる動的アプリケーションの実現手段(動的ロードテクニック)には、やがて「Ajax」という名前がつきました。「Adaptive Path」というサイトで使用されたのがその始まりです。AjaxはGoogleマップだけでなく、「Gmail」や「Googleサジェスト」などのGoogleアプリケーションでも多用されているテクニックです。
|
|
Gmail
|
Googleサジェスト
|
Googleマップという実例が世の中の知るところとなり、JavaScriptを使った動的ロードテクニックに「Ajax」という名前がついたことで、このテクニックはあっという間に世のWebエンジニアの間に浸透していきました。そして、JavaScriptという、10年も前からある技術が、Ajaxを引き金に2005年になって盛り上がりを見せはじめたのです。
■ 誤解されてきたJavaScript
ところでみなさんは、「JavaScript」というと何を思い浮かべるでしょうか。何だかネガティブなものを想像された方も多いのではないでしょうか。
JavaScriptは主にWebブラウザに組み込む目的で設計されたプログラミング言語で、これを利用することでWebサイトやWebアプリケーションにインタラクティブな動きを追加できます。
しかし、これまでのJavaScriptは、ページのHTMLソースを読ませないために右クリックを抑止する、意味のない流れるメッセージをブラウザのステータスバーに表示する、広告をポップアップさせる、嬉しくもない特殊効果で訪問者をびっくりさせる……。そんな用途で使われることが多くありました。
また、Webサイトの設計が不十分なために、JavaScriptがセキュリティの問題を引き起こす、というケースも多々あります。こういった点から、ブラウザでJavaScriptを無効にしているユーザーも多いことでしょう。
これまでのJavaScriptは極端な話「Webには不必要なもの」という扱いを受けるところまで来ていました。
しかし、Googleマップが見せたJavaScriptによる新しい可能性は、そんなネガティブなイメージを吹き飛ばすのに十分すぎるほどのインパクトでした。JavaScriptという技術は、さまざまな意味で誤解され続けてきた技術だったのです。
こうして、JavaScriptは改めて評価され、Webアプリケーションを構成する重要な要素であると認識されるようになってきました。Ajaxによる動的ロードテクニックだけでなく、以前に紹介したRemix手段としての「Greasemonkey」のようなプラットフォームの構成技術、Webアプリケーションのユーザービリティを向上させるための手段、プラットフォーム非依存なデータ交換フォーマットとして、新しい開発環境のプラットフォームとして、JavaScriptが利用されるようになってきました。
■ JavaScript 2.0から学ぶこと
次世代のWebについての議論から生まれてきた次のWebのかたちを指差して「Web 2.0」と呼びます。それに当てはめると、今まさに盛り上がっているJavaScriptは「JavaScript 2.0」といったところでしょうか。
JavaScript 2.0の事例は大切なことを教えてくれます。
その最たるものは、「人は成果物でしか物事を評価することができない」ということです。JavaScriptが、ユーザーの行動に制限を加えるために利用されていた当時は、そんな数々の実用例をみて人はそれをネガティブに評価してきました。しかし、Googleマップが登場し、Ajaxにスポットライトが当たりだすと、翻ってポジティブな評価を受けています。もちろん、以前からJavaScriptを正しく評価し有効性や可能性に気づいていた人もいたとは言え、大勢がそうではなかったことはみなさんもよく知るところでしょう。
JavaScriptという言語は、確かにその仕様やブラウザの実装の変遷などはあったものの、基本的にはこの10年の間に大きな変化があったわけでもなく、ずっとそこにあり続けてきたものです。しかし、多くの人はそれを正しく評価することはできず、誤解し続けたままその可能性を見過ごしてきました。結局、Googleマップという具体的な実例をもってしか、それを評価することができなかったのです。
人は成果物でしか評価できない、これは技術の世界以外でも同じことです。あるデザイナーが作品を作ろうとしたとき、そのコンセプトだけを聞いても誰もそこに正しい評価を下すことはできません。イメージだけでものを語っても、そこで得られるフィードバックはどれも的外れなものです。作品のかたちを見せたところではじめて「ここがいい」「ここが悪い」という賞賛・批判が行なわれるようになります。
ソフトウェア開発の世界では、「プロトタイプを作る」ということがよく行なわれます。プロトタイプとは、要するに試作品のことです。「こういう機能がほしい」という要求はあっても、例のよって物がないところでは、開発者と要求者がお互いに頭の中を理解し合うのは至難の業です。そこでまず試作品を作って、それを叩き台にああでもない、こうでもないといって本当に必要な機能を見極めていきます。一見すると回り道のようなこの方法は、実は正しいものをつくるための最良の近道であることは、多くのソフトウェアエンジニアの知るところです。
そういう意味で、JavaScriptを正しく評価するためのきっかけを与えてくれたGoogleマップという“物”には、技術的な意味でものすごく大きな価値があったと言えるのではないかと思います。
JavaScript 2.0 の到来が教えてくれたもうひとつの教訓、それは「できないのではなく、できるかどうかわからない」という思考です。5年前に、JavaScriptを使って、インタラクティブな地図サービスを作りたい、といったところで「そんなことはできるわけがない」、と鼻で笑われるのがオチだったことでしょう。いまこうして記事を執筆している僕でも、同じだと思います。「そんなことできない」。
しかし、今ではそれを「できない」という人が逆に鼻で笑われてしまうかもしれません。「Googleがやってるじゃないか」。“Impossible is Nothing”、何事も「できない」と思ってしまったところで思考停止。「できない」と思ってしまうからできないのかもしれません。「できない」のではなく「できるかどうかわからない」と考え、「わからないけどチャレンジしてみよう」と思ったところが、それを可能にするための第一歩なのでしょうね。
さて、今回はこれまでの連載とはちょっと色を変えて、やや技術的な話について書いてみました。より詳細な話が知りたい、という場合には Collection & Copy - JavaScript: 世界で最も誤解されたプログラミング言語を参照されると良いでしょう。また、JavaScript の具体的かつ技術的な話については、以前にはてなで行なった技術勉強会の様子を資料と音声で公開してありますので、併せて参照いただければと思います。
■ URL
はてな
http://d.hatena.ne.jp/
naoyaのはてなダイアリー
http://d.hatena.ne.jp/naoya/
■ 関連記事
・ 【Blog Hackers Conference 2005】 Six Apart宮川氏やはてな伊藤氏が語るブログの未来と課題
2005/09/08 11:56
 |
伊藤直也 はてな取締役最高技術責任者。はてなの新サービスの企画・開発を行なう。個人でRSS検索「FeedBack」、Amazonアフィリエイト支援ツール「amazletツール」なども開発。自身のブログでも技術やブログ関連の話題などを紹介している。(写真撮影:近藤淳也) |
|
 |
 |
 |
Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.
|
|
 |

|
 |