次世代ウェブ:HTML5 – 標準化は成るのか?

次の記事

Say2GOが、Windowsユーザー向けに非同期音声チャットを提供

lame_logo

6月の記事でブラウザおよびプラグインがHTML5のドラフト仕様で定義されているストレージ関連APIをどのように実装しているのかを見た。GearsOpera、およびWebkitでは構造化ストレージAPIは採用しているが、HTML5仕様の他の部分についてはほとんど実装されておらず、未だ流動的な状態だ。HTML5はすべてのブラウザが採用するひとつだけの標準的マークアップ言語およびAPI群を定めようという壮大な試みではある。しかしマイクロソフトAdobeその他が独自の次世代ウェブ技術で鎬を削る中、ほんとうにHTML5標準を目にする日がやってくるのだろうか。

歴史から学ぶ

netscapeHTML5が対象にする範囲や標準化に向けての努力は、ひと世代前のHTML 3.0仕様を巡るものと比較することができる。1995年4月、HTML 3.0仕様はHTML 2.0への下位互換性を意識しつつ新機能を実現する設計を行った(テーブルタグ等)。W3Cは設立されたばかりで、HTML 3.0はW3Cの初期に生まれた仕様のひとつとなった。ブラウザ戦争はほんの少し先の話。Navigatorはリリースされて5ヶ月で既に80%のシェアを手中にしていた。これにはマイクロソフトも注目して、あわててInternet Explorer 1.0の開発を開始する。そしてわずか数ヶ月後にリリースされることになる。

影響は今日まで残っているが、1995年にはブラウザが異なればマークアップ言語も異なるという状態だった。Netscape 1.1では、他に先んじてテーブル、フローティングイメージ、およびナビゲーション用のエレメント(訪問済リンク等)を実装した。IEの最初のバージョンは裏技の集大成といった感じで「何が何でも表示する」という戦術をとっていた。つまりHTMLが不適切な場合でもブラウザ側で最適と思われる解釈を行って、とにかく何かを表示していた。IE側で誤りを補正してくれるので開発者が気を遣う必要がなくなり、これによってタグの不適切なネスティング(例:<b><p>Header</b></p>)問題が生じることとなった。

Internet Explorerのシェアは着実に大きくなり、Netscapeおよびマイクロソフトからはともに細かな改訂版がリリースされ続け、両ブラウザは徐々に別物となっていって利用者の側も両陣営に分かれていくこととなった。そこで以前はRFCの形で行われていたHTML仕様確定への動きがブラウザの互換性を保ち、かつ両陣営がそれまでに発表した新機能を正式に統合することが期待された。しばしばNetscapeおよびExplorerの両陣営が実装する新機能について、どちらがより正しく行っているのか大きな議論になることもあった。たとえばNetscapeとExplorerはイメージマップについて全く異なるアプローチを採用し、相互に互換性はなかった。またマイクロソフトは<top> や <bottom>など、ページ内の特定部分を指すHTMLタグを勝手に作ってしまうこともあった(これは後にNetscapeの非常に使いにくいframesetタグへと繋がった)。

ここでの問題は、新機能が勝手に野に放たれてしまったことではなく、マーケットシェア維持のためないしはウェブ界での主導権を維持するために、独自の実装を続ける2つの競合プロダクトが存在したことだ。最終的にNetscapeとマイクロソフトの両者はHTML 3.0を正しく実装することを放棄してしまう。たとえば、その際のNetscape側の言い分はこちら

NetscapeはHTML 3.0をサポートし続けます。そのために安定的なものであれば提案段階のものも近々承認されることを見越して実装しています。Netscape Navigator 2.0は、一般向けのどのクライアントよりもHTML 3.0仕様を広くサポートしているはずです。

加えて、Netscape Navigatorには現行のHTML 3.0仕様には含まれていない新たなHTMLの機能分野についても、多く組み込んでいます。それらの機能は当然に必要なもので、標準化作業においてもそれらの機能が含まれるように提案を行っていきます。

マイクロソフトはHTMLの実装面では遅れを取っていた。

Netscapeはブラウザ市場で事実上の独占状態(ある調査によればシェアは90%)にあり、非公式ないし「拡張した」HTMLタグを採用することによりその地位を確固たるものにしようとしている。結果としてウェブページにはNavigatorで見ないとわけのわからない記号にしか見えないようなものが増えている。他のブラウザがNetscapeのタグに対応する前に、さらに独自のタグを加えていってしまう。

しかしこの状態は長くは続かなかった。マイクロソフトはこの手の競争に飽きてしまい、次のリリースではHTMLについて言及もせず、マイクロソフトの独自技術によって構築されたウェブを紹介している。

マイクロソフトのInternet Explorer 3.0はActiveX™技術を組み込んだ最初のインターネットクライアントで、インターネット上でよりインタラクティブなアプリケーション及びコンテンツを作成することができる。この技術を利用することでWorld Wide Webサイトをアクションゲームやマルチメディア百科事典、あるいは生産性アプリケーションのように優れたインタフェースを持つ、インタラクティブなものにすることができるのだ。ウェブサイトにも技術による制約から逃れ、制作者の想像力によってのみ制限を受ける時代がやってきた。

ブラウザ戦争はその初期段階において、HTMLタグのサポートを云々するところからから、優れたインタフェースを持つクライアントサイドアプリケーションを構築するフォーマットや言語を巡る争いへと移っていった。1996年8月に発表されるInternet Explorer 3.0に伴うJavascript(Netscape所有のクライアントサイドのスクリプト言語)とActiveX(マイクロソフト所有のオブジェクトコンテナ)間の争いもすぐそこまで来ていた。

マイクロソフトがブラウザ戦争に勝利し、またいったいどのように勝利したのかという興味深い話は歴史に残っている。ウェブの世界は大きく2つに分かれ、その波及効果として数千もの開発者がクロスブラウザの技やライブラリを生み出すのに膨大な時間をかけるという時代が十年以上続いた。マイクロソフトがブラウザ市場における支配権を徐々に確立し、ウェブアプリケーションの構築に独自技術を用いた多階層モデルを提唱したりもしたが、より簡単なHTML、JavascriptおよびCSSが勝利を収め、Web 2.0はActiveXの天下とはならなかった。

それから10年、駆け足レビュー

Netscapeが消えFirefoxへ引き継がれるという流れの中、ウェブ界での戦争はブラウザに限られたものではなくなり、新しいウェブプラットフォーム及びウェブ技術全体に広がるものとなった。ある調査によればInternet Explorerのシェアは78%への低下傾向を刻んでおり(2004年には95%だった)、Firefoxが16%、そしてSafari、Opera、その他が残りの6%を分け合っている。HTML 4.01は1999年12月に公表され、ISO標準ともなって主力ブラウザもこれをサポートした。HTML 4.01は現在にいたるまで質量面ともにもっともサポートされたHTML標準だが、論点はCSSやDOMアクセス等、ウェブ技術層の他の面に移ってきている。

数千ものウェブアプリケーションが、Web 2.0の名の下で、HTML、CSS、XMLを利用して構築されている。この3つの組み合わせは一般的にAjaxと呼ばれる(皮肉なことにAjaxのaとxの部分はxmlhttprequestにおけるInternet Explorerのアドオンとしてスタートしたものだった)。Ajaxアプリケーションは、すぐに現在の技術的限界に到達してしまったが、デスクトップアプリケーションとウェブアプリケーションのギャップを埋めるものだった。そしてAdobeのFlashやマイクロソフトSilverlight等、いくつものベンダーがブラウザの上位レイヤーに位置するウェブクライアントのプラットフォームを提供し始め、開発者にもウェブアプリケーション開発用の、デスクトップアプリケーション並のインタフェースを備える開発環境を提供し始めた。これら新たなプラットフォームは既存ブラウザにプラグインを追加することで動作し、これら商用ソリューションが採用され始める中、現在のところはAjax以降を見据えたオープンソースやオープンな標準は生まれていない。

W3によるHTML5の進捗の遅れに苛立ち、ブラウザ開発グループはW3とは別に仕様策定を目指すWHATWGを立ち上げた。HTML5の最初のミッションは、ウェブの現状が最初にHTMLの仕様を定めたときとは大いに異なり、非常に複雑なインタフェースを実装し、さらに複雑なシステムの機能を利用できるようになっていることを認識することだ(Flex/FlashはMXMLを利用し、SilverlightはXAMLを利用している)。HTML5の新しい仕様を作成するのではなく、CSS2やDOM5、ECMAv4や新しいAPIコール(ローカルのブラウザストレージ関連等)などを含めて定義することを示すため、仕様はWeb Applications 1.0と名付けられた。

WHATWGワーキンググループの仕様は結果的(4年後)にW3に統合され、マイクロソフトも再び加わることとなった。Ajax後のリッチウェブアプリケーションプラットフォームを求める開発者に、取りあえずしばらくの間はマイクロソフト陣営にもAdobe陣営にも加わないで済む可能性を提供することになった。HTML5仕様策定の歩みは相変わらず遅々としており、マイクロソフトやAdobeによる独占に警戒感を持ったGoogleGearsの開発に踏み切った。Gearsは現状のブラウザにHTML5風の機能を持たせるためのGoogle流のやり方だ。そしてGmailReaderに新たなAPIコールを順次実装することで、Gearsの普及を試みている。

Appleもインターネット上のリッチアプリケーションを実装するためにHTML5に代わるオープン技術を採用している。数年前までAppleのホームページにいくとFlashとPDFファイルばかりが目に付いた。しかし現在は自身でオープンスタンダードのSafariブラウザを所有し、Webkitというオープンスタンダード技術を採用しようとしている。またウェブサイトやアプリケーションで独占的技術であるFlash等に代えてAjaxの利用を推進し始めてもいる。

1996年に戻って、HTML5がHTML 3.0の繰り返しであることを見てきた。しかし今回は2つのブラウザベンダーの争いではなく、非常に多くの人々が新たなAPIや仮想マシンの行く末に注目している。1990年代の争いでは、最終的にはオープンスタンダードが勝利を収めた。それでマイクロソフト及びAdobeの双方ともプラットフォームの一部分についてはソースコードやAPIの詳細を公開するようになっている。

ウェブの歴史を振り返ると、勝者は通常ひとりだけであることを教えてくれる。勝利をおさめたひとつが標準となり、徐々にユーザを集めて標準としての地位を獲得する(今日のいわゆる標準の多くが、最初は独占的技術であったことを思い起こして欲しい)。Windowsオペレーティングシステムが標準の地位を占めることと、HTML5のようなオープンスタンダードが標準として存在することの間には大きな違いがある。GoogleやAppleはWindows的標準の再来をもっとも恐れているのだ。

current-web-tech

前回のローカルなブラウザストレージに関する次世代ウェブの記事はこちら

原文へ

(翻訳:Maeda, H)