岩瀬 義昌

開発者によるWeb標準化を可能とする「Extensible Web」とは?

Extensible Webとは?

W3Cの標準化担当者・Web開発者が支持を表名している、「Extensible Web」という概念をご存知でしょうか? Extensible Webとは、一言で表すと、標準化組織であるW3Cとブラウザベンダだけでなく、 Web開発者も巻き込んでWebの未来を拡張していこう、という考え方のことです。

本記事では、Extensible Webの登場背景、その内容について紹介いたします。

登場の背景

これまでのWebの新機能は、長い年月をかけてブラウザベンダによって開発されてきました。 そのため、多くの場合、Web開発者がブラウザへフィードバックをするには、 まずブラウザ側の機能実装を待つ必要がありました。

しかし近年、Webの開発者が先導して、ブラウザの新機能へ影響を与えるケースが出てきています。 例えば、querySelector や、Object.observe が具体例です。 これらの例は、以下のフィードバックループによって生まれてきています:

  1. Web開発者が自身が必要とするユースケースに沿ってAPI(ライブラリ)をデザインする
  2. Web開発者は、他の開発者が作成するAPIと切磋琢磨し、自身のAPIを洗練させていく
  3. 洗練されたAPIの中から、ブラウザが実装すべき基本的な機能が抽出される(ブラウザがNativeに実装すればパフォーマンスが向上し、かつライブラリのコードも小さくできる)

Webに本当に必要な機能を生み出すためには、 上記のように、ユースケースに沿った実践的なフィードバックループを回すことが重要です。

既にこのプロセスはWeb標準化にも取り込まれています。例をあげると、

ライブラリ例標準化された例
jQueryquerySelector
Ember, AngularJSObject.observe
Sass, LessCSS Variables

といったところが代表的でしょう。例えば、セレクタを用いたDOM操作は jQuery で実践的に有効性が示され、querySelectorとして標準化されました。これにより、jQueryのパフォーマンスは向上し、さらに Zepto.js のような軽量化ライブラリが登場・・・といったWebの好循環を起こしました。

一方、ユースケースの考慮が浅いまま実装されてしまったAPIは、 結果的に実践にそぐわず、憂き目にあってしまうケースが多々見受けられます。(その代表的な例が、Application Cache です)

これまで説明してきたフィードバックループを、 Webを構成するHTML・CSS・JS等の様々な分野で更に展開できるといいのですが、 現在のWebを取り巻く環境では限界があります。なぜならば、
 「Web開発者が、拡張(extend)できるポイントが少ない」
ためです。 例えば、CSSの構文を拡張するのは、既存の拡張ポイント(API)では困難であるため、 そもそもフィードバックループを回しはじめることが出来ません。

Extensible Web Manifest

もし、Web開発者が拡張できるポイントが多くあれば、 言い換えれば、低レベルのAPIがWeb開発者に公開されるとしたら、どうなるでしょうか? Web開発者が実際に必要とするケースに沿って、 さらに多くのAPIやライブラリを開発できるようになります。

このような考え方は、Extensible Web Manifestoにまとめられています。

Extensible Web Manifesto Screen Capture

Extensible Web Manifesto

Extensible Web Manifestoでは、ExtensibleなWebのプラットフォームの設計原理として、 以下の点を提言しています:

(Extensible Web Manifestoより抜粋、意訳)

Focus on adding new low-level capabilities to the web platform that are secure and efficient.

安全で効率的な、新たな低レベル機能をWebのプラットフォームに追加する

Expose low-level capabilities that explain existing features, such as HTML and CSS, allowing authors to understand and replicate them.

既存の機能(HTMLやCSS)が、これら低レベル機能によりどのように実装されるかを示すことで、開発者の理解を促進し、複製を可能とする

Develop, describe and test new high-level features in JavaScript, and allow web developers to iterate on them before they become standardized. This creates a virtuous cycle between standards and developers.

新機能の開発、表現、テストをJavascriptで実施し、標準化の前にWeb開発者が参画できるようにする。これにより、Web開発者と標準化担当者の間で素晴らしいサイクルが実現される

Prioritize efforts that follow these recommendations and deprioritize and refocus those which do not.

上記のような提言に沿った取組みの優先度を高くし、そうでないものは優先度を低くするか、もう一度フォーカスを練り直す

原典ではそれぞれの項目について、更に詳細な記載がありますので、興味のある方は参照ください。

Extensible Webの今後

Extensible Web Manifestoは、標準化団体であるW3C・各種ブラウザベンダ(Google, Mozilla等)・著名ライブラリの開発者が支持を表明しており、今後より具体化していくことが期待されます。

具体的な活動の一部として、フェイスツーフェイスのミーティングも既に開催されています。 そこで次回の記事では、2014年9月11日にドイツ ベルリンで開催された Extensible Web Summit の議論模様を紹介いたします。

Powered byNTT Communications

tag list

アクセシビリティ イベント エンタープライズ デザイン ハイブリッド パフォーマンス ブラウザ プログラミング マークアップ モバイル 海外 高速化 Angular2 AngularJS Canvas Chrome Cordova CSS de:code ECMAScript Edge Firefox Google Google I/O Google I/O 2014 HTML5 Conference 2013 html5j IoT JavaScript Microsoft Node.js PhoneGap Polymer SkyWay spdy TypeScript UI UX W3C W3C仕様 Webアプリ Web Components WebGL WebRTC WebSocket