MVCの新しい境界線 = Web X
Gearsの機能のひとつに、ローカルDB機能がある。ブラウザ内蔵のDBとか言ったりする人も居るみたいだが、ブラウザから簡単に使えるDBであって、ブラウザに内蔵されているわけではない。このローカルDBの他にワーカープールとローカルスサーバもあるが、この二つの機能は個人的には、ローカルDBを支える機能であって本質的にはローカルDBが幹であると考えている。(単品ずつでもそれぞれ大変使いでのある機能だけど)
話は変わるが、インターフェースを大事にする時、大きく2つのポイントが有ると思う。
- アフォーダンス
- レスポンス
アフォーダンス
簡単に言うと、"何か"の操作においてマニュアルや説明が不要だという事。更に言うと、その"何か"を知らないとしても見ただけで何する物か分かる。「アフォーダンスが優れている」などと言ってこの言葉を使っている。(間違っている可能性大)どう使うのか考えさせていないか?操作の為の操作がないか?優れた気持ちの良いインターフェースはそんな無駄な考慮が要らない。(例:駅にあるゴミ箱=捨てたい物と捨てる位置が考えずに分かる、駐車場の事前料金支払機=手順を追って必要なところだけ物を入れられるように動く&光る、昔のGoogleのページ=検索語入れて>ボタン)
レスポンス
説明の必要もないかも知れないが、どんなにアフォーダンスが優れていようと、ボタンを押したのに、全然処理が終わらなかったり。そもそも押したかどうかのレスポンスが無いと非常に不愉快である。
上記二つのポイントの内、レスポンスに関しては、技術的に解決出来る事が多い。
話はGearsに戻る。ローカルDBが、レスポンスに大きく貢献できる事に疑いの余地がない。さらにローカルストレージも上手に使う事でもレスポンスは向上し、インターフェースの大改革が起こる気がしてならない。
画面更新層とデータフェッチ層が同期とか非同期(AJAX)とかマッシュアップとか、そんな名前が付く事で、全体としては、Web2.0とか言ってた気がする。言い悪いは置いといて。色々なサービスにAPIが付いたり、それを利用したサービスやら本やらが世の中に出たりした。それはそれで便利になった気がする。それ以前と何が変わったかと言うと、インターフェースのレスポンスとデータ置き位置(アクセス可能範囲)の変化だと思う。
非同期通信することで、レスポンスがあがって(トータルの時間は変わってない)インターフェースが向上した。REST等のWebAPIが整備され、APIを利用出来るライブラリが充実した事で、アクセスが出来なかった(もしくわ、データ取得にコストが掛かりすぎる)データが、さも自分のサーバ内に有るかのように利用可能になった。これにより、簡単にマッシュアップが可能となった。これらの技術が、それまでのWebとは明らかに違うと、様々な人たちに思い描かせて行った気がする。Web2.0という名前は、その思い描いた"何か"そのものなのかも知れない。
そして、HTML5やGearsの登場になる。
- ローカルデータベースによるデータ置き場所のさらなる近距離化
- ローカルサーバによるネットを介さないリソースのアクセス
- WorkerPoolによる非同期処理
次のステージが整いつつある気がしてならない。がしかし、Gearsのバージョンが着々と上がったり、各ブラウザのHTML5の対応が進んでいるにもかかわらずあまりそれらを利用したという状況にはなっているとは言い難い。
("gears"で検索するとゲームのタイトルが大量に引っかかるので"google gears"で検索したが、正式名称は"Gears")
Googleの比較サイトを使っているのでGoogleの製品が多く出るのは分かるがHtml5は、グラフさえ生成されない。
"HTML5" に一致する日本語のページ 約 852,000 件
"google gears" に一致する日本語のページ 約 432,000 件
ちなみに参考までに
Javascript に一致する日本語のページ 約 12,300,000 件
python に一致する日本語のページ 約 1,570,000 件
python3.0 に一致する日本語のページ 約 15,700 件 (py3k少なすぎるだろ!)
これからWebサービスで何が起こっていくのか予想すると、ユーザインターフェースを視覚的感覚的に大切に考えている会社やサービスが、いくつか突然生まれてメジャーになると予想する。それらのHTTP(S)を利用した"ナニカ"は、GearsもしくわHTML5を巧みに使い新しいブラウザの利用方法を提案してくるだろう。
こうなってくると、サーバーは単なるアプリ配信サーバーとなってしまうかも知れない。最低限のAPIだけ提供してデータは一度だけローカルにDLされる。複数の環境でそれぞれDBが作成されCRUDが行われるようになるとサーバを介しての同期より各DBが直接つながるようになった方が良いと考える人が居てもおかしくはない。現バージョンのGearsでは、サーバー機能は無いが、セキュリティーが許せばそれも一つの選択肢であると思う。
更に、ブラウザ側のコーディング量が増えていくかも知れない。サーバーで、同じデータに大量のアクセスが来る事を裁く事より、ローカルでやれたほうがいい。そう思う人が多くなればなるほど、WebXへの流れは加速していくと思う。そうじゃないサービスだらけだけど、それは今まで出来なかったからで、これからは、今まで見た事もないようなサービスが生まれる下地はそろそろ出来上がってきたように思う
けつろん:Gearsネタのエントリ少なすぎる。みんなやってみようよ!
かだい:おかねもうけのほうほうがかかれていませんけど?