2016-12-31

Quantum CSS (Stylo)

個人的な持論として、新しいプログラミング言語は自分自身の存在意義の証明をすべしっていうのがある。実際自分が雇用された会社が言語を作った例ってのがいくつもあるんだけど、大体の会社においてそれが行われている。実際ポシャったLonghornのコードなんかはシェルがC# (Avalon)+WinFSゴリゴリで書かれてて、デスクトップ用途におけるC#の存在意義を示すものだった。このプロジェクト自体は失敗したけど。失敗した理由は決して言語のせいだけじゃなかったけどね。完成時におけるハードウェアスペックの想定を間違えていた。

Rustって言語は、同じ時期に出てきたGoと同じ感じと勘違いする人は多いけど、Rust自体は言語仕様としてコーディング時に起きやすいミスを言語仕様的に許さないっていうことがあって、C言語みたいなとりあえずコンパイルは通すみたいなのを許してくれないことが多い。そのため、動いてしまえば問題が起きづらいって感じで、さすが2010年代に出てきた言語だなという感触がある。でもRustって言語の証明をしないといけないとは思うけど、それは?ってところでServoというエンジンがある。

Servoのデモっていくつか残念な話があって、Servoで最速な部分の話を全面に出してて、実際のところよく最適化された現在のいろんなWeb Engineにくらべて速いってことはそんなに多くはない。ただ、局所においてはそうとう速いところはある。

現在のGeckoのCSSパーサーやStyle Systemの設計は相当古い。WebKitやBlink、Edgeに比べれば速いわけでもない。そこでStylo (Quantum CSS)で置き換えて行くってことになる。Stylo自体は去年のMozilla All HandsでRustをどう使うかとかServoどうするのよ的な話から派生した流れで2015年の年末からBobby Hollyがやり始めたもので6月の時点のデモではWikipediaのCSS Parse / Stylingが約5倍くらいになるよって感じでステータスが報告された。Stylo自体は別ツリーでビルドされているので、まぁちょっとずつだけど進んではいる。実際のところは3/4くらいのCSSプロパティの実装は行えてるので、このままだと2017年の春から夏にはNightlyで有効にされるんじゃないかな?

なおBlinkはCSSパーサーをアップデートしたらしいんだけど、そのパーサーをAppleもポーティングしてWebKitに組み込んだらしいんで、2017年は各社のCSSパーサーがいろいろとアップデートされる年なんだろうね。

0 件のコメント: