16 September 2010

Internet Explorer 9 の誕生を祝う会 に行ってきました

f:id:cou929_la:20100916205431j:image

no title

IE9 beta の誕生を祝う会に行ってきました. 本日リリースされたIE9のベータバージョンについてのカンファレンスです.

自分は遅刻して行ったのと, 今までの経緯にあまり明るくないので, 気になったポイントだけここにメモしていきます.

資料など

ustream
Internet Explorer 9 ベータ版の詳細と製品版リリースに向けて
LT
togetter まとめ

http://togetter.com/li/51269

Beauty of the Web

IE9 のプロモーションサイト?. なんかそのまんまな "experience" というページには色々なベンダーやコンテンツプロバイダが作ったリッチなコンテンツが展示されています. 当然 html5, css3 がふんだんに使われていてすごいです.

全体的にきちんと標準に準拠した実装が行われている印象

たとえば addEventListener() が実装されたなど, 今まで独自拡張となっていて問題となっていた部分がきちんと潰されて, 標準に準拠したものになっているなあというのが全体的な印象でした.

Web Socket 対応はまだ先そう

待望だった canvas をはじめ, 標準に準拠した html5, css3 の機能も多く実装されていましたが, Web Socket の話は殆ど出ていませんでした. 質問された方もいましたが, MSの方もはっきりした答えはできないらしく, どうもすぐに実装されるということは期待できなさそうです.

ネットワークキャッシュアルゴリズムの改善

IE9 ではネットワークキャッシュアルゴリズムが改善されているらしいです. 詳しい内容はよくわからなかったのですが, 他のブラウザのバージョンアップ時に, このようにキャッシュのことが言及されていることはあまりないような気がしたので, 気になりました. IE9 の独自の優れた改善なのか, 今までのIEのレベルが低くて他のブラウザに追いついたのか, ちょっとわからないので気になるところです.

JavaScriptエンジンChakraの高速化

IE9 には Chakra という JavaScript エンジンが乘ります. 当然ほかのブラウザベンダに対抗し高速化を行っています. 主なポイントは, 並列処理を行いマルチコアを活かすこと(WebWorkerなどを用いたアプリケーションレベルでの並列処理という話ではなく, 処理系レベルで並列化対応がされており, 既存のコードも並列に処理され高速になるそうです), GPUのアクセラレーション, そしてエンジンがブラウザ内部に組み込まれるようになった, という点です. むしろ今までの IE ではエンジンがブラウザの外にあり, それを COM インタフェースから呼び出していたというのが驚きでした.

機能で分岐するコードを書こうという提案

これは IE の話題というよりは クロスブラウザの JavaScript の話題なのですが, これからはブラウザやそのバージョンで分岐してコードを書くのではなく, 機能別に分岐してスクリプトを書いて方が効率的でよいのではないかという提案がされていました. 例えば前述の addEventListener() だと, IEとそれ以外というふうにわけてコードを書くのではなくて, このメソッドがある場合のコード, ない場合のコードという風に書くということです. ブラウザもバージョンによってはサポートしている機能に差があるし, html5 の各 api も実装状況に差があり, ブラウザベンダも使えるものから使っていってほしいというスタンスで実装を進めていっています. ブラウザの種類やバージョンで分けてコードを書くと, 分岐の種類が多くなるし, 同じ処理が複数の場所に書かれるなど DRY の原則が損なわれることが考えられます. よってこのスタンスは妥当だなと感じました.

JavaScriptエンジンの高速化について

LT での Mozilla 加藤さんのお話 (なぜ彼が呼ばれたかというのは, 彼の LinkedIn を見てくださいとのことです;) ). 現在各ベンダの JavaScript エンジン高速化競争が激しいですが, それぞれが計測しているベンチマークは, そもそも自分のところのエンジンが有利になるような計測方法をしているし, ミリ秒単位の速度改善に一喜一憂するのはばかばかしい. それぞれのエンジンに得意不得意があり, たとえば IE9 は GPU まわりを頑張っていて, 2D の描画はとても良い, とおっしゃっていたのが印象的でした. 本題は WebGL 対応を MS さんお願いします! という話だったんですが, この高速化の話も面白かったです.

大企業は大変そう

完全にブラウザとは関係ない感想なんですが, MS ほどの大企業になると個人の判断での行動は制限されて大変そうだなーと感じました. 突っ込んだ質問がでたときに, MS の方はそれは明言できないとお茶を濁されたことが何度か続いました. また今までのブラウザに関しても, それに対しての問題点は認識しながらも, すでに企業・行政や技術に詳しいわけではない一般の人たちにまで広く利用されているので, 後方互換性とサポートを優先せざるを得ず, 問題点があっても頻繁にアップデートすることもできない. そんなジレンマが感じられました.

まとめ

全体として良い方向に向かっているなあと感じられました. XP 以前には対応していないので, 普及はまだまだ先そうですが, 未来はそう暗くはなさそうです.