爆速で話題の Google Chrome 搭載 JavaScript VM “V8” は、Animorphic Smalltalk VM がベースになっているらしい


Animorphic Smalltalk というのは、1990年代半ばに作られ、2006年にオープンソース化されて話題になった“Strongtalk”のこと。

Another interesting aspect of the V8 virtual machine is that it's open source. It is mainly written in C++, based on the Strongtalk Smalltalk code and released with a BSD/MIT license.

The Hitchhiker's Guide to ...: Google Chrome, JavaScript and Smalltalk


Strongtalk は、Objective-C ばりのオプショナルな静的型チェック機能と Ruby と同様にミックスインを用いた多重継承機構を併せ持つ、ちょっと毛色の変わった Smalltalk 処理系で、同時に Sun の Self 言語処理系で培われた技術を組み合わせることで実現された非常に高速な VM を持つことでよく知られています。この高速化技術は後に Java HotSpot VM にも応用されました。


この記事によると Google Chrome の V8 にも、同様の技術が使われているようですね。…というか、Self VM から Animorphic VMJava HotSpot VM、OOVM、そしてこのほどの V8 には、“VM の魔法使い”と呼ばれるラース・バック(Lars Bak)が共通してかかわっているという話のようです。


じっさい手元で遊んでみた感じでも Google Chrome は明らかに高速で、たとえばダン・インガルス(アラン・ケイのアイデアをもとに、Smalltalk を作った“中の人”)が最近 Sun で作って公開した「Lively Kernel」(SqueakGUI 環境の JavaScript 版のようなもの…)も AppleSafari でよりずっと反応よく動くみたいです(描画がからむと純粋な処理能力比較にはならないかもしれませんが…)。

http://squab.no-ip.com/collab/uploads/61/livelychrome.png