Fragmentation

No need to worry ☺

Since the initial launch of io.js there has been nearly universal positivity, praise, and excitement about the project and what it means for the future of Node.

One concern I’ve seen come up a few times is about “fragmentation.” I put this in quotes because I’m not entirely sure what people mean when they use it and so I’m left to ponder each context they might be referring to in order to respond.

Community Fragmentation

This is the most terrifying concern but is also the least founded. The community is still “the Node community” and that community has been doing the vast majority of its work outside of core and without Joyent.

We aren’t going to re-brand everything that was “node” to “io” and the trademark issues that prevented us from releasing a fork of node.js with the word “node” in it aren’t a problem for the rest of the ecosystem. Node is a commonly used term in programming and can’t be trademarked, you can use it freely without “causing confusion” that you are the trademarked “node.js” project.

I’m still running NodeConf, there will continue to be NodeSchools around the world. No need to worry ☺

Fragmentation of Effort

Being that one of the concerns that lead to io.js was a lack of releases and contributors it’s a valid concern that having two projects will reduce the effort being put in to any single project. However, this is unlikely to be the case for two reasons.

The first reason this is unlikely is that git and GitHub make merging between the projects relatively simple and since Joyent ditched their CLA both projects are free to merge between each other at will.

The second reason is that, in my opinion, io.js will gain more contributions and more active contributors than node.js. That might sound like a bold claim but you can already see it happening. The contribution policy is geared towards bringing in and encouraging more committers. The project is owned by a Technical Committee which is transparent and has a clear path to becoming a member rather than being owned by a single company. The system was designed by contributors to be attractive to more contributors.

I don’t see this as a zero sum game, we aren’t dividing the entirety of potential effort between two projects, we’re increasing the overall effort being put it.

No need to worry☺

Ecosystem Fragmentation

There are over a hundred thousand modules in NPM. It is the largest ecosystem ever built for an open source platform. The incentives to maintain compatibility are huge even between major versions of Node. Those incentives apply to both node.js and io.js. No need to worry ☺

API Fragmentation

No API changes other than the v8 API changes that come along with adopting a modern v8 release are planned today. But, you can imagine a future where io.js, or node.js, choose to adopt new APIs that differ in some way.

This is a valid concern, and one that neither implementation on its own can commit to avoiding.

The contributors to io.js are the same people who have been building node.js for some time. Part of moving forward is adopting new functionality and API but there’s no reason to think io.js is culturally split from node.js to the extent that it will go in a wildly different direction than we’ve gone to date. The biggest differences between the project are governance and release cadence, not their vision of what Node is or should become.

Node must evolve in order to meet the needs of its users. Broader participation in that process from the community has been a source of contention for some time and Node Forward has been working on broadening participation for some time. That work has now moved to io.js where it can be closer to core.

If there is some future divergence I’m confident that io.js will be moving in a direction aligned with the broad community of users and developers we commonly refer to as “the Node community.” No need to worry ☺


Logos are from Issue 37 in io.js.