For starters, we were growing increasingly frustrated with Node’s stagnation. Node.js v0.10 came out in March of 2013, 10 months after v0.8’s release. Work on v0.12 began the same month. In January of 2014, Joyent’s TJ Fontaine claimed v0.12 was “imminent”. Yet v0.12 finally shipped in February of 2015, over a year later. Compared to previous releases, those two years of development didn’t bring many changes. Just look at API differences between v0.8-v0.10 and v0.10-v0.12. It’s sad that such a useful, popular project has run out of steam lately. Even Node’s latest release ships with old, unsupported versions of V8 (3.28.73) and libuv (1.0.2). io.js has current releases: V8 126.96.36.199 and libuv 1.4.0. These bring performance improvements, bug fixes, and many new features.
The decision to switch wasn’t driven solely by Node’s issues. Many of io.js’s features appealed to us. For example, io.js supports much of ECMAScript 6 by default, and its support is more extensive than Node’s
Lastly, we found that the effort to switch from Node v0.12 to io.js was quite small. Since we were already planning on upgrading to Node v0.12, the benefits of io.js were worth the slight increase in work. Ours was a bit of a special case, as we had to do tweak a few of our native modules. For most users, io.js is a drop-in replacement.
If you’re considering upgrading to Node v0.12, give io.js a try. You may be pleasantly surprised at the outcome.
- If you missed our downtime page, you can always view it here.
Thanks goes to #io.js on Freenode for their suggestions and corrections.
Please note that this post should not be construed as disparaging or insulting Node.js or its contributors. I personally wish them the best of luck and hope they can regain momentum. While we prefer io.js right now, that could easily change. After all, io.js was unheard of only 90 days ago. May the best product win. </small>