Change is happening in the Node landscape.
A group of rebels forked the main Node project, tired to wait for new versions and ES6 features. Their goal is to provide a npm compatible framework that always runs over the latest V8 version. The underlying goal is to profit from ES6 features that are being implemented in V8.
Today, Clever Cloud gives you the possiblity to run your io.js app in the cloud.
PRESS START
A soundtrack is available for this post, in order to cope with its visual artwork:
Here comes the rain again
It is inevitable. Agent Smith, Matrix Reloaded (2003)
Open Source generates diversity. Node.js fork io.js hits its version 1.0 (1.0.4 now). After a slight clash with Joyent last year, one of the Node.js developers, Fedor Indutny, decided to go on his own to maintain a new version of Node.js.
As mentionned above, the goal it to support the features of version 6 of the ECMA-262 specification [PDF], which implementation timeframe was judged too slow on Node.js.
Why is supporting io.js great?
While it is great to have a production-ready environment, addressing stability and security concerns, we are still nerds. We love to use cutting edge technology. The io.js framewok just released version 1.0.4. This is not a stable version. It is just a version different enough from the node.js project that io people just felt they needed to express it in the version number.
Is io going to replace Node.js on Clever Cloud?
No. We will go on supporting Node.js and io together. For now, the default is the latest Node.js version. In the future, the standard for server-side javascript might be io, or Node.js, or another framework that does not exist yet. It is still a young ecosystem.
Even if the entire community switches to another Node.js fork, we will still support Node.js for compatibility reasons.
How do I use io.js on Clever Cloud?
It's fairly simple: as you specified the Node.js version in package.json, you just prefix the version with io.js:
{
"engines": {
"node": "iojs-v1.0.3"
}
}
And that's it! The "node" executable will be the one provided by io.js.
What can I do with io.js?
First, you can do everything you could do with Node.js. In addition to that, io.js is mostly about new features. Check the "ES6 support" page: https://iojs.org/es6.html.
You can use Map instead of Object, you have out-of-the box Promises/A+, you can (and will) use the "let" keyword…
Credits & Thanks to nervewax for its great background image used for this post.