Node.js is one of the hottest technology for web services. However, its development velocity has slowed significantly over the last 2 years.
As a result, io.js was created by many of node.js’ top 10 contributors and the CEO of npm.
Now, every developer and company using node.js has to make a conscious and well-informed decision of which distribution to use.
This presentation tries to explain the history, compare both options as objectively as possible and make a recommendation for most use cases.
3. …but node cannot keep up
https://github.com/joyent/node/graphs/contributors
4. What‘s iojs?
A fork led by many of node.js’ top 10 contributors and the
CEO of npm.
Its goals are to fix what node.js currently lacks:
• Supported versions of V8
• Active development with weekly releases
• Continuous integration and 100% passing tests
• Contributor ownership, outside of corporate control
• Transparent consensus-seeking governance
• Community engagement
• Predictable roadmap
• Strict SemVer-compliant versioning
http://blog.izs.me/post/104685388058/io-js
8. Node‘s reaction
Node.js has reacted by releasing node 0.12 to maintain
feature parity with io.js and bump its own v8 version to a
supported version.
As a result, every developer has to make a conscious
and well-informed decision of which distribution to use.
9. node.js vs io.js
• Clear long-term interest
(due to Joyent ownership)
• Full support with cloud
hosters and package
managers
• Widely known and
recognized brand name
• Very active community
• ES6 support (no flags for
completed features)
• 100% passing tests
• Slightly higher performance
• Fast releases using semver
11. Lastly, reconciliation?
The io.js community is adamant about maintaining
feature parity and frequently creates PRs to node.
Both sides have repeatedly stated their general intent of
reconciliation. The most promising scenario at the
moment is described at length here: the Node
Foundation will consist of two parts, the first being a
Foundation Board (Marketing, Fundraising, Legal) and
the second being an independently operating Technical
Committee.
12. Conclusion
Ultimately, both node.js 0.12 and io.js are fully
compatible and can used interchangeably.
It stands to be expected that io.js will continue to have
more community contributions and thus, introduce and
release features as well as fix bugs before node.js does
(e.g. unhandled promise rejection handling).
For larger codebases, upgrading from 0.10 to 0.12 to
use ES6 features, such as generators, can get more
complicated than upgrading to io.js because harmony
flags have to be added into all automation scripts
(testing, building, …).
I would recommend to use io.js right now, reap its
benefits and to delay a “final”/irreversible decision until
both projects actually diverge.