私たち -このマニフェストへの署名者- は、 Web 標準化団体が新しい機能の追加やその優先順位を決めるために取ってきた、旧来の方法を変えるべきだと主張します。これは、これから先の長い期間に渡って、 Web が健全であるために必要なことだと考えているからです。
第一の目標は、Web 標準仕様のエディタと Web 開発者の間で、しっかりとフィードバックのループがまわることです。 標準化が発展していくモデルとして、手順を重視しトップダウンで決定するモデルよりも、多くの有能な開発者によって駆動するモデルを選びます。
ブラウザベンダは、基盤となるプラットフォームが持つ可能性を、低レベルの機能としてできる限り提供すべきです。 新しい高レベル API を JavaScript による実装をもとに議論できるように、土台を提供すべきです(すでに Mozilla の X-Tags や Google の Polymer で行われています)。 これにより、開発者は標準化に参加可能になり、ブラウザの外で議論が繰り返されることで、粗悪な API が定義されるのを防ぎます。
特に、 Extensible Web プラットフォームに対して、以下の方針を提唱します
- 標準化プロセスは、 Web プラットフォームに対するセキュアで効果的な 新しい低レベルな機能 の策定に注力すべきです。
- Web プラットフォームは、 HTML や CSS などの 既存の特徴を説明 する低レベルな機能を提供することで、開発者がそれを理解し再現することが可能となるようにすべきです。
- Web プラットフォームは、開発者が新しい高レベル API の開発・表現・テストを JavaScript で行い、それが標準化される前にくりかえし行えるようにすべきです。これは、 価値のあるサイクル を仕様策定者と開発者の間にもたらします。
- 標準化プロセスは、これらの方針に従って 優先順位づけ をすべきであり、そうなっていないものは、優先度を見直すべきです。
新しい低レベルな機能, の仕様化にフォーカスし、その観点から新しい機能を実装することで、
- 新しいセキュリティの問題を抑制することができます。
- ブラウザエンジンが、これから追加する API に影響するような、コア部分の最適化に注力できます。これにより、小さい実装コストで、より良いパフォーマンスを得ることに繋がります。
- ブラウザベンダとライブラリ作者が、開発者のニーズにあった高レベル API としてのライブラリの開発を行えるようになります。
低レベルな機能の視点から, 既存の機能とこれから追加される新しい特徴を説明することは
- 実装の複雑さの低減や、バグの減少に貢献します。
- より多くの新機能のポリフィルを可能にします。
- 新しい機能についての学習コストを減らします。学習に必要なコンテンツも、すでにプラットフォームにあるコンセプトをもとに作り直すことができます。
新しい機能の理解を簡単にし、それらをポリフィルすることは 価値のあるサイクル をまわします。
- 開発者は新しい API をより早く試し、仕様が固まる前にプラットフォームに対してフィードバックを送ることができます。
- API を利用する開発者や、ライブラリを提供する作者によって、 API のミスはよりすばやく洗い出され、適切で重要なフィードバックをブラウザベンダやプラットフォームのデザイナに提供することができます。
- ライブラリの作者は、新しい API を用いて知見をため、プラットフォームが進むべき道を示すことができます。
以下の方針に基づいて 優先順位づけ することで、
- (特に短期間の)標準化プロセスを解放し、セキュリティやパフォーマンスへの懸念や、新しいハードウェアなどプラットフォームレベルでしか追加しえない機能の標準化に注力できます。
- Web 開発者とブラウザ由来のライブラリが、コストのかかる調査を主導できます。
- すでに実世界で、実装され意味を成している新しい API があることで、長期に渡る標準化プロセスをシンプルかつ効率化します。
もっと開発者がコードを書いて欲しいと考えています。それは、新しい形式を取り入れる上での標準化のボトルネックを取り除き、ライブラリとフレームワークの作者に、開発のために必要なツールを提供します。
オープンな Web がそれを取りまく競合と競うためには、 Web 開発者の良いアイデアを、Web のインフラの一部とするためのはっきりとした手段が必要です。
このマニフェストに賛同する人々
Brendan Eich
CTO and SVP Engineering, Mozilla; Creator of JavaScriptYehuda Katz
Member, TC39, W3C TAG; Core Team, Ember.js, RailsAlex Russell
Member, TC39, W3C TAG; Google Chrome TeamBrian Kardell
Chair, Extensible Web Community Group, W3CFrançois REMY
Co-founder, Extensible Web Community Group, W3CClint Hill
Co-founder, Extensible Web Community Group, W3CMarcos Caceres
Co-founder, Extensible Web Community Group, W3CTom Dale
Core Team, Ember.jsAnne van Kesteren
Editor of standards, Architecture Astronaut at MozillaSam Tobin-Hochstadt
Member, TC39Domenic Denicola
Co-Editor, Promises/A+Chris Eppstein
Maintainer, SassDave Herman
Mozilla Research and TC39Alan Stearns
Member, CSSWGRick Waldron
Member, TC39; Core Team, jQuery, BocoupPaul Irish
GoogleTed Han
Lead Developer, DocumentCloudTab Atkins
Member, CSS WG; GoogleDan Appelquist
Co-Chair, W3C TAG, Open Web Advocate, TelefónicaIsaac Schlueter
Maintainer, Node.jsAllen Wirfs-Brock
Mozilla Research Fellow, TC39 Member, Editor of The ECMAScript Specification
関連エントリ
- Extend the Web Forward, by Yehuda Katz, このアイデアの詳細を解説したエントリ
- An Extensible Approach to Browser Security Policy, by Yehuda Katz, これらの方法を実践したアプリケーションとして、ブラウザの Content Security Policy の API デザインについての問題についての解説。
- Dropping the F-Bomb on Web Standards, by Brian Kardell, 開発者のコミュニティから出たアイデアや言語を、相互接続可能な標準にどう取り込むかについての実践的な議論。
- Bedrock, by Alex Russell, 2012年に、拡張可能な("レイヤリングされた")デザインにもとづくプラットフォームに関する、知見と哲学の詳細な調査。
- How the Web Should Work, by Boris Smus, 実際に動作する "forward polyfills" (もしくは prollyfills) についての 2012 年の解説。