What is the difference between node.js and io.js?

Javascriptnode.js

Javascript Problem Overview


What is the difference between io.js and node.js? The more recent io.js is forked from node.js, and is furthermore made by some of the same people that made node.js.

What are the key differences that have lead to this fork, and what does it mean for the node.js community as a whole?

Javascript Solutions


Solution 1 - Javascript

io.js is a fork of Joyent's Node.js

What are the differences?

io.js:

  • Node-forward is basically being merged into io.js
  • forked on the basis of community-driven development and active release cycles
  • includes many of the original Node.js developers
  • has the future goal of "merging back with Node.js"

> This repository began as a GitHub fork of joyent/node where contributions, releases, and contributorship are under an open governance model. > > We intend to land, with increasing regularity, releases which are compatible with the npm ecosystem that has been built to date for node.js.

Node.js:

  • the original software
  • has slowed down development in recent time
  • sponsored by Joyent
  • Joyent owns the trademark Node.js

Why did they split?

It was primarily split for three reasons: faster, more active releases and development towards a 1.0.0 release, for a more community-driven development rather than the Advisory Board, and the use of semver for releases.

What is the advisory board?

The Advisory Board was Joyent's plan to bring Node.js a more centralized, faster way to plan development and plan future features along the road towards a 1.0.0 release. This was planned to be done by putting together a board of larger companies that use Node.js

Quote from Joyent's blog:

> As the community becomes more complex, it is important that we find ways to balance the needs of all constituents and provide a platform for these organizations to come together and to provide input into the project.

Why is the advisory board hated?

Previously, Node.js was run via mailing lists, GitHub issues, and anyone could contribute their idea. This idea started getting some hate because it brought control away from your average, everyday contributor and moved the power to the "big shots": companies such as Walmart, Yahoo, IBM, Microsoft, Joyent, Netflix, and PayPal.

Outside sources on this

Solution 2 - Javascript

In fact, there are practical differences between Node.js and io.js. Some facts forgotten by other answers:

  • Currently, io.js is, in multiple aspects, a bit faster than Node.js. A performance benchmark can be found here.
  • io.js's ECMAScript 6 support is much broader than Node.js. Comparison can be found here.

Why? Because io.js 1.6.2 ships with Google V8 4.1.0.25, and Node.js 0.12.1 ships with V8 3.28.73. Also, flags for ECMAScript 6 are different between Node.js and io.js. io.js's guide to ECMAScript 6 flags can be found here.

Solution 3 - Javascript

TL;DR io.js is the future incarnation of node.js.

The io.js website says: "io.js is a node & npm compatible javascript platform." It's a set of tools (a runtime/VM, a package manager, etc.) which is compatible with what currently exists as node. Any differences will presumably be in the underlying implementation, and any extensions that io.js adds beyond the node.js feature set.

(Why would something compatible with what already exists divide the community? Why's that a bad thing?)

Note that io.js hasn't even been released yet! However the io.js roadmap illustrates some particularly relevant differences between node and io.

  • "Node is pretty damn stable already" and yet Node still hasn't hit 1.0; it's currently at 0.10.33.
  • "The entire ecosystem uses semver while node uses a confusing even/odd release structure." By introducing a new name for a new(ish) project, they'll be able to fix that.

So as I understand it, io.js is the 1.0-alpha1 and future release of node, but with:

Solution 4 - Javascript

io.js was a fork of node.js. But now io.js and node.js again collaborate. So that's why node.js directly jump from 0.12.x directly to 4.0.0 as node.js version 4.0.0 includes all the major updates from io.js version 3.0.0

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmaudulusView Question on Stackoverflow
Solution 1 - JavascriptBrendanView Answer on Stackoverflow
Solution 2 - JavascriptGabriel TomitsukaView Answer on Stackoverflow
Solution 3 - JavascriptMatt BallView Answer on Stackoverflow
Solution 4 - JavascriptVIKAS KOHLIView Answer on Stackoverflow