[squeak-dev] Using V8 for other languages

David Griswold david.griswold.256 at gmail.com
Wed Sep 3 06:00:52 UTC 2008


A little more info on V8.

I talked briefly with Lars Bak and Robert Griesemer today, (both are on the
V8 team, and Lars is the lead) and got a little bit of their perspective on
using V8 for other languages.  As was to be expected, the VM is targeted to
JavaScript semantics, and given the gnarliness of those semantics, there are
a few caveats to think about.

   - V8 will get faster as it matures, of course, however:
   - There will be issues around things like immediate object semantics,
   which don't exactly match up with any other language.  Yucky JavaScript!
   - A bigger long-term performance issue is that given the dynamic nature
   of JavaScript objects (i.e. adding/removing slots on the fly) there
   apparently isn't any way around adding an additional indirection to deal
   with the object size changing dynamically.  That is something that will just
   have to be lived with.  I was hoping they had some magic there, but
   apparently not.

I'm sure that these sorts of things can be worked around, but they do mean
that V8 will never in its pure form quite reach the pinnacle of theoretical
performance possible for a VM targeted specifically to Smalltalk etc.  So it
won't be as fast as Strongtalk, although it may get fairly close to
VisualWorks performance.

Nonetheless, I still think it or some derivative will quickly become the
dominant dynamic language VM, for the following reasons:

   - Given who the developers are, and with Google behind it, it will be the
   fastest JavaScript VM for a long time to come.
   - For the same reason, it will be reliable and secure (as much as it can
   be, anyway; nothing is perfect).
   - It will be supported on the three major platforms (Windows, Linux,
   Mac).
   - It can be used with other browsers, so I'm sure it will be ported to
   Firefox (if only as an option).  Some or all of the other browsers may also
   adopt it, given that it will have a very hard-to-overcome performance
   advantage (these sorts of VMs can't be pulled out of a hat).  Although MS
   and maybe Safari may have too much of a Not Invented Here problem with it,
   as well as standards war issues.
   - those things, plus the other architectural advantages it brings, will
   make it a primary target for serious web app development, esp. Google apps.
   - So it will be ubiquitous

So it will be an irresistible platform for other dynamic languages, even if
they could theoretically run a bit faster on a custom VM.  Remember it will
still be a lot easier to run other dynamic languages on JavaScript than it
is to run them on Java, since at least JavaScript is fully dynamic, unlike
Java.

And remember, the bottom line is that it is a clean, supported,
state-of-the-art multi-threaded design that is fully open-source.  So as a
last resort, there is always FORK!

-Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080902/53872e3b/attachment.htm


More information about the Squeak-dev mailing list