爆速で話題の 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.
The Hitchhiker's Guide to ...: Google Chrome, JavaScript and SmalltalkIt is mainly written in C++, based on the Strongtalk Smalltalk code and released with a BSD/MIT license.
Strongtalk は、Objective-C ばりのオプショナルな静的型チェック機能と Ruby と同様にミックスインを用いた多重継承機構を併せ持つ、ちょっと毛色の変わった Smalltalk 処理系で、同時に Sun の Self 言語処理系で培われた技術を組み合わせることで実現された非常に高速な VM を持つことでよく知られています。この高速化技術は後に Java HotSpot VM にも応用されました。
この記事によると Google Chrome の V8 にも、同様の技術が使われているようですね。…というか、Self VM から Animorphic VM、Java HotSpot VM、OOVM、そしてこのほどの V8 には、“VM の魔法使い”と呼ばれるラース・バック(Lars Bak)が共通してかかわっているという話のようです。
じっさい手元で遊んでみた感じでも Google Chrome は明らかに高速で、たとえばダン・インガルス(アラン・ケイのアイデアをもとに、Smalltalk を作った“中の人”)が最近 Sun で作って公開した「Lively Kernel」(Squeak 的 GUI 環境の JavaScript 版のようなもの…)も Apple の Safari でよりずっと反応よく動くみたいです(描画がからむと純粋な処理能力比較にはならないかもしれませんが…)。
- http://research.sun.com/projects/lively/(Enter Lively Kernel で下のような画面を呼び出せます)