Answering Jason on V8 governance and impact to NodeJS

February 6, 2011

Jason Hoffman (Chief Scientist, Founder at Joyent) has posted some good questions to me, based on my original nodejs and V8 post. Let me summarise Jason’s questions and comments.

Update (2011/9/11): this post is picking up again 8 months later, I’ve written an update as of where we stand.

There are three key messages in Jason’s response:

It’s Joyent’s responsibility that NodeJS runs well period. We’re not afraid of a language VM. […] actual node.js committers (who all work at Joyent) know quite a bit and have pretty good relations with the V8 team.

That's a very honourable goal and perfectly within Joyent's capabilities and track record. I am not debating that.

If there are actual technical problems with V8′s reliability or ??? and these affect the use of node.js in production then I’d like to see details.

The discussion is not really whether I have technical production problems or not with V8 (within NodeJS); all software has bugs. My issue is about project governance. Let's say such a problem affecting reliability exists and that Joyent fixes it by developing a critical patch for V8, a patch that the upstream maintainer does not deem it necessary to merge. For how long would Joyent maintain and test such patches?

Another aspect of governance: intellectual property rights.

My point: it's not whether Google's V8 project is open or not, it's that since governance of V8 may become a problem in the future, it requires a solution now so that large organisations can put their full weight behind NodeJS. Joyent's weight behind NodeJS is necessary, but not sufficient. I prefer addressing the problems in the code.

node.js is only implemented on V8 but that’s only because we’re going to focus on making node.js awesome first. [...] After all, we are still working on getting it to 1.0

Open source software is commonly designed to make it easy to replace parts or components that may be at risk of being legally tainted or patent encumbered (e.g. mono's architecture as an example of isolation). I would put V8 in the same bucket of "risky parts", although for different reasons. Given the lack of definition on Google's V8 project governance, and the current tight coupling between node and V8, I wonder how realistic it will be to implement a different VM post-1.0 if we haven't got the right layer of abstraction pre-1.0. Or perhaps the problem (the reassurance of governance) can be addressed by working under the umbrella of a foundation that ensures such governance.

Let me end by saying that I am still as committed as ever to NodeJS and that I really believe in Joyent's engineering strength to make NodeJS 1.0 a reality. Joyent is putting their money where their mouth is. We know they are working hard making node awesome.


blog comments powered by Disqus