Microsoft EdgeのChromium移行とか

週明けに出回った、Microsoft EdgeChromiumベースになるという話について、Microsoftからアナウンスがあった。

For the past few years, Microsoft has meaningfully increased participation in the open source software (OSS) community, becoming one of the world’s largest supporters of OSS projects. Today we’re announcing that we intend to adopt the Chromium open source project in the development of Microsoft Edge on the desktop to create better web compatibility for our customers and less fragmentation of the web for all web developers.

インターン時代から10年近くもIE→Edgeに関わっていたJacob Rossiが夏にMicrosoftを抜けたりもしていて、なにかあったのかなとは思っていたが。そういうことかーと、なんかえらく呆けてしまった。

Edgeチームのお言葉も出た。

なんと言えばいいかわからないが、言葉を出すならこれかな。苦い。

EdgeHTMLがなくなる

Android版に続き、ChromiumベースになるEdgeは、これまでのエンジンEdgeHTMLを捨てることになる。JavaScriptエンジンのChakraCoreについて詳細は語られていないが、半年近くセキュリティ関連の修正のみという現状を見るに、V8に移行するのではないか。

ウルトラCNode-Chakracoreみたく、shim使ってみたいなアプローチが……いや考えにくい。Chromium移行の目的のひとつに、さらなる互換性の向上を挙げているからだ。

  1. We will move to a Chromium-compatible web platform for Microsoft Edge on the desktop. Our intent is to align the Microsoft Edge web platform simultaneously (a) with web standards and (b) with other Chromium-based browsers. This will deliver improved compatibility for everyone and create a simpler test-matrix for web developers.

なのでJavaScriptエンジンだけChakra使うよなんて理由はとくにない。

開発者への影響

ひとつは、Chromiumベースになるので、とくにEdgeを気にすることがなくなる。リリーススケジュールをChromeとあわせるということはしないだろうから、OperaVivaldiみたくずれはあるかもしれないが、それなりにアップデートに追従するのではないか。

ただ、Edgeを気にして開発していた人がどれくらいいたかを考えると、EdgeHTMLが減ったことで開発者が受ける影響は、プラスもマイナスもほとんどないのではないか。もともとChromiumとの互換性を強く意識していたという触れ込みもあったし、またシェアも少ないので、どれくらい「Edge対応」があったのかというと、どうなんだろう。

Microsoftにとっても、自分のとこのクラウドに引き込む強みも出せず、さらにケアされていないから、開発やメンテのコストが見合わないという状況になったのだろうし。

なので「気にすること減るぜ!」といえる人、「嬉しい」を体感できる人って、どれくらいいるんだろうと(WebRTC絡みだといるのかな)。ぼくは気にしたことがほとんどなかったので、エンジンが減ることによる実作業への影響はとくにない。browser-compat-dataいじるときに調べる項目が減るくらいか。

IEへの影響

Chromiumベースとなることで、OSのアップデートに紐付かない頻繁なアップデートが可能としている。さらに他のプラットフォーム版の展開も示唆されている。

  1. Microsoft Edge will now be delivered and updated for all supported versions of Windows and on a more frequent cadence. We also expect this work to enable us to bring Microsoft Edge to other platforms like macOS.

macOS版とな。そしてもっと読む。

Improving the web-platform experience for both end users and developers requires that the web platform and the browser be consistently available to as many devices as possible. To accomplish this, we will evolve the browser code more broadly, so that our distribution model offers an updated Microsoft Edge experience + platform across all supported versions of Windows, while still maintaining the benefits of the browser’s close integration with Windows.

”distribution model offers an updated Microsoft Edge experience + platform across all supported versions of Windows” とある。この"all supported versions of Windows"にWindows 7もカウントされるかだが、Edgeチームの話によると “We will evolve the Microsoft Edge app architecture, enabling distribution to all supported versions of Windows including Windows 7 and Windows 8, as well as Windows 10.” とのことで、Windows 7版もくるようだ。

Windows 7にはEdgeが提供されていないので、なのでIE11が減らないという話が一説にはあったが、出たとして、IEのシェアに影響はどれくらいあるのか。社内用のIE専用アプリケーションとか、IE以外はだめーというポリシーが、Microsoft謹製アプリ(Chromiumベース)の登場によって変わるのかどうか。

Edgeの意味

多プラットフォーム展開の意味はどれくらいあるかというと、使ってるWindowsAndroid/iOS/macOSでお気に入りとかを共有したいときとかにはうれしそう。iOSChromeがあるのもそういう理由だろうし。

とはいえそういう人はすでにChromeを使ってそうというのはある。ブラウザとかがそこまでわかるわけでもこだわるわけでもない人、たとえばうちの母とか、そういう人にはいいかもしれない。

ChromeベースになるからEdgeのユーザーが増えるかというと、うーんどうなのだろう。でもEdgeはそんなに機能が多いわけでもなかった(控えめな表現)ので、機能が増えたよーこれならEdgeでいいかーという人がいる…か……も……?

ウェブプラットフォームへの影響

大きいのかどうなのか。大きいのだろうけど、正直わからなくなった。

独立したレンダリングエンジンがまた一つ減って、現在はBlink, Gecko, WebCoreになる(JavaScriptエンジンはちょっとおいておく)。Blinkの過去を考えると、機能によってはBlinkとWebCoreを分けられないこともあるだろう。

なので、複数のエンジンでの実装をもって標準を作るという、Web関連の標準化団体がいまやっているポリシーを貫くのがとてもつらくなる。

Edgeがどれくらいエンジンの多様性に寄与していたかどうかはわからない。テストケースに通るための頭数にはなったかもしれない。Tridentから引き継いだ、あまり詳細になってない仕様の互換性については、改善したかもしれないが。新しい仕様についてはどうなのだろうね。

これはウェブプラットフォームのある種の選択でもあるのかなとも思う。プラグインという機能追加を断ったため、ブラウザ上でいろいろ賄おうと自身をふくれさせ、結果新規参入ができなくなってしまった。

標準化とGoogle

エンジンの多様性はともかく、標準化においてはどうなるだろう。新しい機能については、最近はWICGで小さな機能を検討するというのが大体の流れだけれど、提案はもっぱらChromeチームの人で、またAMP絡みと思われる案件から生まれた機能が多い。WICGでのドラフトもちゃんと進んでいればいいのだけれど、コメントが付くのがChromeでのIntent to Ship段階が多いような印象にある。仕様がChromeのリリーススケジュールに、不用意に影響されているような気がする。

EdgeチームがChromiumにおいてまずフォーカスしたいと考えているもののうち、プラットフォーム周りでの貢献がありそうなのはアクセシビリティと新しめの入力とのこと。そういうところではChromeチームと導入時にいろいろ議論してくれるのかもしれないが、他のところではChromeというかGoogleに傾いたプラットフォーム拡張化が不安である。

Microsoftはブログの中で、”move to a Chromium-compatible web platform” と書いていた。言い方ではあるんだけれど、こうは書いてほしくなかったな。あとは、OSSへの貢献をうたってはいるが、オープンなプラットフォームへの貢献については言及していないのも悲しい(Edgeチームのノートにフォローはあるけれど)。

作る人がブラウザ自体を忘れないか

もうすでに起こっていることではあると思うのだけど、自分の使っている環境以外を想定しないどころか、想定できなくなるのかなあと。

想定しないのは、ちらほら増えてきた「Chromeでしか動きません」というやつ。自分の社内ツールにもひとつ「どうせみんなChrome使うから」というところでFirefoxじゃ動かないのがあって切ない。意図的に他のエンジンを無視しているというのではなく、Dynamic importに依存しているからなので、まあなあ…というものではある。

でも、標準自体が固いものではなく、変わるものであり、さらに各々がばらばらに実装するというウェブにおいては、「標準に入るから」を理由にするのも、もちろん嬉しくはない。そういう、作る前の判断から、蔑ろにされるのは危ないなあと。

で、想定できなくなるというのは、ええと。これはブラウザの話ではないけど、先日会社のサイトをいろいろいじってた際に、自分のマシンだけ画像が表示されなくなるという現象に出くわした。いろいろ原因を調べたら、picture要素の書き方をちょっとミスって、1xな環境時のURLがおかしくなっていたというものだった。

なぜそれに気がついたかというと、ぼく一人だけがnon-RetinaMacを使っていたのだった。他はみんな年代は違えど、RetinaディスプレイMacであったという。ちゃんとテストをしろよという話なのかもしれないが、テスト対象の選定ですでに外れてしまっていたら?それがわからなくなっていたら?

環境がなにかに偏っていると、それ以外を見るのがとてもむつかしくなる。そして最後には、その偏り自体も認識できなくなってしまう。さっき「他のプラットフォームでEdge出てうれしいかなあ」みたいに書いたけど、ぼくももう、見えなくなっているのかもしれない。それも、エンジンというレベルではなくて、ブラウザというレベルで。同じエンジンなら、使う人の好みやニーズに合わせていっぱいあってもいいはずなのにね。

いろんなことを考えられるというのは、豊かなことだと思っているし、そうであってほしい。ただそれは豊かすぎて、みんな忙しくなってしまってるような今では暴力くらいになってしまってるのかもしれない。