2009年2月25日水曜日

[Dion Almaer] 遂にブラウザが時代に追いついた。もう「Webページの未来」なんかじゃないよね

(原文: Browsers are finally catching up; It isn’t the Future of Web Pages is it)

Benと私は、風光明媚なマイアミで行われている Future of Web Apps 訳注: 原文ではリンク先が自分自身へ張られていたので変えてあります)で講演している。中西部に住んでいるという事もあり、陽気のいい土地に出かけるのは大歓迎だ。先日のロンドンでの講演は本当に楽しかった。その時は Gears について話した。 今回 Ben と私は Web の現状について話しているのだが、Web の現状は間違いなく私達にとって刺激に満ちたものになっている。タイミングもばっちりだ。先日公開した、私達が最先端の技術に触れあう場である Bespin プロジェクトの舞台裏について話せるからね。私達はもう古いブラウザというしがらみに縛られてはいないけれども、以前とは全く異なるこの現状も、さほど驚くほどのものじゃなくなった。こういったしがらみは私達を石器時代に留まらせるものだし、もし私達がそれを受け入れて共存してしまったら、プラットフォームは、革新を経たプラットフォームに比べて見劣りのするものになってしまうだろう。

2009年になってもまだ私達の大半は『Web ページを見る為に作られたブラウザ』という世界の中で作業しなきゃならない。こんなのは『Web ページの未来』とは呼べないよね!

革新的且つ忌々しい作業を通じて、開発者コミュニティは遂に Ajax という進化をもたらした。見た目こんな感じだった:


やっつけ仕事とひねり過ぎなやり口ばかりだった。正直つらかった。でも初期の飛行機がそうだったように、やり方なんてどうでも良かった。現にケモノだってフツーに飛んでるじゃん! この急場しのぎの技術集積は、アプリケーション開発を可能にするという形で、私達に飛行能力をもたらした。XMLHttpRequest 等が私達にもたらした小さな革新は、たとえオープン Web であっても、やろうと思えばインタラクティブなユーザエクスペリエンスが作り出せるのだということに他ならなかった。

そして遂にブラウザは変革の時を迎えた。「ブラウザ開発者達はデスクトップアプリケーションレベルの Web アプリケーションを作れるプラットフォームを構想しているんだな」という事を如実に示すテクノロジ群を伴って、新たな成果物が出現している。Chrome の漫画にはそういったネタがいっぱい詰まっている。そんなテクノロジのいくつかに光をあててみよう:
  • 超高速なJavaScript 他のプラットフォームはスマートな JIT VM を搭載しており、この点については Chrome でも変わりはない。ブラウザに組み込まれた最新の VM により桁外れの実行性能向上がもたらされている。これは 速度の向上のみならず、Web アプリ開発というゲームが全く違う次元に移行したということであり、これまで出来なかった事が出来るようになるということを意味している。
  • プロセスの分離 高速な JavaScript 処理自体は素晴らしいものだが、旧式なシングルスレッド型ブラウザには依然としてボトルネックが残る。Web ワーカは、処理の分離を行うための実に良く出来た API(スレッド API ではない!)を提供している。多分私達は「もっと色々な事が出来るんじゃないか」と考えるだろうから(だって JavaScript の処理が高速になるわけだからね)気がつくとコード量は増えているわけで、目先のコードを実行する一方、そうやって増えたコードについてはブラウザにやらせる必要がある。
  • マルチプロセス 高速な JavaScript 処理と Web ワーカがあったとしても、境界というものは保たれる必要がある。もし GMail・カレンダー・Bespin・その他3つの Web アプリが動いていて、それらが全て情報更新等のためにポーリングを行うとしたら、CPU への同時要求によりコリジョン(要求のぶつかり合い)が容易く発生する。新たなマルチプロセス型のアーキテクチャならばこの問題を回避出来る。Bespin に取り組んでいる今、この機能については可能なかぎりうまく実装されてほしいものだと願っている。
  • リッチな描画表現 私達はテキストとボックスと画像を組み合わせるのに慣れている。でもこれじゃちょっとね! こんな単純な構成要素だけでやってきたのかと思うと驚くんじゃないかな? canvas・SVG・新しい CSS プリミティブ(border radius, CSS animation, CSS transition, CSS shadows 等)があれば、これまでのボックスにとらわれない発想がもたらされる。
  • デスクトップサービス 私達はもっと手を延ばす必要がある。実際のアプリケーションはクリップボードとやりとりし、位置情報を取得し、住所録にアクセスすると言ったことを行う必要がある。「〜をするにはネイティブアプリ のフレームワークを使う必要がある」とみんなが口にする現状を乗り越えるためには、この問題を解決しなければならない。私達に必要なのは使い物になるトラストモデル(訳注: 実行許可のポリシー設定など、アプリケーション間通信における信用の確保に必要なモデル)であり、その API をブラウザに組み込むことだ。
私達のたどりつく先はこんな感じになる。喩えるならば最初の飛行機からジェット機への進化だ:


私がオープン Web のための新しい開発ツールを使って仕事をすることにいつも胸躍らしている理由はこれなのだ。コミュニティがもたらしてくれるものに私は元気付けられている。ブラウザ開発者・Web 開発者とともに大きな変革をもたらすことが出来るのだ。

確かに Kool-Aid(訳注: Kraft Foods 社の生産している粉末ジュース)を切らした日にゃいつだって、プラットフォームの抱える問題が気に障るようになる。道のりは遠いし、旧いブラウザを無視する訳にもいかない。でもまぁ、やってりゃそのうち良い事あるさ。

0 件のコメント:

コメントを投稿