スマートドール千歳ちゃんをお迎えして、また一つ日々の生活に彩りが加わりました、TKです。みなさん、本日もお仕事お疲れ様です。
さて、あなたが今日書いたhtmlやcss、javascriptがどうやって表示されているか、気になったことはありませんか? 各ブラウザによってこれだけ挙動が違うと、デバッグ中に悩まされることも少なくはありません。
そこで今回は、ブラウザごとにどれだけ実装に差異があるのか、調べてみました。とはいえ、私はCやC++が読み書きできるわけではない=残念ながらコードの解析ができるわけではないので、今回は、Chrome・Safari・Firefox・IEでそれぞれ使われている、レンダリングエンジンとJavascriptエンジンを見てみましょう。
Chrome
ChromeがWebkitからBlinkに変わった時は話題になりましたね。
当時は、高速化されるという話に心を躍らせたのを覚えています。たしかに早くはなったけれど重たくなったなというのが最近の印象ですが。
Safari
- レンダリングエンジン: WebKit
- Javascriptエンジン: JavaScriptCore
webkitはベンダープレフィックスでよく書いていたので馴染み深いですね。
Chromeがblinkに移行してしまってSafariも追従するのかなと思いましたが、変わらずのままでした。
最近は、なんだかんだ標準搭載ブラウザだし、マシンリソースの使い方は一番安定しているだろうという期待を込めて、デフォルトブラウザに設定しています。
Firefox
- レンダリングエンジン: Gecko
- Javascriptエンジン: SpiderMonkey
Gecko…安直に『月光』が語源かなと思っていましたが、ヤモリの英名みたいです。
Mozillaは非営利団体のため、ライセンス料の必要なH.264のFirefoxでのサポートがなかなか決まりませんでした。さらに、対応が決定した際は有料になるのではないかという噂も広まったりしたのも、懐かしい話です。
IE
- レンダリングエンジン: Trident
- Javascriptエンジン: Chakra
我らが強敵IEのエンジンは、ネーミングが格好いいですね。名前だけなら個人的には一番好きかもしれませんっ。
MS Edgeでは、TridentからフォークされたEdgeHTMLというエンジンが使われているらしいです。
終わりに
どのエンジンもソースコードやドキュメントが読めるので、興味のある方は是非チャレンジしてみてください。
私も空き時間にちまちまとコードリーディングをやっていきたいなという心持ちです。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。