Node.js, the popular JavaScript framework for building Web applications, has had a rough couple of months.
On the one hand, the thriving open source project has been adopted by some seriously established companies, including Walmart and Netflix. On the other, its developers are at odds over how and how fast to move its technical development forward—so much so that the conflict has literally split Node into two competing projects.
Worse, it’s not clear that this week’s San Francisco Node Summit made much progress in patching things up. While Node’s corporate steward Joyent agreed to hand off governance of the project to an independent committee, that decision hasn’t obviously paved the way for a reunification of Node or an end to the infighting over its future.
See also: Joyent Waves A White Flag, Hands Off Node.js To A New Foundation
So while Node itself is well-established and clearly not going away, it’s still in a precarious state.
The Node Fork Three Months Later
In late November, a group of influential contributors to the Node project created their own split, or fork, of the Node codebase. The intent was to advance technical development of the forked version—dubbed IO.js, after Node creator Ryan Dahl’s first-choice name for his invention—more quickly than the conservative, corporate-run Node. IO would also be run by community consensus—i.e., by its developers—rather than a “benevolent dictator” chosen by Joyent.
IO didn’t happen in a vacuum. It was a clear response to community members’ frustration with Joyent’s slow release timeline and the perceived heavy-handedness of its control over the project.
Since Node is currently in use at dozens of major companies and hundreds of smaller ones, Joyent prioritized stability and reliability over faster innovation. That led to conflict with the technical people who contribute to Node the most, who would rather be developing and distributing cutting-edge technology.
See also: Popular Coding Framework Node.js Is Now Seriously Forked
CEO Scott Hammond arrived at Joyent in the midst of this cultural divide, he blogged Tuesday, and has been working to resolve it ever since. More of a business expert than a technical expert, Hammond has struggled to win the trust of developers, who sometimes mock him for pronouncing the name of the project “Node dot jay es.” (The cognoscenti prefer “Node jay es” or simply “Node.”)
https://twitter.com/glennsc/status/565314683822153729
One of Hammond’s first steps was to create a Node Advisory Board that would include major developers as well as some of Node’s most influential users to offer advice on the project’s governance. While Node dissidents—several of whom took seats on that board—welcomed the move, it didn’t prevent the IO fork in early December.
See also: Why Node.js Is Facing A Possible Open-Source Schism
Joyent’s decision to back away from direct oversight of Node stemmed from advisory-board discussions. Major Node users like Microsoft will join as founding members, and other companies can secure a place on the board with an investment into Node of $250,000. The Linux Foundation, a larger and far more experienced open source governance foundation, will advise.
What The Foundation Can’t Shore Up
Establishing the Node.js Foundation, however, isn’t by itself enough to heal Node’s open-source schism. Isaac Schlueter, Node’s former project lead and a leading dissident, said the foundation needs to address two big remaining problems:
You have to keep the community engaged with the technical side of the project, and also let companies depending on Node put resources behind it. IO.js solved the first problem. The foundation directly solves the second. It’s still to be determined how the foundation will solve the first problem.
Furthermore, neither Joyent nor the foundation have made the new open governance plan public yet, which IO.js advocates like Mikeal Rogers find unsettling.
“They have not yet adopted a technical governance model or accepted the IO.js governance model which we advocated they should do,” he said.
The foundation won’t really take shape for another two to three months. This will be a crucial period for Node; decisions the foundation makes could exert outsized influence on whether IO contributors stay where they are or rejoin Node proper.
Node Isn’t Going Away
While many supporters of both Node and IO remain publicly optimistic about a reunification, it was clear at the Node Summit that the split is causing stress. Whenever a panelist mentioned IO on the stage, a hush fell over the crowd—followed by a barrage of tweets:
https://twitter.com/cyberseer/status/565567607202258944
Now addressing the elephant in the room/community at #NodeSummit: io.js #nodejs #iojs
If you split the community, you split the innovation.
— Dave Jensen 💉💉💉 (@djensen47) February 11, 2015
Find it amusing ppl tweeting w/ excitement when #iojs mentioned on stage at #nodesummit like they just heard a naughty word
— Charles Beeler (@charlesbeeler) February 11, 2015
It’s an awkward position for Node to be in. Four years old, it has only just established itself to the point where it no longer needs to convince clients why they should use it. Now it risks erosion of that goodwill while its community wrestles with itself in public.
Some companies, such as Uber and GitHub Atom, have already migrated from Node to IO. Now, video sharing service Vine is considering it too, the company told me.
Such moves could be a gesture of solidarity among developers, although they also likely reflect technical preference. The latest version of Node, for instance, runs on an older version of Google’s v8 JavaScript engine, 3.28.73, which Google no longer supports. Meanwhile, the latest version of the newer and more experimental IO runs on v8 version 4.1.0.14.
Photo of TJ Fontaine at Node Summit by Lauren Orsini for ReadWrite