Microsoft EdgeのChromium化のアナウンスについて思うこと

disclaimer: 本記事は筆者の所属する組織と関係が深い話題ではありますが、あくまで個人の意見・感想を述べたもので、所属する組織の意見ではありません。

Microsoftが実装・提供するウェブブラウザであるMicrosoft Edge(デスクトップ版)が、Chromiumベースになるというアナウンスが下記ドキュメントにて公式に公開されました。

We will adopt Chromium as the web platform for Microsoft Edge desktop. Our desire here is to align Microsoft Edge’s web platform both (a) with web standards and (b) with other Chromium-based browsers, for improved compatibility and a simpler test-matrix for developers.

このアナウンスに関して多くの人がその是非を書いていますが、その中でいくつか気になる発言があり、それに対していくつかツイートしました。

ただ思ったことを書いたのですが、思ったよりも多くの反応を頂いたので驚きました。矢倉さんの記事大関さんの記事にすでに詳しく書いてあるので蛇足にはなりますが、誤解のないよう自分が考えたこと・感じたことをこの文章で補足しようと思います。

以下つらつらと書いていますが、すべてはMicrosoft EdgeがChromiumベースに移行することに対する個人的な寂しさから来るものです。

前提の話

以下本文ではMicrosoft EdgeがChromiumベースになる(独自エンジンの開発を停止するものと想定)し、それによって標準化プロセスに影響がでたり、多様性が失われるという話を書いています。

私がそうした懸念をする一方で、近年のMicrosoftの標準化団体での活動やMicrosoft Edgeのシェアを見ると、Microsoft Edgeが独自エンジンでなくなったとしても影響は出ないという人もいます。

これらはそれぞれ「将来の可能性の予測」と「ここ数年と現状の評価」なので両立する意見だと思います。

少なくともInternet ExplorerとNetscapeが覇権を争っていた時代にMicrosoftがHTMLに対して行った貢献は大きいですし、CSSにはMicrosoft Word由来の属性も多く取り込まれています。

そのMicrosoftが標準との相互運用性を謳ってInternet Explorerの開発を辞め、Microsoft EgdeをWindowsの標準ブラウザとしたときには、ブラウザの開発を今後のウェブ標準への貢献を強めるために行うという意図も少なからずあったのではないでしょうか。Microsoftのプロプライエタリな技術であるActiveXやSilverlightの対応をしなかったことから、私はそう受け取りました。

ウェブ標準の仕様がこれだけ増えた今、ブラウザエンジンを一からやり直すというのはOSの再開発に等しいプロジェクトです。当然開発コストが莫大にかかるものですし、直接収益を回収できる製品ではないので、今回の決断はビジネス的な決定だと思うのですが、開発チームは志半ばだったのではないでしょうか。

そうした経緯や推測を踏まえた上での私の気持ちが以下です。

標準への影響

Microsoft Edgeが「Chromiumベースになる」ということの意味は、文字通り受け取るのであれば、「自前実装のレンダリングエンジンとJavaScriptエンジンを置き換える」ということであると考えられます。

WHATWGやW3Cといったウェブの標準化に関わる団体に影響を持った企業が、独自エンジンの実装を諦める決定をするということが持つことの意味は、たとえばW3Cの標準化プロセスに垣間見ることができます。

「6.2.4 Implementation Experience」を引用します。

While no exhaustive list of requirements is provided here, when assessing that there is adequate implementation experience the Director will consider (though not be limited to):
* is each feature of the current specification implemented, and how is this demonstrated?
* are there independent interoperable implementations of the current specification?
* are there implementations created by people other than the authors of the specification?
* are implementations publicly deployed?
* is there implementation experience at all levels of the specification’s ecosystem (authoring, consuming, publishing…)?
* are there reports of difficulties or problems with implementation?

ここに書いてあるのは、標準に採用するにあたって考慮すべき要件の例であって、これがすべてではありませんが、それでも3つめの項目として「仕様を提案した者以外の実装が存在すること」を判断基準とする旨が記載されています。

ここ10年位の話ではありますが、代表的なデスクトップブラウザとしては、Safari (Apple)、Google Chrome/Chromium (Google)、Internet Explorer/Microsoft Edge (Microsoft)、Mozilla Firefox (Mozilla)、Opera (Opera Software) が挙げられていました。

しかし、OperaがJavaScriptエンジンのCarakanとレンダリングエンジンのPrestoの開発を2013年に停止し、Chromiumベースに移行しています。さらに今回のMicrosoft Edgeの発表です。独立してデスクトップブラウザを開発している代表的な企業が、Apple、Google、Mozillaに絞られた形になります。

先の標準化に際した考慮すべき事項を考えると、この3社のうちのどれか2社が実装を行わなければ採択が難しい状況です。実際に、上記の発表のあと、Mozillaが声明を発表しています。

1行目から、その気持ちの強さが伺いしれます。

Microsoft is officially giving up on an independent shared platform for the internet. By adopting Chromium, Microsoft hands over control of even more of online life to Google.

(拙訳:Microsoftは独立したインターネットのための共有プラットフォームを公式に断念しようとしています。MicrosoftはChromiumを採用することで、より多くのインターネットへの影響力をGoogleに明け渡すことになります。)

見出し以下、本文ではかなり強い懸念を示しているわけですが、その中の一文に関して言えば、私は大げさだとは思いませんでした。

That’s what happened when Microsoft had a monopoly on browsers in the early 2000s before Firefox was released. And it could happen again.

参照実装が減るということは、単純にW3Cの採択プロセスに影響があるというだけでなく、他の標準に対しても影響があります。たとえばIETFが管理するRFCなんかはその良い例です。

ブラウザは、ただHTMLやCSSを解釈してDOMをレンダリングしたり、JavaScriptを解釈して実行すれば良い、というだけでなく、通信の高速化や新しい伝送方法を実験するために新しいプロトコルや圧縮方法を試験的に実装しています。

これらはブラウザが単純にウェブアプリケーションを動作させるためのプラットフォームとしてだけでなく、ネイティブアプリやサーバーアプリも含めて、世界中で最も普及した通信クライアントという側面から実験に利用されているわけです。実際HTTP/3やWebRTCはブラウザ以外にも影響を与えるプロトコルやAPI群です。

こうした実験を大々的に行えるのはブラウザベンダーかつ大きな自社サービスを展開している企業の特権でしょう。Microsoftは世界的に見ても数少ないそれに当てはまる企業でしたが、Microsoft Edgeの中核をなすモジュールを自社開発のものではなくすということは、少なからずそうした試みは以前よりも難しいものになるでしょう。

多様性について

誰だってウェブサイトやウェブアプリケーションを苦労して作りたいとは思わないでしょう。簡単に作れるに越したことはありません。しかし、簡単にできるからということで、ブラウザの実装が減ることは良いことなのでしょうか。

フロントエンドエンジニアが、ブラウザの実装の差異から生じる挙動の違いによって、過去に多くの苦労をしてきたことは十分承知です。そして成長したプラットフォームの多くの機能によって、ウェブアプリケーションを作ること自体が複雑になっていることは確かです。ブラウザ実装が減ることで、気にすべき違いが減り、実装がしやすくなるかもしれません。

「多様性」はブラウザエンジンは共通のものを使いつつも、ユーザーが使うUIは別のものにするというだけ十分である、という意見もあるでしょう。(eg. Google ChromeとVivaldi)

しかし、それは本当に良いことなのでしょうか。

筆者はウェブの良さとは「誰もが所有していないし誰もが所有している」という相互作用ではないかと考えています。どんなにシェアが大きいブラウザがある機能を実装しても、他のブラウザがその導入を行わないという判断を下すことで議論が始まり、そこからさらに標準化に関する議論に発展していくという流れが機能していることで、統制が取られている部分があります。例えばWeb Components v0→v1の際にHTML Importsが見送られ、ES Modulesに着地したという経緯はMozillaやAppleによる発言が大きいでしょう。

仕様を決定するという観点での「多様性」は、「ある一つの問題を解決するにあたり複数の解決策を提示できる」というところに意味があるのではないでしょうか。

もちろん、MicrosoftがChromiumに対し独自にパッチを当てて実験をすれば良いだけの話ではありますが、他者に依存せず、独自の方針をもって開発ができるプロダクトではなくなったという印象が強いです。

今後の期待

Chromiumは今回の発表内容が動き出すとともに、ますます大きなプラットフォームになっていきます。Chromiumチームの責任は大きくなる一方ですが、同時に今回の動きを経てMicrosoft Edgeチームが、Chromiumチームと協力していきながら、先に挙げたような多様性をいかに確保していくのかに注目しています。

また、今回はデスクトップブラウザの話を中心として書きましたが、すでに使用率を基準にして言えば、モバイルブラウザのシェアのほうが大きい時代です。こちらもブラウザで言えばUC BrowserやSamsung Internetなど、アジア企業を中心とした新しい動きが起きています。またブラウザだけでなくWeChat Mini Programのような多くのユーザーを抱えるブラウザ以外のウェブ関連プラットフォームも発展してきています。こうした企業がウェブ標準にどう関わってくるのかも楽しみです。

繰り返しになりますが、ウェブの良いところは1企業によらない、世界中を巻き込んだ大きなうねりによって成り立っているところだと思います。登場人物が複数いるなかで、その相互運用性は彼らの関係性によって成り立っている、非常に人間味のある技術領域だと感じます。そうしたウェブの魅力が、これからも損なわれることなく発展していくことを願っています。

参考