[squeak-dev] Re: Using V8 for other languages

Andreas Raab andreas.raab at gmx.de
Wed Sep 3 06:15:49 UTC 2008

 > state-of-the-art multi-threaded design

Can you say more about this? I can't find any information about V8's 
thread handling and concurrency options.

   - Andreas

David Griswold wrote:
> 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
> ------------------------------------------------------------------------

More information about the Squeak-dev mailing list