Mozilla jumps into Node.js server project

Right now, the server software uses the JavaScript engine from Google's Chrome. Mozilla is transplanting Firefox's into Node.js.

Mozilla, taking interest in the Node.js project to run JavaScript programs on servers, not just browsers, has passed an early milestone with its own flavor of the software.

Node.js is built with the V8 JavaScript engine from Google's Chrome browser, but Mozilla is transplanting Firefox's JavaScript technology in a project called SpiderNode. (The JavaScript engine in Firefox is called SpiderMonkey, and the hybrid technology used in SpiderNode is called V8Monkey.)

"We now have a Node executable running on V8Monkey," though it still crashes at this early stage, said SpiderNode project member Paul O'Shannessy on Twitter yesterday.

V8 is deeply integrated with Node.js, so Mozilla is taking the approach of building the V8 interface onto SpiderMonkey. That's been a useful project in and of itself, O'Shannessy said, generating ideas about ways to improve SpiderMonkey, but the larger goal is to provide a different version of Node.js.

"We think V8 is great and the fact that Node has become so widely used is a testament to that. But we also think there's room for competition here," he said in a blog post about SpiderNode.

Node.js, a project begun in 2009 by Ryan Dahl and funded by Joyent, runs tasks on a server in a different and potentially more efficient way than a lot of today's common technology. Specifically, it responds to requests--to deliver a Web page to a browser, for example--by waking up when notified of the request, then falling back asleep once the request is fulfilled. This approach is called an event model, and Dahl argues that it performs better under load than traditional servers that allocate tasks to computing processes called threads that take up more memory.

Sencha, a start-up offering development tools to create Web applications that run in a browser, likes the idea of server-side JavaScript, too, since Web developers are likely already familiar with the language. It's building a higher-level package called Connect that combines Node.js with various plug-ins useful for Web servers.

"We're a big fan of JavaScript in the server," said Aditya Bansod, senior director of product management at Sencha. "For a developer, having the same language and the same event model on the server and on the client reduces the cognitive dissonance when working on each side."

Node.js today runs on Linux and Unix operating systems, but Dahl expects to change that. There are too many Windows servers and Windows developers to ignore, he said in an April presentation (PDF).

Correction at 4:47 a.m. PT April 21 to fix the spelling of Paul O'Shannessy's name.