IE9で探るMicrosoftとHTML5の関係MIX10(2/3 ページ)

» 2010年03月25日 17時30分 公開
[鈴木淳也(Junya Suzuki),ITmedia]

JavaScriptの高速化競争とSVG

Webブラウザのトレンドを塗り替えたGoogle ChromeとGoogle Map

 「SVG」(Scalable Vector Graphics)は、現在Webブラウザ上で動作するスクリプトとして広く利用されている「JavaScript」とともにHTMLを“補完”する関係にある。JavaScriptは、それまで静的なコンテンツのみしか表示できなかったHTMLに対し、スクリプト型のプログラミング言語実行機能をWebブラウザに加えることでWebページの動的な表示を可能にしたものだ。もともとは1995年にリリースされたNetscape Navigator 2.0用に開発された機能で、プログラミング言語の「Java」とは直接的な関係はない。

 このように、特定のWebブラウザの付加機能として実装されたJavaScriptだが、当時ブラウザ戦争で競合関係にあったMicrosoftは、このJavaScriptに近い機能を「JScript」の名称でInternet Explorer 3.0上に実装する。これは「Java」という商標の使用を避けるための措置だったといわれている。

 機能的には互換性を持っていたが、JScriptはMicrosoftが使いやすいように独自の実装を行っていたため、一部の機能で互換性がなかった。一方、Netscape Navigatorを開発していたNetscapeでは、JavaScriptを標準化団体の「Ecma International」に提出し、JavaScriptは「ECMAScript」として標準化された。現在JavaScriptと呼ばれているスクリプト言語は(JScriptも含む)、このECMAScriptに準拠しており、多くのWebブラウザもECMAScriptをサポートしている。

 JavaScriptが登場した当初はあまり活用されず、10年近く埋もれていた状態だったが、2004〜2005年から急にクローズアップされるようになった。その理由の1つに「Google Maps」の登場がある。それまでWebページで利用できる地図ソフトは、地図の移動や拡大/縮小を行うたびにWebページを切り替えていた。その都度、ユーザーは表示を待たなければならず甚だ不便だったが、Google MapsはJavaScriptを使うことで地図のスクロールも拡大/縮小も画面切り替えなしでスムーズに実現した。

 このようにJavaScriptだけで複雑なWebアプリケーションを構築する技法は、「Ajax」(Asynchronous JavaScript and XML)と呼ばれて以後のWebアプリケーション構築の規範となった。同時に、地図上に特定のパーツを埋め込んでほかのWebページのデータを呼び出すという「マッシュアップ」と呼ばれる技術も開発された。

 Ajaxの普及で、Webページ上にアプリケーションを構築することが一般的となり、ソーシャルネットワークサービス(SNS)やビジネスアプリケーションなど、数多くのアプリケーションがWebベースへ移行していった。このような動きが進むにつれ、Webアプリケーションのパフォーマンスに直結するJavaScriptの実行速度が注目を集めるようになった。このJavaScript高速化競争のきっかけとなったのが、GoogleがリリースしたWebブラウザ「Google Chrome」だ。Google Chromeは「V8」と呼ばれるJavaScript実行エンジンを搭載して、先行する競合Webブラウザの8〜10倍でJavaScriptが実行できる高速性をアピールした。その指標として使われたのがJavaScriptベンチマークテストの「SunSpider」だ。これ以降、競合するWebブラウザは改良されたJavaScript実行エンジンの高速性をアピールするため、SunSpiderを活用することになる。

 Webページの“動き”という部分を補完するのがJavaScriptであれば、もう1つの苦手分野である「図形描画」を補完するのが「SVG」の役割だ。HTMLだけでは単純な表組みしか表現できないため、遷移図や設計図、あるいは単純なロゴなどはJPGやGIFなどの画像ファイルを直接埋め込むことで表現するしかなかった。これだと汎用性がないだけでなく、画面を拡大すると“あら”やジャギーが発生して、細かい文字の判別も難しいという難点がある。そこで登場したのが「SVG」だ。SVGは「XML」(eXtensible Markup Language)を使って図形をテキストファイルとして記述する。線や曲線などの情報はすべて「ベクトル」で表現するため、拡大/縮小/回転を行っても画質が劣化しない。SVGで記述される図形はWebページ上に何個でも自由に配置できるので、IE9のリポートにも登場した「アステロイド」ゲームも実現できる。

Internet Explorer標準化対応への歩み

 Netscape Navigatorとの戦いに勝利したInternet Explorerシリーズは、Webブラウザにおいて圧倒的シェアを得る。しかし、その高いシェアがMicrosoftを苦しめられることにもなった。Internet Explorerのバージョンアップを積み重ねてきたMicrosoftは、2001年にWindows XPとともにInternet Explorer 6をリリースする。後継のWindows Vistaの遅れやリリース当初の不評なども影響して、Windows XPは10年近くにわたって多くのユーザーに利用されるが、このことが、IE6が長きにわたって利用され、企業のイントラネットシステムや一部Webページなどで古いIE6を前提にした開発が行われる大きな理由になった。システムは刷新されず、Windows XPを導入したPCを利用しているユーザーがIE6をそのまま使いつづける状況に合わせて、Webページの開発者は実装の古いIE6のサポートを継続しなければならず、これが開発側に「1つのコードで複数のブラウザをサポートする」という大きな負担を強いている。また、IE6には多数のセキュリティホールのほか、JavaScript実行上の問題(主にパフォーマンス)があることが知られており、これはMicrosoftにとってサポートという大きな負担となっている。

Acid2テストを通過すると表示されるスマイルマーク

 こうして2006年に登場したのがInternet Explorer 7(IE7)だ。IE7ではまず、IE6で大きな問題となっていたセキュリティ対策が強化された。悪意のあるWebページにアクセスすると無条件で実行されていたスクリプトやアドオン群が遮断されるようになったほか、HTML、CSS、DOMといった標準対応の強化などがIE6との違いとしてアピールされた。とはいえ、CSSのサポートはまだ完全ではなく、Web Standards Projectが用意する「Acid2」のテストもパスできない状態だった。Acidは、HTMLやCSSの実装がどれだけ標準に準拠しているかをJavaScriptを使ってテストするもので、Acid2では完全なレンダリングが実行されたときに完全なスマイルマークが出現する。もし実装に標準と異なる点があれば、このマークが崩れて表示される。

 2009年3月には、現時点で最新バージョンのInternet Explorer 8(IE8)がリリースされた。IE8では、JavaScript実行速度の高速化がポイントとなる。「遅い!」といわれつづけたIE6などから比べればかなりパワーアップしている。とはいえ、最速の座を争っているOpera、Chrome、Safariなどから比べれば大きく出遅れていることに違いない。

 また、さらなる標準化対応もIE8の重要な改善点で、特にCSSとDOMの標準対応が強化されており、Acid2テストもようやく通過できるようになった。一方でCSSの実装が従来のIEシリーズから変わったため、それまでのInternet Explorer向けに作られたWebサイトとの互換性がなくなるという問題が発生した。そのため、IE8では「互換性モード」と呼ばれる機能が用意されており、IE7以前に対応するWebページを閲覧できるように、ユーザーが手動で切り替える必要がある。だが、互換性モードでもIE7対応Webページの完全な表示は行えず、あくまで「WebページがIE8に対応するまでのつなぎ」という位置付けになっている。

 Microsoftにおける標準化対応の障壁の1つは、こうした「圧倒的なシェアを確保した従来のIEシリーズで築き上げた遺産」だ。CSSなどの標準化を進めると、IE6やIE7向けに記述されたWebページとの互換性がなくなるため、開発者はIEの対応状況を確認しながら、段階的に新バージョンで実装を進めていくしかない。

Copyright © ITmedia, Inc. All Rights Reserved.

最新トピックスPR

過去記事カレンダー