新春特別企画

2010年のJavaScript:「これまで」と「これから」

この記事を読むのに必要な時間:およそ 4 分

2010年のJavaScriptと題しまして,JavaScript周辺の「これまで」「これから」についてまとめてみたいと思います。

2009年までのJavaScript

JavaScriptは各ブラウザベンダなどが個別に実装するという特殊性から,ブラウザ(実装)ごとの非互換性の問題に悩まされ続けてきた言語です。まず,そのJavaScriptの歴史を簡単に振り返ってみます。

ECMA-262 3rd editionとスピードコンテスト

JavaScriptはNetscape社によってLiveScriptという名前で誕生し,その後ECMAScriptとして標準化が進みました。1999年12月にECMA-262 3rd editionが策定されてから,Internet ExplorerのJScript,MozillaのSpiderMonkey(TraceMonkey)⁠SafariのJavaScriptCore,OperaのLinear A/Linear B/Futhark,そしてGoogle ChromeのV8と,いくつものJavaScriptエンジンが誕生し,現在も改良が加えられ続けています。

JavaScriptの言語としての仕様は10年前から変わっていないにも関わらず,各エンジンが更新を続けているのは,多く分けて2つの理由があります。1つはDOMサポート,もう1つは高速化です。特には2008年の6月頃から各エンジンの競争が白熱化しました。JavaScriptCoreとSpiderMonkeyにはJITコンパイラが搭載され,従来のインタプリタ方式に比べて大幅な高速化を実現しました。また2008年9月にGoogle Chromeが登場し,スピードコンテストを盛り上げました。

この流れには遅れてしまいましたが,Operaも2009年12月に10.50のプレアルファ版を公開し,新しいJavaScriptエンジンのCarakanを搭載しました。このCarakanはSunSpider,Peacekeeper,V8 Benchmark Suite,Dromaeoなどの各種ベンチマークで軒並みトップかそれに近いスコアを叩きだしています。また,Internet Explorerも「Professional Developer Conference(PDC)⁠ 2009」において,開発初期段階のInternet Explorer 9のJavaScriptエンジンが大幅に高速化していることを発表しています。

HTML5周辺技術のサポート

HTML5周辺技術として,以下の仕様がJavaScriptと連携する部分として策定が進められています(それぞれの進捗はJavascript Interfaces Current Status - W3Cを参照してください)⁠

これらの仕様に対して,2009年年末時点での各ブラウザのサポート状況は下記の表の通りです。

2009年末時点でのHTML5周辺技術のサポート状況

HTML5周辺技術Internet ExplorerFirefoxSafariGoogle ChromeOpera
Selectors API
IE8以降。かつ,サポートしていないセレクタも多い

Firefox 3以降

Safari 3.1以降

Opera 9.5以降
Web Storage
IE8から

Firefox 3.5から正式サポート。3.0までは独自実装となっていた

Safari 4以降

Google Chrome 4以降

Opera 10.5 pre-alphaより
Web Workers--
Geolocation API-
Firefox 3.5より
-
モバイル版ではサポートしているので,近いうちにサポートされる見込み
-
Chrome 5でサポート予定

サポートしたバージョンは公開されているが,正式なリリースには組み込まれていない
Cross-Origin Resource Sharing
(XMLHttpRequest Level 2)

IE8から,一部独自仕様

Firefox 3.5から

Safari 4から

Chrome 2から
-
Web Sockets--
パッチは存在する Bug 472529
-
Chrome側で実装されたので,WebKitにもすぐに実装される見込み

Chrome 4.0.249.0より正式に対応
-
Web Forms 2.0--
一部のみ

Safariに同じ

完全ではないが最もサポートが進んでいる
Server-Sent Events--
WebKit nightlyのみ
-
Opera 9.0から実装はしているが,仕様が新しくなったのに追いついていない
File API-
Firefox 3.6より

一部サポートしている
-
Chrome 5でサポート予定
-
WebSimpleDB API
(Indexed Database API)
----
Chrome6でサポート予定
-
DataCache API-----
API for Media Resource-----
Web SQL Database
IE,Firefoxなどがこの仕様に対して否定的なため,標準化はストップする可能性が高い
--
Safari 3.1以降

Chrome 4より

Opera 10.5 pre-alphaより

この表で下に行くほど仕様・実装が進んでいない項目になっています。最後のWeb SQL DatabaseはSafariを筆頭に実装こそ進んでいますが,標準化に当たって各ベンダの意見がまとまらず,Indexed Database APIにその機能・役割が託されたこともあり,このまま策定がストップする見込みが強くなっています。

著者プロフィール

太田昌吾(おおたしょうご,ハンドルネーム:os0x)

1983年生まれ。JavaScriptをメインに,HTML/CSSにFlashなどのクライアントサイドを得意とするウェブエンジニア。2009年12月より、Google Chrome ExtensionsのAPI Expertとして活動を開始。

URLhttp://d.hatena.ne.jp/os0x/

コメント

コメントの記入