Node.js vs io.js

by | March 2nd, 2015

Here at PINT, we use Node.js not only to power some of our own internal apps, but for the apps we develop for clients, as well. In recent months, there has been a lot of buzz surrounding the new kid on the block: io.js.

What’s up with Node.js?

road sign for changes in the node.js community
io.js is a fork of Node.js with the goal of an Open Governance Model. This stands in contrast to Joyent’s control over Node.js. Joyent, a cloud infrastructure organization, has done a great job in keeping a focused goal in the project. However, many argue Joyent’s stronghold hinders the fast paced development the Node community needs. The project has not even reached their v1.0 release milestone, which many attribute to being indecisive and slow to move. One of the biggest complaints against Node is the lack of urgency to update its dependencies, including its use of an older version of the V8 engine.

With much pressure from the Node.js community, Joyent established the Node.js Advisory (https://www.joyent.com/blog/node-js-advisory-board) back in October to:

  • Try to bring more ideas to the table
  • Have a committee that discusses the direction of Node.js
  • Be more transparent about their decisions

While this was a step in the right direction, many in the community were still not convinced that Node.js would get the immediate attention it needed.

io.js: an alternative to Node

Enter io.js – a fork that not only is compatible with Node.js, but also looks to move fast, use the latest and greatest v8, and to be completely community driven. This isn’t a bluff either, as many of Node.js’s core contributors are heading this project.

Fast forward to today: six weeks from the initial release of io.js to the public. io.js has taken the web by storm and tons of buzz has surrounded it’s every new version release.

io.js stories on hackernews
Joyent is in a complete scramble.

With many developers looking to make the switch to io.js, Joyent seems to be trying to bring the communities back together before a schism forms. Without speculating too much on which side is winning, we can agree that io.js has given Joyent the push it needs to take the advancement of Node.js a little more seriously, and to let the developer community have a bigger say in the decisions.

JavaScript gauntlets thrown

io.js isn’t an experimental technology but one that can be used in production today. A couple major players including GitHub’s Atom Editor and NW.js (formally known as node-webkit, a native app wrapper) have recently switched over to io.js. Even heroku is getting in on the action : https://twitter.com/HunterLoftis/status/555234067520565249 .

Since we’re talking about forks of Node.js, remember JXCore? A promising multithreading fork of Node.js that not only seems to work faster but can be compiled into an executable? Neither do we, but that begs an interesting argument : Is all of this hype towards io.js a fad or a political struggle?

haters gonna hate meme for some javascript community members

PINT’s stance

PINT is currently sticking with Node.js not because of politics nor a resistance to forward-thinking, but we are waiting out the storm. If Joyent is reading – real engineers are not so easily swayed by the fast paced world of web development. Those who stray down a path of uncertainty led by initial popularity will inevitably lose productivity somewhere along the way. We do encourage experimentation and open mindedness as long as a projected outcome is reasonably clear. With that being said, we are excited about the change in the JavaScript server-side community and look forward to what it will evolve into. If Joyent can’t keep their user base or possibly merge io.js back into their own, it could mean more and bigger changes for the Node community.



  • Patrick RoDee

    It just seems to me like a backlash against supposed “centralized” code. Even their membership qualification are similar:

    “Individuals making significant and valuable contributions are made Collaborators and given commit-access to the project.”
    “Team members are selected based on their contributions to the GitHub project and their domain expertise for a given subsystem.”

    I think developers are scared after Angular 2.0 was revealed. They took a bet on Angular because it was backed by Google and assumed it would be consistent and, lo and behold, it wasn’t. io.js just feels like a gut reaction against open-source projects with a company name attached to them.

  • Mike Schultz

    Good observation Patrick. Open-source projects tend to invite developers to collaborate with the community and to accept changes.

    Developers spend countless hours contributing to an open-source project without compensation in the hopes that they can contribute to project and it’s community. If the key-holders are the minority in a discussion and are not willing to accept changes that the community as a whole needs, it can become quite frustrating.

  • Ed Atrero

    Great post, Mike. This is a very timely discussion. There is an active discussion underway to merge the two (https://github.com/iojs/io.js/issues/978).