Forked from the corp and running full steam ahead

Spare a thought for Joyent. The Node.js warders experienced a considerable disturbance in the force last November when API compatible divergent io.js came to light – and if that wasn’t hard enough, this week it’s beaten Node.js to version 1.0. Whilst forks are common in any open source project, the scale at which Node.js has grown (it’s employed by Red Hat mobile recruit Feed Henry, Dow Jones and ebay, to name but a few), means that any split in the community driving it was always going to create significant ripples.

Adding salt to the wound, so-called “spork” io.js’ development was led by one of the most active contributors to the JavaScript platform, who had become unhappy with Joyent’s stewardship. The biggest sticking point seemed to be pace – or lack thereof. And with io.js pipping Node to 1.0 post, they may well have had a point.

Moreover, a sizeable number of the community had been vocal about their frustration with the development of Node, and many contributors had expressed dissatisfaction with what they perceived as restrictive terms from Joyent. Although in late October a new advisory board was formed to allow for more community input, it was too little too late to stop io.js crystallising into being.

Whilst many feared the worst for Node with this new fissure, Joyent remained philosophical; VP of Product and Marketing Bill Fine told Voxxed, “Node.js has been forked many times. This particular fork happened a while ago with the purpose of working on code in a private repo and merging all that code back into the Node.js branch. The only thing that has changed since then is the name of the fork, which was changed from Node Forward to io.js, to stem any confusion for community members and contributors. At the end of the day, we remain committed to a high quality, enterprise-grade software project that organisations can commit to for the next five years and are confident in the mission of the Node.js.”

In defence to claims that Node.js development has slowed down (there’s been a near two year gap between versions 0.11.0 0.12), Fine cited the inevitable need for a “ trade-off of speed, quality and innovation,” but maintained that development was continuing at a steady pace. As with Oracle, who mould Java at an expediently sedate pace, Joyent has to take into account large enterprise customers, who, Fine notes, simply can’t “consume” releases quickly. For Fine, the members of the community who have been vocal about the rate of development are those “who only want the newest technology.”

Tellingly, as Lauren Orsini writes,  the new 1.0 release is very much a developer oriented release, lacking the reliability of Node.js. Unlike Node, io.js 1.0 uses the latest JavaScript engine release, coming coupled with Google’s V8 JavaScript engine, which uses many features of the ECMAscript 6 specification. Additionally, io.js 1.0 can support 110,000 npm modules and incorporates Streams 3, HTTP keep-alive (connection reuse) and debugging function Async.wrap.

There’s very much a criss-crossing of contributors between these two projects though, and whilst io.js is certainly speeding ahead of Node, boasting a host of new features that its forerunner lacks, it’s likely Node that people are going to be employing in production for the foreseeable future.

For this reason, both io.js representative Mikeal Rogers and Joyent CEO Scott Hammond believe a Node-io reconciliation could be on the cards, with the latter ultimately serving as a diplomatically run testing ground, and Node acting as the sensible corporate sibling. Furthermore, Rogers has also stated that ever since Joyent dropped its CLA, it’s relatively simple to merge the two projects “at will” with git and GitHub.

According to Hammond, whilst io.js moves at a different pace, fundamentally, “the people involved remain interested in furthering the Node project.”



Node.js “Spork” io.js Reaches 1.0

About The Author
- Editor of, focusing on all things Java, JVM, cloud-y, methodical, future-fantastic, and everything in between. Got a piece of news, article or tutorial you'd like to share with your fellow Voxxians? Drop us a line at

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>