Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

日本の Ajaxer(何)と、ガイシュツな「問題」について

なんというか、意味のない愚痴みたいなことですが。

たとえば "Ajax: 99% Bad" という、ヤコブ・ニールセンさんの "Flash: 99% Bad" を文字った Ajax 批判エントリを読むと、なんかガイシュツな話をしてるなぁとか思うわけです。というのは、Ajax という言葉が作られて 10 日もたたないうちに、すでに「nazonoDiary - AjaxでもURIで状態を示せるようにお願いします。」というエントリに見られる通り、一般的な Flash アプリケーションが、ある状態を示す URL によって状態の復元が可能であるようには作られていないことが多い(単に一般的にそうなってないというだけで、可能ではあるようです)ことのユーザビリティ的問題を挙げて、Ajax に対する問題提起が行われています。

その提起に対して、mala さんが即日「location.hashを使ったセッション復元」というエントリを起こし、Google Maps が行っている実装の検討とともに、それとは別に location.hash を用いた状態保存方法を紹介し、問題解決の糸口を示しています。また、その方法ではマルチバイト文字を扱う上で不都合が生じることがあるということで、location.href から取得することで文字化けを回避する方法を示しています

それを受けて nazoking さんの複合検索サービス「ご一緒にポテトはいかがですか?」に、検索結果ページを示す URL を扱えるよう改良がなされ、上述の "Ajax: 99% Bad" にて提起されている問題うち、URL の問題については、上記の通り一応の解決をすでに見ており、そのため、日本語のリソースで「Ajax は状態保存できないからうんこだ」などと書けば、「まぁ落ち着けよ。Ajax がどーのとかいうなら、せめて「最速インターフェース研究会」ぐらいはチェキっとこうな」と諭されることになるわけです。

しかし、考え直してみるに、単に僕が知らないだけで同様の問題は世界中の各言語で議論されていて、たまたまこの "Ajax: 99% Bad" が目にとまり、「ガイシュツ」呼ばわりしているのかもしれないなぁ、と思いました。しかし、"AjaxPatterns" なる、Ajax に関するかなり高度な Tips 等がまとめられているように見受けられる Wiki を拝見しても、"UniqueURLs" に関する同様の問題提起はなされているものの、ソリューションとしては Google Maps が挙げられているのみです。そのようなことから、上述した nazoking さんと mala さんのやりとりで展開されたような方法は、単に知られていないということなのではないか、と思いました。

とはいえ、location.hash を用いた状態保存・復元という手法は mala さんのオリジナルというわけではなく、たとえば TiddlyWiki においてすでに試みられています。しかし、Tiddly Wiki の実装では、Google Maps と同じく、状態保存用の URL へのリンクがしめされ、それをクリックするなりコピーするなりして、当該 URL を取得しなければならず、ひとつ手間がかかります。先に挙げた nazoking さんの「ご一緒にポテトはいかがですか?」においては、URL が自動的に変遷していき、そのような手間は必要ありません。

要するになにがいいたいかというと、本件問題についてはすでに解決方法、あるいは、よりよいと思われるアイディアが提示されているのにも関わらず、それが言語を異にするという理由でうまいこと伝わっておらず、相も変わらず "Ajax: 99% Bad" などと無知に基づく因縁をつけられているような事態になっているのは、見ていてなんだか歯痒いなぁと思うわけです。やっぱ英語で書かないと読まれないし、読まれなければいいアイディアであっても広まらず、なんだか悲しいことになるのだなぁ、と。じゃぁおまえが英語で書けばいいじゃないか! と、いまこの文章を読んでいるあなたは思ったでしょうが、僕にそんな能力があるわけないじゃないか! そんなことできるなら最初からやってるよ! つーか、そんな説教をたれてくださる英語ペラペラなあなたがまずは "UniqueURLs - AjaxPatterns" に上記のような内容を書いて、世界に広めてくださいよ! と逆ギレ気味に、このエントリおしまし。