この広告は、90日以上更新していないブログに表示しています。
誕生と言うのが正しいか微妙だけど、多分誕生でいいと思います。というのも、「Ajax」という名前の出典は以下の記事で、この記事が書かれたのが今日からちょうど 10 年前でした。

Ajax: A New Approach to Web Applications
(当時から、 URL が一回変わっている)
Web 初めてまだ 10 年たって無いんで、全部見てきたってわけではないですが、個人的にはちょっと思い出深い記事だったりするので、ちょっと振り返ってみます。
筆者の Jesse James Garrett 氏は UX のコンサルティング会社である Adaptive Path の創立メンバーの一人で、 UX エンジニアです。この記事の趣旨は、当時既にあったGoogle Maps やGmail、Google Suggest といったアプリの挙動について分析し、それをAjax と名付けるものでした。
当時、特にGoogle Map が世に出た時に、時代的には多くの人はその UX を「Flash で実現しているんだろう」と思ったでしょう。ああやってグリグリ動かせるマップを作る事は、従来の Web の考え方ではできませんでした。
ちなみに当時の地図といえば、概ねこんな感じでしたね。

地図の周り 8 方向の矢印や拡大率は全部リンクで、クリックするとその場所や拡大率を表示したページを遷移する。なんと懐かしい UI だろう、今だとイライラして最悪な UX ですが、昔の地図とはこうだったと思います。
Yahoo 地図 は今でも、この画面遷移タイプの地図が残っていました。
ちなみに地図をクリックで掴んでずらそうとすると、こうなるwww(この地図もそのうち消えるだろうし、せっかくなので考古学の資料として残しておこう)

で、Google Map はFlash が入っていなくても画面なんか遷移せずグリグリ動かす事ができ、今ではどの地図もだいたいそうなっています(もちろん Yahoo の地図も)。
他にもブラウザでのメールはリロードして受信して、メールを開くのは画面遷移だったし、入力フォームも今のように候補を出してくれたりはしなかったし、検索結果も勝手に絞り込まれたりしなかった。
Garrett 氏が書いたこのエントリは、こうしたアプリがFlash を使わずにどうやってその UX を実現しているのかを解析し、そこに名前を付けるものでした。だから実際彼がこのエントリを書く前から、Ajax 的なものは少しづつ出ていて、彼がそれに受けの良さそうな名前を付けたというもの。
何よりもインパクトが大きかったのは、それがFlash のようにプラグインのインストールを必要とせず、 HTML +CSS + JS (+XML) だけで成り立っていたという事だったと思います。導入にインストーラはいらなかったし、ということは手順書もいらなかった。そして、当時新しい技術は「ベンダ」が主導していくのが主流だったところ、Ajax はブラウザが持ってる標準技術だけでできた。平たく言えばどこかに高いライセンス料を払う必要がなく実現できた。
そして、この記事が「New Approach」と言っているの通り、使っている技術はすでにあるもので、その組み合わせ方が新しかった。
これによってそれまで文書(Document)を閲覧(browse)するために使われていた Web が、アプリを動作させるプラットフォームとしてスタートしたきっかけだったのは確かだと思います。(そういえばそれをWeb2.0 とか言ってましたね)
まあ実際それでGoogle Map 並みのアプリを作るのがどれだけ大変かは別としても、夢は広がっていたんだと思います。
当時のJavaScript なんて、マウスカーソルに変な装飾を施したりする程度のものと、完全におもちゃ扱いされていた頃でした。そしてセキュリティ的な事情から、ブラウザで JS をオフにしているユーザが沢山いることを理由に 「JS 無しでも動く」が Web 開発の用件としてよくあったらしいし、動いたとしてもブラウザの実装差異なんて目も当てられない状態だったと思います。(この時期にGoogle Map とか実現していたということを考えるとヤバ。)
記事では AsynchronousJavaScript +XML の略だと書かれています。
The name is shorthand for Asynchronous JavaScript + XML
通信フォーマットはXML だ!みたいな感じがしており、このおかげで 「Ajax でやりとりするのはXML だ!」みたいな無益な原理厨を産んだという意味では害悪しか無い名前ですが、一応このエントリの FAQ にも 「XML じゃなくてもいいよ、JSON とかいいよ!」って書かれてます。
なんでかというと、正直これは単なる洗剤の語呂合わせだと言われています。(もし省略なら普通AJAX と全部大文字にする)

なんで洗剤かというと、そのころSOAP (石けん)という技術があってだなという話らしいけど、まあ名前なんてそんなもんですよ。大事なのは響き。そしてたぶん本人の想像以上に成功したんじゃないでしょうか。今コレが何の略かなんて誰も気にしてないだろうし。
まず、 JS が見直されましたよね。書く人が圧倒的に増え始めた。ツールやエコシステムが出始めて、jQuery が出たのはこの翌年だそうです。$.ajax() なんて冷静に考えれば酷いメソッド名ですね。
そして、閲覧ソフトだったブラウザ(Browser)の重要性があがり、この 3 年後の 2008 年にはGoogle 自身もブラウザを作り、Chrome の beta が公開されました。同時に、ブラウザ同士が差別化のために独自機能をつけまくってた時代が終わり(というか立ち行かなくなり)、ちゃんと標準化しようという流れになって、だんだん HTML,CSS, JS の仕様が重要性を増して行きました。それがHTML5 という盛大なお祭りに繋がって行きましたね。
XHR を使って Comet でチャットとかが流行だして(Lingr とかもこの時期難じゃないかな)、 XHR でデータ連携で「マッシュアップだ!」みたいな時代あたりから俺も記憶があります。そしてJSONP という裏技を駆使してセキュリティ的にヤバいことに気づいて CORS を含む XHR2 に繋がったり、 Push も含めて WebSocket に繋がっていきました。
HTTP +JSON でAPI を公開するサービスが増え、アーキテクチャとしての REST がやたらと見直されたり、認証として OAuth なんかも出てきたりした。
2009 年には、 V8 をサーバに仕立てた Node.js を Ry が作って、いきなり Socket.IO というキラーライブラリが出てきて、リアルタイム的な話と盛り上がった。
プロトコルとエコシステムとブラウザのAPI がそろい始めると、いよいよフロントで完結するロジックが増えて SPA 的な話が出たり、フロントエンド含めてフレームワークが雨後のタケノコ並に現れては消えてった。
そうやって、 HTML も JS もブラウザもプロトコルもこれでもかというほどに進化してきたなぁという気がします。もちろんまだまだ足りてないものはたくさんありますが。あとCSS 頑張れ、超頑張れ。
その後も色々なことが起こったけど、結局いまだにこの記事に書かれていることと、そう変わらない発展系をやっているだけで、つまりこの 10 年間は、Ajax をひたすら消化した期間だったのかなぁという気がします。
WebSocket も WebRTC も面白いけど、結局通らなかったりするけど、最後にAjax は必ず通る。その安心感とシンプルさが今の Web をかなり支えている気がします。
今読んでみればもちろんなんてことは無い記事なんだけど、 Web のことを勉強し始めてしばらくしてからこの記事の存在を知って、読みながらワクワクしてた気がします。多分、自分自身が Web が面白いと本格的にのめり込むきっかけだったのかもしれません。
Web がアプリケーションプラットフォームとしてのスタートを切ってから 10 年たっても、未だに人の欲は尽きず、まだまだ進化の余地を見せている気はします。新しい事は放っておいても起こるし、その途上を体感できるので、タイミング的には凄く楽しい。
一方で、ブラウザとかもう人類がゼロから作るには複雑すぎる存在になってしまし、もはや OS になろうとしている。ブラウザを積むデバイスも増えたし、 Web に載せるアプリも増えた。あと、作るという立場で言うと Web って勉強するのがもの凄く大変になってしまった気がしています。初心者が「どこから始めたらいいのか」と思うのも無理は無い。最近は正直 Web 自体が、その自重でつぶれないかと思う事がたまにあります。
それでも Web 自体は良くなっていこうとしてるし、それはもう少し続くんじゃないかな。今はまだ人にとって欠かせないものになっていると思うし。何より、自分は「Web が好きだ」と思えているので、Web がこれからも良くなって行けばいいなと思うし、そうしていきたいと思っている。Web が「今どうなっているのか」、「これからどうなっていくのか」も、もうしばらく真剣に考えてみたいと思ってる。楽しいし。
次の 10 年はどうだろう、もしかしたらそろそろ Web の次が出てきて、それに引導を渡して行く 10 年になるかもしれない。であれば、 Web の最後がどう息を引き取るのか、何が次の世界を作っていくのか。それもまた楽しみかもしれない。
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。