2013-05-02

Blink、新機能に対して新たなベンダープレフィクスを追加しない決定

Blink and the end of vendor prefixes | NCZOnline

Developer FAQ - The Chromium Projects
Blink - The Chromium Projects

Webkitからたもとを分かったBlinkは、Mozillaの方針に近い、新機能に対して新たなベンダープレフィクスを追加しない決定をした。これだけでもforkしたかいがあるというものだ。

ベンダープレフィクスとは、実験的実装のCSSプロパティを使うには、ブラウザーベンダー特有のプレフィクスの記述を要求することである。たとえば、border-radiusだ。

<p style="border : solid 1em red ; border-radius : 2em ; padding : 1em ;">
この文章は1emのサイズのボーダーで囲まれ、四隅は半径2emの弧を描く。
</p>

と書けば、以下のように表示される。

この文章は1emのサイズのボーダーで囲まれ、四隅は半径2emの弧を描く。

ただし、まだ実験的な実装のブラウザーは、ベンダープレフィクスを要求する。ベンダープレフィクスはブラウザーごとに違うので、現在メジャーなブラウザー全てに対応するのならば、以下のように書かなければならない。

-webkit-border-radius : 1em ;
-moz-border-radius : 1em ;
border-radius : 1em ;

もし、IEやOperaも対応している実験的な実装のCSSプロパティも使いたければ、-ms-とか-o-などのように書かなけれならない。馬鹿馬鹿しいにもほどがあるし、有害である。

ブラウザーベンダーの言い分としては、まだ実装が完全ではなく、今の挙動に依存されてもらっては困るので、安全のためにベンダープレフィクスを使っているということだ。しかし、実態は、非推奨の利用にも関わらず、多くの製品に利用されおり、末端ユーザーのブラウザーで表示させている。実際に動くのだから使わない手はない。

Blinkの新しい方針は、新しい実験的機能はベンダープレフィクスを使うのではなく、about:flagsで有効、無効を切り替えるものになるそうだ。もちろんそうすべきだ。

ブラウザーベンダーが新機能をろくな設計や検証もせず、詳細な仕様を公開せず、他のブラウザーベンダーとも協議せずに、とにかく他所に負けじと競って実装していたブラウザー戦争の時代は終わった。戦争時代の技術的に間違った遺物は終わらせなければならない。

さて、あとは単一文化への危機だ。webkitがforkでも、単一文化の危機は去らない。今後、webkitはApple製品専用になり、従来のwebkitの地位はBlinkが占め、Gecko(Firefox)は独立を保つことになるだろう。まだまだ望ましくない寡占状態だ。

No comments: