What The Node.js Fork Really Means: A Dissident Speaks


Last week, major contributors to the popular programming framework Node.js “forked” the project, creating a rival version called IO.js. Despite earlier warnings that a fork might be brewing, the schism surprised the open-source community supporting Node as well as its corporate overseer, Joyent. 

See also: Popular Coding Framework Node.js Is Now Seriously Forked

Now one of the leading dissidents to the Joyent Node project, Isaac Schlueter, has put out a statement apparently intended to calm the waters a bit. Schlueter, Node’s former project lead and currently its number-two contributor, writes that IO won’t “compete” with Node or Joyent and expresses hope that the IO and Node projects will eventually merge once the company resolves issues related to its management of the project.

Node and IO are both open-source frameworks that manage real-time communication for server-side Web applications written in JavaScript. They’re designed to speed up applications by handling user input and output in an “asynchronous” fashion that keeps requests from interfering with one another.

Schlueter lays out the history of IO and its relation to Node Forward, a community effort to improve Node, how the fork happened and where he sees IO going from here. His personal FAQ is a long piece that delves fairly deeply into the minutiae of how Joyent has been managing Node and how the alternative open-source version evolved. (For background, see my earlier piece on the underlying issues facing Node and its big contributors.)

See also: Why Node.js Is Facing A Possible Open-Source Schism

Essentially, Schlueter casts IO as a way to let community developers push ahead with new features free of Joyent’s conservative management philosophy, but with the possibility of re-integrating those additions into Node proper at some point down the line.

Here are excerpts from Schlueter’s FAQ dealing specifically with IO and its mission:

What is IO.js?

IO.js is a collaborative fork of joyent/node. IO.js is created by Fedor Indutny, a long-time active node core team member responsible for some of the most important parts of the Node.js runtime.

IO.js continues the work that was previously being done by Node Forward in the node-forward/node repository. We hope to merge with the original Node.js project at some point in the future.

Why was IO.js created?

On November 26, Fedor Indutny, an extremely prolific Node.js core contributor, and an active participant in Node Forward, decided that he would create a fork of Node.js with a different name, so that the technical work started in Node Forward could continue in public without violating Joyent’s trademark.

The Technical Committee that had previously been working on node-forward/node decided to move to the IO.js repository. The other non-technical discussion repositories remain on the Node Forward organization at this time.

Does IO.js compete with Joyent or Node.js?

No. 

The intent of IO.js is to provide a space for the Node core team to continue to do the work of improving Node.

IO.js continues the efforts of Node Forward. We are committed to making forward progress and serving the Node.js community, both in technical and non-technical issues.

The work being done in the Joyent Node Advisory Board appears to be heading towards shared goals for the good of the Node community. I expect that this will continue.

The Node community as whole is endeavoring to make a change. The transformation is in progress and we expect to come out better for it. IO.js is an ingredient in the process of change, a spark. The future is large, and we continue exploring it.

What are the goals of IO.js?

In no particular order:

● Continuous integration
● 100% passing tests as a normal state of affairs
● Strict SemVer-compliant versioning
● Contributor ownership, outside of corporate control
● Transparent consensus-seeking governance
● Weekly releases
● Supported versions of V8
● Active development
● Predictable roadmap
● Community engagement

Assuming the Joyent Node Advisory Board continues to make progress towards these goals, we expect to merge the projects in the future.

Read the rest of Schlueter’s post here.

Lead photo by zeevveez

Facebook Comments