Node.js Version 0.12 Includes Key Performance Optimizations

After two years in development, version 0.12 of the open-source server-side JavaScript runtime Platform Node.js has been released.

Key additions in Node 0.12 include:

  • Support for round-robin clustering 
  • Various performance optimizations
  • Better KeepAlive support 
  • Profiling and debugging improvements
  • Initial support for the first version of the ECMAScript Internationalization API

In a sign of Node's increasing maturity, a release announcement on the Node.js blog noted, "We are also pleased to report that this release of Node.js has tests passing on all of our supported platforms. On the one hand, this seems obvious (what are tests for if not to verify before you release it?!), but this is actually the first release of Node.js that has operated under this constraint. Requiring that all tests pass before releasing Node.js marks an important development for the project, and is essential for building a solid path moving forward."

An uncertain future?

Node has largely been responsible for the surge in popularity of server-side JavaScript in recent years. Its non-blocking, Asynchronous architecture appeals to developers looking to build event-driven applications capable of achieving high performance. Many developers are also attracted to the idea of using a single language to develop their server and client code.

The long-awaited release of Node 0.12 comes at a critical time however. Apparently unhappy with the governance of the Node project by Joyent, the company behind Node, one of Node's contributors, software engineer Fedor Indutny, created a Node fork called IO.js which has lured away some Node users. According to reports, Indutny's frustration with the Node project stems from dissatisfaction with Node's contribution structure and the speed of development. That seems to resonate with some current and former Node users. On Hacker News, for instance, some noted that the latest version of Node does not use the latest version of V8, Google's open source JavaScript engine. IO.js does.

But the battle between Node and IO.js may appear larger than it actually is. In response to questions about IO.js, Bryan Cantrill, a Joyent employee, commented on Hacker News that, "It's fair to say that the emphasis of node.js at this point is on stability (including API stability, production debuggability/observability, etc.) and performance – in that order. It definitely takes longer to release software when operating under these constraints."

Whether Node and IO.js will remain separate, with one serving developers looking for a conservative, stable platform and the other serving developers seeking bleeding-edge development, remains to be seen. There are indications that the two projects might merge at some point in the future. In the meantime, Node 0.12 represents yet another step forward for the growing number of developers building server-side JavaScript applications. 

Be sure to read the next Languages article: Joyent Appoints Node.js Foundation as Sole Arbiter