実装が先か、仕様が先か
W3C Q&A Weblogの“W3C Open Web Standards”にて、「実装ありき」と「仕様ありき」という、二つの標準化プロセスについて説明されています。
実装ありきのWeb標準
マーケットシェアを獲得するため、ある企業が独自に技術を開発することは少なくありません。これに対し、他のベンダーは競合する技術を開発したり、(時にはリバースエンジニアリングも行い)そのベンダーの仕様を実装するといった例があります。
独自拡張によって競争が激化するのではないかという憂慮もありますが、たとえば、Appleが開発し現在はHTML5の一部である<canvas>
や、Microsoftにより開発され、今ではインタラクティブなWebアプリケーションで標準的に使われるXMLHttpRequest
など、独自拡張からスタートしたWeb標準も存在します。
元がベンダー固有の拡張であったとしても、それがオープンな場で議論されることで、これら二つのように広く受け入れられるようになります。
仕様ありきのWeb標準
マーケットのニーズやベンダーからの要請により、仕様をまず策定し、ベンダーに実装を呼びかけるものもあります。W3Cのプロセスは間に実装からのフィードバックを受ける期間を設けているものの、基本的には仕様ありきで策定が進んでいきます。XMLやCSSなどは、広く受け入れられた仕様ありきのWeb標準の好例でしょう。
仕様ありきのWeb標準は、アーキテクチャの構成や、関連する技術との兼ね合いについて策定段階から検討を重ねることができる利点があります。反面、仕様が充分に固まるまで実装がスタートしないことから、策定に時間がかかってしまうという問題も存在しています。
HTML、XHTMLのプロセス
これら二つのプロセスと、HTML、XHTMLとの関連を考えてみました。
HTMLについては、独自拡張により誕生された要素を規格化するという流れで成立した経緯があることから、実装ありきの流れであるように感じます。HTML5についても、ブラウザーベンダーにより組織されたWHATWGの案が元になっていることから、実装主導の流れでしょう。先に述べた<canvas>
や、getElementsByClassName
などは多くのブラウザーで実装が進んでいます。
ただし、<section>
などの新しい要素や、いくつかのインターフェースについては実装が行われていないことから、仕様ありきの側面も一部持っているといえるでしょう。
一方、XHTMLはXMLの枠組みで定義されることもあり、仕様ありきと言えるでしょう。ModularizationをベースとしたXHTML 1.1以降の流れは、XMLの拡張性や組み合わせを意識した構成となっています。
反面、「XMLの傘」という側面が災いしてか、実装においてはそこまで熱心に進められていないようです。またXHTML 2.0などの次世代仕様についても、策定開始から数年を経てもなお、草案段階にあります。XHTMLのニーズや効果が見出せないといった現状も、仕様策定に影響しているのでしょう。
実装主導による技術の規格化は、構文のデザインなどがスマートではないことや、「動くから良い」という姿勢にとられることに対して、あまり良い印象を持たない方がいるようです。
しかし、広く使われている技術や慣習を許容することで「正しい」コンテンツが増えていくのであれば、実装ありきの標準化というプロセスにも意味があるのではないでしょうか。
とはいえ、かつてのブラウザー戦争のように、ベンダー固有の規格が乱立し競合するという事態になっては元も子もありません。ユーザーやマーケットのニーズをきちんととらえ、オープンに議論する場を設けることが、今後のWeb標準を策定していく上で重要になると考えています。