Node.js, a popular and influential tool for building and running modern internet services, has split in two.

Late yesterday, some of its primary developers "forked" this open source project, creating a new version of the tool they call Io.js. The group was unhappy with the stewardship of Node's official sponsor, cloud computing company Joyent, so they've chosen to fashion a new version on their own.

"We don't want to have just one person who's appointed by a company making decisions," says Mikeal Rogers, a Node community organizer involved in the fork. "We want contributors to have more control, to seek consensus."

The split highlights the tensions that often exist between the corporate sponsor of an open source project and the many other coders and businesses who use it and help build it. Docker, the company behind a new approach to cloud computing that has exploded in popularity in the past year and half, is in a similar boat, with some community members complaining that the parent company has strayed from its original mission and one outfit going so far as to create a new rival for the project.

Commercial companies can benefit in big way when they open source their software, making it freely available to the world at large and encouraging others to test and improve the code. But balancing their own needs with the wishes of outside developers and users isn't always easy. Joyent, as a major user of Node, has its own requirements for the platform, but it also benefits from wide-spread adoption and contributions from other companies. The trick lies in keeping everyone happy, and it seems the company is having trouble doing do.

The question is whether yesterday's split will help the wider world of companies and developers that use Node. And that's an important question. Node is one of many new programming environments that are changing the ways developers build new applications. Its popularity has exploded since it was introduced five years ago, and it now underpins critical software at dozens companies ranging from corporate giants like GE and Walmart to nimble tech companies like LinkedIn, Rdio, and Uber.

Anatomy of a Fork

Node was created by software developer Ryan Dahl as a way of building and running entire online applications with JavaScript—the standard programming language for writing code that runs in your browser. Developers love it because it lets them to use a single language to write code that runs both in the browser and on the distant computer servers that feed data into the browser. Plus, it's suited to building applications that can juggle large numbers of simultaneous users, such as online games.

In 2009, Joyent hired Dahl, asked him to continue developing the project, and acquired the rights to the Node name. Three years later, Dahl stepped down as the project's leader, and soon disappeared from public life.

The project carried on without him, several coders from many different companies helping to develop the platform. But Rogers says that in the past year, both the number of contributions from the community and the number of updates published by Joyent has been steadily shrinking. "I was getting legit emails from people asking me if the project was dead," he says.

That's a big part of why the Io.js team—which includes four of Node's five biggest contributors since the project's inception—decided to fork Node. So far the project is identical to the version maintained by Joyent, but the developers plan to release their own custom version of the platform early next year which will include an up-to-date version of Google's open source JavaScript engine, V8.

But for Joyent CTO Bryan Cantrill, Node is alive and well, despite the slower pace of development. He says that Joyent has been focused on making Node faster and more stable, rather than adding new features. "You've got to look at the quality of contributions," he explains, "not the quantity."

A New Foundation

Rogers doesn't necessarily blame Joyent for the problems the project faces. But the Io.js team think the best way to resolve these issues is to create a new independent foundation to steward the project, outside the control of any single company. That said, the team hasn't actually set up this foundation because they're still hoping that Joyent will let them to use the Node.js trademark.

A foundation would make a certain amount of sense. Many companies—including NPM, NodeSource, and Strongloop—depend on Node, and many members of the Io.js team work for those companies. And some of the most widely adopted and best funded open source projects in history are owned by independent foundations instead of individual companies, including the Apache web server, the Hadoop data crunching platform, and the Linux operating system.

But the single company approach followed by Joyent and Docker has become increasingly common in recent years as open source has become more widely accepted in the business world, and sometimes this has worked out well. The massively popular programming framework Ruby on Rails, for instance, is still sponsored by its creator, a company called Basecamp.

Joyent has tried to make Node more inclusive by implementing consensus driven decision making process, and it has created an advisory board that includes many developers outside the company. But for many, the advisory board was too little too late.