February 06 2011
[This is a response to this blog post by @olympum, with the rest of the thread being here and here.]
Bruno makes three assertions about the relationship between NodeJS and V8: that V8 was not designed as a server-side engine, that V8's lack of threading inhibits adequate fault isolation, and that lack of explicit alignment between the V8 and NodeJS projects may lead to problems in the future.
I'm not really sure what this means, as Bruno doesn't provide any details on what he's concerned about.
When compared with the JVM, which offers distinct client and server
modes affecting primarily JIT compilation garbage collection strategies,
V8 is indeed less full featured. In fact, in probably virtually all
respects, the JVM is more mature and featureful than V8. However, that
does not imply that it's a more appropriate choice for a server-side
alternative languages targeting the JVM is long and growing, it's
unclear to me that supporting these is a priority for the JVM team (the
invokedynamic instruction not withstanding).
It would be wonderful if someone at Joyent or Yahoo! could contribute a representative benchmark (it's open source!) and/or include a JVM-based engine to AWFY.
This is a specious argument, IMO.
In a system which runs each request in its own thread, fault isolation is no better than a system which multiplexes requests over a single thread.
In a multiplexed model (e.g. NodeJS), things are largely the same: a fault will bubble up to the top of the event loop as an exception where it will be dealt with. Other requests are unaffected. Significantly, the lack of parallelism within the same address space suggests that this model may in fact be less likely to fail than a threaded model (no locking bugs!).
This argument boils down to which VM is more likely to crash of its own volition, taking all requests (be they in separate threads or not) with it. I don't have any information one way or the other on whether the JVM is more reliable than V8. Bruno, do you?
@jasonh makes several excellent points on the nature of this relationship (and Joyent's) in his blog post.