2015年6月6日土曜日

de:code の「マイクロソフトの Web ブラウザのいままでとこれから」というセッションに参加してまいりました。

会社の Blog に書いたものですが、こちらにも転載します。

このセッションでは、日本マイクロソフトの春日井氏が、Internet Explorer (以下 IE) に関する振り返り(いままで)と、4月にサンフランシスコで開催された Build 2015 で発表された Microsoft Edge (コードネーム Project Spartan) (これから)という構成で、これまで IE で実現してきたこと。これから Microsoft Edge で実現しようとしていることについて説明されました。

いままで
IE はご存じの通り、現存する Web ブラウザの中では、最古参になります。そのため、互換性を維持しなくてはならないという足枷を多く持つブラウザです。特にマイクロソフトは、エンタープライズで使われることが多く、その足枷は他のブラウザと比較しても非常に重い物になります。

そんななか、IE9からマイクロソフトは、HTML 5、CSS 3、SVG 1.1 のサポートという大きな転換を決断します。それまでの互換性を維持しつつ、ブラウザのモダン化という、一見矛盾しているようにも見える方向性を打ち出します。その背景には、他社ブラウザの台頭という側面もあります。今でも IE は、ブラウザの中では 50% 近いシェアを持っていますが、Google Chrome や Firefox などのモダンブラウザの進化は目を見張るものがあり、モダン化の波は無視できない勢いになっていきました。そこでマイクロソフトは、互換性の維持とモダン化という相反する要求をひとつのブラウザで実現しようとします。

互換性を維持する手法として生み出されたのが「ドキュメント モード」と呼ばれるレンダリング エンジンの切り替えです。これは、古いバージョンの IE をエミュレートする仕組みですが、バージョンが上がるごとに複雑化していきました。春日井氏の Blog 記事で、IE11 でドキュメント モードが選択されるまでのフローチャートが公開されていますが、非常に複雑なものになっています。ここまで複雑化した IE の振る舞いは、マイクロソフトが維持するのがキツイだけでなく、私たち Web 開発者にとっても非常に苦しく、IE8 という非モダンな Web ブラウザがサポート対象になっていて、さらにシェアが一定数維持されているということで、「OLD IE PTSD」という言葉が生み出されるほど頭の痛い問題になっています。そんな中、マイクロソフトは、IEのサポートのポリシー変更を打ち出しました。2016 年 1 月からは、各 OS で最新の IE だけがサポートされるというものです。これにより、非モダン IE はサポート対象外になります。また、Windows 7, 8.1 から Windows 10 への無償でアップグレードできると発表されています。これにより、Windows 10 の標準ブラウザーである Microsoft Edge または、IE の最新バージョンである IE11 へのアップグレードが促進されることが期待されています。

これから
これからは、Microsoft Edge がマイクロソフトの Web ブラウザーの標準に変わっていきます。Microsoft Edge は、IE のレンダリング エンジンである Trident (MSHTML) からフォークされて実装された EdgeHTML というエンジンが搭載されています。これを実装したとき、22 万行の互換性に関わるコードが削除され、30 万行の新機能に関わるコードが実装されたそうです。
Living on the Edge
Microsoft Edge は、これまで Web 開発者が悩まされてきた課題を解決しようとしています。たとえば、Web 開発者が新しい機能を実装したいと思った時でも、IE がその機能をサポートしていないため、使用することができないことがありました。Microsoft Edge では「Evergreen」と呼ばれ、常に最新状態を維持することが約束されています。春日井氏が着ていた T シャツに書かれていた「Living on the Edge」という文字は、それを表現したものだそうです。Microsoft Edge は、互換性(Compatibility)を捨てて、相互運用性(Interoperability)を重視した Web ブラウザであるというのも大きな特徴の1つです。セッションの中では、Web 標準からどうしても外れなくてはならないとき、他のブラウザの挙動に”あわせる”という点が強調されていました。
そしてこれからを大きく支えるのが、最新機能の実装速度の加速化です。Mozilla に実装されて話題になった Asm.js 実装されたり、 (以前、ECMAScript 6 と呼ばれていた) ECMAScript 2015 にいち早く対応するなど、これまでにないスピードで実装が進んでいます。

最後に上でも記述していますが、Microsoft Edge では IE で実装されていたマイクロソフト独自の機能が削られています。たとえば、Active X  や BHO  を使ったブラウザ拡張、昨年セキュリティホールが見つかったことで記憶がリフレッシュされたVML、VBScript などがそれにあたります。ほとんどの機能は、すでに HTML 5 や CSS 3 に置き換え可能になっているため、これらの機能を使っている Web サイトでは、早期に移行することをお薦めします。エンタープライズの場合は、IE11 が引き続きサポートされるため、そちらを使い続けることができます。また、IE 8 と高い互換性を持つ Enterprise Mode が、Active Directory で設定可能になっているため、レガシー技術を使っているイントラサイトは、IE11 と Enterprise Mode を検証して見てください。

最後に
オープン化に大きく舵を切ったマイクロソフトですが、これからのコア インターフェイスになる Web ブラウザーに関しては、すでにある WebKit や Blink を使うのではなく、それらと高い相互運用性を維持しつつ、高速なエンジンを維持し続けることに決めたようです。相互運用性 100% 維持という簡単では、悲観的な見方もできますが、全社的にオープン スタンダードに向かっており、相互運用性を最重視することも公言しているため、これからの MS を信じて、僕ら技術者が、常にワクワクできる未来を提供してくれると思います。

0 件のコメント:

コメントを投稿