The turmoil surrounding Node.js, a popular open-source framework for building Web applications, has taken an interesting turn. A copycat version called IO.js is due to hit version 1.0 today, beating Node to a milestone that usually marks the transition from experimental “beta” to production software.
Node has been caught in a developer tug-of-war over the past few months. One faction of major Node project contributors recently “forked,” or split, IO.js away from the Joyent-managed Node. Part of the reason behind the fork was developers’ frustration with Joyent’s slow release schedule. Node still isn’t in version 1.0.
“This means that generators, promises, and a litany of other features are now available by default without even so much as running Node with a special flag,” Rogers told InfoWorld.
IO.js 1.0 will be better suited for developers than for users. Some of its unique features include asyncwrap, a function especially for debugging. It will be more advanced than Node.js proper, but also less stable for production.
Even as IO.js moves forward, its main proponents haven’t forgotten about Node.js. Several contributors to the IO.js project remain on the Node.js advisory board, including Node’s former project lead Isaac Schlueter and Strongloop co-founder Bert Belder. IO.js continues to be a place for developers to experiment, while Node proper remains a stable release for users.
As long as there remains overlap between contributors to Node and to IO.js, the two open source projects are split, but not separate. Joyent CEO Scott Hammond told ReadWrite that he believes reunification will come eventually because all the people involved have the same motivations. IO.js moves at a different pace, but the people involved remain interested in furthering the Node project, Hammond said.
“Node.js has always been about delivering production-grade code, and there are tens of thousands of organizations running on it now,” he said. “IO.js experiments with unstable technologies that the userbase isn’t quite ready to use. I think experimentation is great and there should be a role for that in the project and the community. You get healthy projects when you can experiment with things early.”
Photo by Craig Cloutier