特別企画
新しいブラウザMicrosoft EdgeがWindowsの未来を変える?
(2015/6/4 06:00)
Microsoftは、Windows 10に新しいブラウザMicrosoft Edge(開発コード名:Project Spartan、以下Edge)を搭載した。Edgeは、Internet Explorer(IE)が持っていたMicrosoft独自の機能を排除し、インターネット標準を全面的に取り入れたブラウザだ。
IEの進化を止めて新たなブラウザを
Windows 10の開発に合わせてMicrosoftは、標準ブラウザをIEからEdgeに変えるという大きな決断を下した。
IEは、1995年に発売されたWindows 95の追加ソフトウェアパックMicrosoft Plus! for Windows 95において、Spyglass社のブラウザをIE1として提供したのが最初だ。その後、1996年にリリースされたIE3では、全面的にMicrosoftが開発したコードになり、当時のインターネット標準を先取りするような機能(CSS1)をサポートしたほか、Microsoft独自の機能(Active Xなど)をサポートしていた。
その後、バージョンを重ねるごとに、新しい機能が追加されたり、後方互換性の機能が用意されたりして、IE自体は肥大化していった。
Windows OSにブラウザをバンドルすることで、IEのシェアは非常に高くなったが、時々刻々と変化するインターネット標準にIEはついていけず、徐々に時代遅れになりはじめてきた。
他方、積極的にインターネット標準をサポートしたGoogle ChromeやFirefoxなどがリリースされはじめた。ChromeやFirefoxは、積極的にアップデートを行うことで新たなインターネット標準を取り込んでいたが、IEはOSのメジャーアップデート時を開発のめどとしていたので、新しいIEがリリースされるまでに長い時間がかかっている。
Microsoftでも、2006年ごろからはOSのアップデートとIEのアップデートを別々のスケジュールで行おうとしていたものの、IE自体がOSの一部として開発されていたため、なかなかそれは実現できなかった。
また企業でもIEが利用されていたことから、後方互換性が重要視され、簡単に古い規格やMicrosoft独自解釈のHTMLを捨て去ることができない。このため、新機能開発よりも、後方互換性をどのように保っていくかが重要視されていた。
しかし、後方互換性を重視するあまり、時代遅れのブラウザになったIEは、市場のシェアがどんどん小さくなっていく。そこで今回、Microsoftも大きな決断をし、Windows 10において、新しいブラウザEdgeをサポートすることにした。
IEからMicrosoft独自規格をそぎ落としたEdge
Edgeは、IEのようにOSの一部として開発されているのではなく、Universal Windows App(UWA)のアプリとして開発されている。このためPCだけでなく、UWAが動作するWindows 10 Mobile、Xbox One、組み込み機器用のWindows 10など、デバイスを選ばずに動作できる。
これまでもMicrosoftでは、モバイル向けなどにIEを提供してきた。例えばWindows Phone 8/8.1では、Windows Phone版のIEを提供している。しかし、IEのレンダリングエンジンの機能がすべてサポートされているわけではなかったため、結局はIEの亜種がリリースされたことにしかならなかった。
これに対してWindows 10は“One Windows”を目標にして開発されているため、ブラウザも、さまざまなデバイスでフル機能をサポートしたモノが必要とされた。こういった経緯でEdgeは開発された。
Edgeでは、後方互換性よりも、インターネット標準規格を積極的に取り入れることと、ChromeやFirefoxを追い抜くほどの性能を実現することを目標としている。このためIEとの互換性はなく、IE7やIE8対応のWebページは、表示する時にレイアウトが崩れたり、表示できなかったりする。また、ブラウザとしての機能も、インターネット標準に合わせるため、Active Xなどのプラグインなどは動作しない。
具体的には、IEがサポートしていた、Active X、Browser Helper Objects(BHO)、Document Modes、Vector Markup Language(VML)、VBScript、attachEvent/removeEven、currentStyle、conditional Comments、IE8 layout quirks、DirectX Filters and Transitionsなどの機能が削除された。このため、アドオンツールなどをリリースしているソフトベンダーにとっては、新しくEdgeへの対応が必要になる。
Microsoftは、複雑な内部構造を持つIEは潜在的なセキュリティホールがあり、頻繁にセキュリティパッチをリリースし続けることに追われていた。しかし、新しく開発したEdgeでは、IEとの互換性を捨て去ることで、セキュリティ面においても、信頼できるブラウザになるだろうとしている。
またEdgeは、64ビットOS環境では常に64ビットで動作するようになっている。以前のIEのように、64ビットOS環境でも32ビットモードで動作するような機能は付いていない。
IEの場合、Active Xのアドインなどが32ビットモードで開発されていたため、64ビットモードでは動作しないプラグインが多かったが、EdgeになりActive Xなどがサポートされなくなったため、これが可能になった。
独自開発の新レンダリングエンジンを採用
当初、Edgeのレンダリングエンジンには、Appleが自社のブラウザSafariで利用するためにオープンソースで開発していたWebKitを使用するというアイデアがあった。しかしWebKitは、Apple以外にWebKitを利用していたGoogleなどとの開発方針の違いにより、WebKitとGoogleのBlinkにブランチしてしまった。一方Firefoxでは、Netscapeの流れを汲む、Geckoというオープンソースのレンダリングエンジンが使用されている。
こういった流れを見て、Microsoftは、IEで利用していたレンダリングエンジンMSHTML(開発コード名:Trident)から、後方互換性部分やMicrosoft独自機能を排除したEdgeHTMLを開発した。Microsoftでは、Webkitなどほかのオープンソースのレンダリングエンジンを採用しなかった理由として、EdgeHTMLという形で自社の内部にレンダリングエンジンを持つことが、今後の優位性にもつながるとしている。
EdgeHTMLを使用したとしても、MSHTMLのようにレンダリングエンジンを囲い込むことはしないようだ。実際、Adobeが提案する規格を共同でEdgeHTMLに取り込んだり、ブラウザの性能をアップするために、Intelと共同でプロセッサのSIMD命令を積極的に採用していくなどの方針をとっている。
最近のMicrosoftのオープンソースへの傾倒を見ると、将来的にはEdgeHTML自体をオープンソースとして解放する可能性もある。そうなれば、EdgeがiOSやMac、Android、Linuxなどのプラットフォームに移植されるかもしれない。
またEdgeは、ユーザーエージェント(ブラウザを判別するための文字列)に、AppleWebkitやChrome、Safariなどの文字列を返すようになる。つまりEdgeは、IE独自機能を持たないChrome、Safari、Firefoxなどと同じモダンなブラウザと同じ機能を持つブラウザとして動作する。
これにより、SafariやChromeなどのように、画面サイズが異なるPC、スマートフォンでも、それぞれの画面サイズにあった表示が行えるようになった。さらに、Safariなどのユーザーエージェントを返すことで、SafariやChrome用に作られたモバイル用サイトをEdgeでもそのまま利用できる。
さらにMicrosoftでは、EdgeにおいてChromeやFirefoxの拡張機能(プラグイン)をそのまま利用できる用にすると発表している。ただし、Windows 10リリース時には間に合わないようだ。
Edgeの拡張機能サポートは、年内ぐらいを目標にアップデートが行われるようだ。Windows 10自体が日々アップデートを行い進化していくOSを目指しているので、ブラウザなどもそうなっていくのだろう。
各機能が完成された段階で、Windows 10リリース後も行われるInsider Previewプログラムで配信され、ユーザーからの要望やバグがなくなれば、Windows 10のWindows UpdateのFastリングユーザーにリリースされ、数週間から数ヶ月後にSlowリングユーザーに配信されることになる。
Windows 10リリース後は、コンシューマユーザーも企業ユーザーも、このようなアップデートサイクルに慣れる必要があるだろう。
JavaScriptの強化
Edgeでは、IE11に搭載されていたJavaScriptエンジンのChakraを大幅に機能アップしている。またMicrosoftでは、JavaScriptの規格ECMA Script6を全面的にサポートすると表明している。
ただ、Windows 10リリース時のChakraでは、ECMA Script6の一部機能がサポートされていない。これは、ChakraにECMA Script6をインプリメントしている最中に、一部規格が変わったためだ(規格が決定していないECMAScriptの機能を先行で取り入れたことによる。JavaScriptでのSIMD命令サポートなどは、ECMAScript2016規格に入っている)。
Microsoftでは、Windows 10リリース時には、ECMA Script6の全面サポートは間に合わないが、早いタイミングでアップデートを行いたいとしている。ECMA Script6の全面サポートも年内ぐらいになるだろう。
Microsoftでは、ECMA Script6(ECMA Script 2015に名称が変更されるようだ)以降にリリースされるECMA Script 2016、ECMA Script 2017などのサポートも表明している。今後Edgeは、ECMA ScriptスタンダードなJavaScriptが動作するブラウザになるだろう。
また、JavaScriptのパフォーマンスをアップするため、JavaScriptを事前コンパイルして、ネイティブコードで動作させるasm.jsのサポートがEdgeでは行われる。asm.jsは、JavaScriptのプログラミング言語を生かして、事前コンパイルできるように静的型つき言語としてサブセットになっている。このため、開発者は、JavaScriptのプログラミングスキルを生かしたまま、高いパフォーマンスを持つプログラミングが行える。
後方互換性はIEでカバーする
Windows 10にはEdgeが搭載されているが、後方互換性のためにIE11も搭載されている。つまりWindows 10は、EdgeとIE11という2つのブラウザが搭載されたOSになっている。
企業においては、IEをベースとしたWebサイトやWebアプリの開発が行われているため、すぐにEdgeに切り替えることはできない。
そこでWindows 10では、後方互換性部分においてIE11を少し機能強化し(IEのEnterprise Mode:EMIEの強化)、搭載している。今後は、後方互換性などで一部機能強化があるかもしれないが、基本的にIEの開発は凍結される。
つまり今後、新しいIE12などの開発は行われない。またIEのアップデートに関しても、セキュリティパッチのアップデートだけが行われることになる。
また、IEのサポートポリシーが2014年8月に変更されたことで、2016年1月12日からは、各OSにおいて最新のIEのみがサポートされることになる(2016年1月12日にIE8はサポートが終了する)。
【お詫びと訂正】
- 初出時、「IE8はサポートが終了した」と記載しておりましたが、2016年1月12日をもって終了になります(参考記事)ので、記載をあらためました。お詫びして訂正いたします。
ただし、Windows 10でずっとIEがサポートされ続けるということではない。やはり企業においても、将来を見据えるなら、Windows 10リリース後、時期を見てEdgeベースへと移行する必要があるだろう。2020年ごろをめどに、IEからEdgeへの移行を果たすのが現実てきではないか。
IE11では、スマートフォンなどのモバイルデバイスへの対応はやりにくいし、Edgeでは、FirefoxやChrome、Safariなどの他社のブラウザとの互換性が重視されているため、企業もIE独自のサイトやWebアプリ作りを行わなくてもよくなる。
今後、さまざまなデバイスが企業内で利用されることを考えれば、Edgeの誕生を否定的にとらえるのではなく、新しい業務システムを開発するチャンスとして考えてほしい。