ウェブブラウザの定義は?

ウェブブラウザの定義って何だろ。

もともとはHTMLというドキュメントフォーマットのビューアにHTTPプロトコルをサポートするファイルダウンロードツールを組み合わせたものだったと思う。その時点での特徴としては:

  • ダウンロード元を指定する仕組み(ナビゲーション)がビューア内のUIだけでなく、ドキュメント内にもあるということ。
    まぁ、そもそもそれがそれがハーバーテキストの定義なんだろうけど。
  • HTMLが他のメディアを内包して表示できるドキュメントフォーマットであるということ。

だったんじゃないかな。

でも、ここで終わってたら単なるハイパードキュメントビューアでしかなかった。それがアプリケーションプラットフォームにまで躍進した理由は:

  • JavaScript実行エンジンが追加され、HTML内にJavaScriptの記述と、そのプログラムと連携する仕組み(DOM+イベント)が追加された。
  • 他のメディアを描写するためのプラグインアーキテクチャがウェブブラウザに実装された。

だったと僕は思う。

もちろん表示履歴や、ブックマーク、ツールバーなどのUIの改善や、HTMLとHTTP自体の進化(CSS2のサポートはこの一環)、他の通信プロトコルのサポートなども、いろいろすごかったりするけど、やっぱり「ウェブブラウザは最低限この機能が無いとウェブブラウザって呼べないんじゃね」っていうのは上記の4点な気がする。

後者二つの発展が特にすごいと僕が感じるのは、大抵の技術革新がコンピューターの性能を最大限に使おうとする中、逆に制約を課したことによって、「ユビキタス+クラウド」というコンピューティングアーキテクチャの実現を推進したって言うところじゃないかな。

それまでのネットワークコンピューティングはよりクライアント側に演算責任をシフトし、データのガラパゴス化をしてしまっていた。それを、手元のデバイスはこのレベルでいいはずって決め、逆に演算責任の大半を「あちら側」にシフトすることによって、それまで分散化されていたデータが連携できる場所に集約され、新しいサービスを可能にしてる。

その上、演算責任の制約によって、P2Pモデルでは貧弱すぎるとされるデバイスクラスも主役レベルで利用できるようになって、電源や通信の両方での発展とあわせてユビキタスコンピューティングも実現できるようになった。

普通は足して伸ばすところを、押さえ込んで伸ばした感じ。いまさらかもしれないけど、ウェブブラウザすげー。