Reg comments15

Node.js fork io.js hits version 1.0 – but don't call it production-ready

Server-side JavaScript runtime makes major version break

The io.js JavaScript software development runtime, a fork of Node.js, has reached version 1.0, lapping the version numbering of the original project on which it was based.

Prominent Node.js developer Feodr Indutny created io.js in December 2014 after clashing with Joyent, the company that maintains Node.js, over the project's governance model. The io.js project is not managed by any one company, but is instead maintained by a technical committee.

With the release of io.js 1.0.1 on Tuesday, io.js is not only compatible with more than 110,000 Node.js modules (aka npm modules) but also features capabilities not yet found in Node.js, the preview release of which is only on version number 0.11.14.

The io.js developers are quick to point out, however, that the change in version numbering doesn't mean the new release is more mature or stable than Node.js.

"The choice to release as 1.0.x was not to signify that io.js should be considered production-ready, but because it was a significant enough release from Node.js™ to warrant a major version increment," explains a FAQ page on the project's website.

One key advantage of io.js is that the project's developers are committed to running it against recent build's of Google's V8 JavaScript engine. Node.js also runs on V8, but the forthcoming version will only bundle V8 version 3.26.33, while io.js 1.0.1 is built against version 3.31.71.4.

What this means is that io.js is able to support more features of version 6 of the ECMA-262 specification than Node.js can. ECMA-262, or ECMAScript, is the international standard upon which JavaScript is based, and the next version is due to be released in mid-2015.

A particular area of focus for the ECMAScript 6 effort is retooling the language's syntax to make it easier to build and maintain complex applications, something that should appeal to Node.js/io.js developers.

Among the ECMAScript 6 features supported in io.js out of the box are block scoping, collections, generators, promises, and new String methods, and still others are available if you run io.js using the "es_staging" runtime option.

None of this is to say that io.js is looking to "outdo" Node.js, however, or even that it's explicitly trying to compete with the Joyent-backed project. In a blog post from December, io.js contributor Isaac Z. Schlueter said that he could even see the io.js and Node.js efforts re-merging once a few remaining issues are sorted out.

"The work being done in the Joyent Node Advisory Board appears to be heading towards shared goals for the good of the Node community. I expect that this will continue," Schlueter wrote. "The Node community as whole is endeavoring to make a change. The transformation is in progress and we expect to come out better for it."

For now, however, the code for io.js 1.0.1 can be downloaded from the project's GitHub repository. ®


Biting the hand that feeds IT © 1998–2017