2013-02-17

mozilla.orgのブログより、ブラウザー戦争、ゲーム

Browser Wars, the game « Fink @ Mozilla

先日、OperaがWebkitに移行することを発表した。これにより、ブラウザーのシェアは事実上、Firefox(Gecko)か、webkit系ブラウザーに二分されることになる。IEはすぐに死亡するので考えなくて良い。log.mozilla.orgのブログで、このままWebkitがシェアを独占した場合の危険性について書いている。

単一文化は、短期的には優れている。労力を集中させることができるし(みんな同じことに対して働く!)、今日動くリッチなWebアプリを書きたければ、(つまり、今日のブラウザーで動くやつを書きたければ)、状況はだいぶマシになる。

しかし、Webとはプラットフォームである。プラットフォームは、また違った厄介者なのだ。

今、モバイルWebがすべてWebkitになったとする。何が起こるか考えてみよう。

下位バグ互換: ここにひとつのバグがあるとする。幅長が素数の背景SVGイメージは、半透明が無効になるというものだとする。一年後、7328件のWebサイトがこのバグに依存するようになる。誰かが直しました。Webサイトが開発版ビルドでぶっ壊れました。修正は取り消され、単に警告がログに出るだけになる。何も壊れません、世界はWebkitが牛耳ってます、誰も気にしやしません。こうして、バグは今や、Webプラットフォームの仕様となったのであります。

イノベーションの阻害: あるハッカー集団が、2018年のラップトップでは当たり前になっている100コアを効率良く使う新しいブラウザーを開発した。旧態依然のブラウザーは、タブひとつにつきひとつのCPUを使い尽くすのとはえらい違いだ。これは完全な再設計であり、彼らのすんばらしい働きにより、世の中の99%のWebサイトをサポートしている。いや、98%にしよう。さて、Webkitがちょうど新機能を公開したので、皆がただちに製品のWebサイトに使い始めた(使わない理由なんてないだろ?)。おっと、サポート率90%にダウン。あるWebkitのバグは、対処したくないほど汚らしいバグであり、新ブラウザーのスレッド実装では動かない。なんじゃこりゃ? 80%だと? 何が起こってるッ! 急げ、このままだとどんどんサポート率が下がるぞッ!

このハッカー集団はとうとう諦めて、かわりに、求人サイトとか小鳥さんSNSとか、セキュリティ研究者とかに成り下がる。というわけでハッカーは今や、「ともだちんこぶぁい」とか言ってる。

不適切な支配:ある者が複数のストリームを使ってDJアプリを実装できるような同期APIを開発した。Appleの音楽スタジオパートナーは恐れをなし、実現を防ぐため、ブラウザーに付け加えたり、付け加えるforkをだそうとするもの全員に、根拠のない脅しの手紙を送りつける。

複雑化: 標準団体はもはやその目的を失い、死んでいく。いままでに出来なかったことを可能にする新機能はすばらしい。新機能の花が咲き誇る。ある花は他の花の上に咲く。Webサイトごとにてんでばらばらの機能を使う。機能のいくつかは保守しにくいので、カネをたっぷり持っている大企業が依存しているのでなければ、生き残れない。Web開発者は、現在の市場とユーザーの状況から、どの新機能が生き残るかというギャンブルを余儀なくされる。

混乱: CSSセレクターには多くの落とし穴がある。多くのチュートリアルでも言及されているし、regression test suiteにも入っている。そうそう、それとこれと'~'オペレーターを一緒に使えば、最初のはクラスのある要素にしか適用されないよ。規格書をみても乗ってないぜ。なぜなら、この数年アップデートされていないからだ。みんな調べるよりまず書いて試すしね。規格を更新する責任者は、いまCSS5にかかりっきりだよ。第一、規格書なんてyoutubeでチュートリアルをみれないやつのためにあるもんだろ? だろ?

ゲームクリア: Webは今や、2013年よりはるかに発達した。昨日、発売されたばかりのAppleのハードウェアの新機能も完璧にサポートしてるよ!(去年発売された時代遅れの大昔のパッド(笑)を持ってるなら、さっさとアップグレードしとけよ)。問題を実装する方法はいくつもある。そのうちのいくつかには、なんとまともに動くものもある。一部のwebkitベースのブラウザー限定だけどね。何が何なのか把握するのは難しい。期待通りに動かないことがあったしても、規格書はそこまで詳細を規定しているわけではないし、実装とて何も保証していないのだから。まあ、なんだね。ネイティブAPIはそれなりにドキュメント化されていて、上位互換なんだから、同じアプリをそれぞれのプラットフォーム向けに何度かネイティブに書きなおすのなんてそれほど苦でもないだろ。

これは、皆がWebkitを標準するから起こるのだろうか。否、皆が使うシリコンやTCPも同じだ。あるものが安定していれば、単一文化でも問題はない。まあ、大半は。TCPにもほころびがではじめているとはいえ。この憂慮は、複数のまともな解決方法があり、素早く進化し、今までにない分野にも進出し、実際のアプリからどのように使われるかわからないようなレイヤーに限定された問題であり、複数の独立した存在によって対処されるべきであるのだ。

No comments: