Goodbye Joyent, Hello Node.js Foundation

Thomas Greco
Thomas Greco
Share

Last December, the world of server-side JavaScript was forever changed with the release of io.js. Since its release, io.js has had an immediate impact on the world of server-side JavaScript as it created an alternative platform to Joyent’s Node.js, or more simply known as Node. Those behind io.js built the platform to stay current with the latest features of the v8 JavaScript engine, something that Node.js failed to do. As a result of io.js’ impact, Joyent decided to give up sole ownership of the project to the Node.js foundation, a third-party made up of developers from some of the world’s top technology companies. Although the Node.js foundation continuously reached out to io.js to merge back with its predecessor, it would ultimately be a few months before io.js agreed to merge with the Node.js foundation. It will operate under the name Node.

To help you get the most complete overview on the success of io.js, in this article I will discuss what sparked the creation of the new platform, the key individuals behind it, and the governance model which I believe made this project so unbelievably successful.

nodejs-logo

What Sparked io.js

Oddly enough, many of the core developers at Joyent were behind the creation of io.js as a result of a bit of discord between the development team building the platform, and the administration in charge of implementing new builds. To help solve this problem, the developers at Joyent worked to craft a new model as background to develop the platform. However, their conversations with the administration went nowhere. Often, developers working on the Node.js platform would have to watch the code to which they dedicated a great deal of time sit on a shelf which was disheartening. As time continued, tension continued to grow. Things changed when Fedor Idutny, a core developer at Node, took the liberty to fork Node.js, thus marking the creation of io.js. Idutny knew that he had the support of colleagues, and was confident that the project would be successful in providing a platform which supplied the latest support for ES6 on the server-side.

The Immediate Impact of io.js

The impact io.js had on the JavaScript community is simply remarkable. In just three months, the success of io.js has forced Joyent to realize that they were not properly maintaining Node, and that they needed to implement a new solution. Therefore, Joyent gave up sole-ownership of Node, and founded the Node.js Foundation, which welcomed developers from Microsoft, IBM, PayPal, and other companies known for their technological prowess. This was more or less the equivalent to Joyent waving a white-flag to io.js, which had already began to prove itself as a legitimate platform. Once created, the Node.js foundation immediately reached out to io.js to merge. Nevertheless, the Technical Committee at io.js opted to stayed true to their initial intentions, and not merge with Node.js until they truly believed that both teams shared the same vision.

Within a matter of weeks, the io.js community controlled the pace of server-side JavaScript development. They constantly implemented updated versions of the platform with functionality way beyond that of Node, which in turn proved detrimental for Joyent. From the beginning, the io.js community was successful in building a platform that ships with a far more superior v8 engine version. Node’s most recent major release, 0.12.0, is built on top of version 3.28.73 of the v8 JavaScript engine, which was released in August of 2014. On the other hand, io.js v2.2.1 ships with v8 version 4.2.77.20. The use of outdated functionality on Joyents’s behalf was unacceptable. Specifically, this lack of functionality burdened developers all around the world who wished to get acquainted with using the latest in ECMAScript functionality on the server.

If you visit iojs.org, you will notice the quote “Bringing ES6 to the Node.js Community,” and that is precisely what the new platform did. Additionally, providing ES6 functionality is not the only area in which io.js has excelled. Since the release of io.js, Raygun.io has conducted two series of tests comparing the platforms; the most recent experiment io.js v2.0.0 was compared to version 0.12.2, and 0.10.38 of Node. During both tests io.js proved to be the faster framework, and the platform even showed an increase in performance from an earlier series of tests which had compared io.js v1.2.0. Although this is just one series of tests, io.js outperformed Node.js when using the http, express, and Koa modules. As stated in Raygun.io’s article:

the charts do provide some interesting food for thought, and may provide a springboard for you to perform your own real-world tests, and potentially gain a significant speedup.

In my opinion, they are indeed interesting pieces of information regarding the raw power of the platform.

Open Source Prevails with the Open Governance Model

It would be hard to imagine this success without the support io.js received from open-source community. In order to generate such a response, there had to be an extremely solid model in place that could govern an open-source project of this magnitude. Luckily, many of the core individuals at io.js had first-hand experience with the problems that arose at Joyent, and this experience has had an extremely positive influence on the creation of the open-governance model under which io.js would ultimately succeed.

At the top of this governance models sits the technical committee (TC) – a group of six to twelve people in charge of ensuring the proper technical direction for the platform, modifying project guidelines, and more. The TC was put in place to ensure the io.js team stayed on course. There are strict guidelines for TC membership. For instance, no more than one-third of the TC may work for the same employer to help ensure a balance of power between members. Below the TC sits a team of collaborators appointed by the committee after they make significant contributions to the project. These collaborators are in charge of reviewing pull-requests made by contributors and implementing changes in the project.

As the project progressed, the io.js TC met each week to discuss the current state of the art. The constant communication between the TC, collaborators, and contributors ensured that this project consistently moved forward. Moreover, general public is not only kept informed of new things features, but deeply involved in the discussion. In this way, the group quickly achieved a great deal of success as a result. They implemented things such as a weekly newsletter on io.js’ medium page. which recaps any change in the platform, and keeps people informed of the latest updates. We can say that comparing io.js’ constant influx of information and growth to that of Node’s throughout the past year is like comparing night and day.

The Merger

As io.js continued to grow larger, a significant amount of time and resources were poured into a project that lacked any commercial resources. In the article titled Growing Up – io.js needs a foundation, Mikael Rodgers discusses why the time for the merge must be now, before the projects grows too large. I highly suggest you to take a quick look at it. The author explains that although the open-source community has been doing a great job controlling io.js, a project of such substance needs more than just an open-source community to thrive.

Conclusions

In conclusion we have to admit that even if Joyent was not the best administration when handling Node, they provided the necessary assets for financing, marketing, legal matters, and all other resources necessary for a project of this size. That being said, io.js, which will now be referred to as Node.js, had an unbelievably successful run.

Frequently Asked Questions about Node.js Foundation and Joyent

What led to the transition from Joyent to Node.js Foundation?

The transition from Joyent to Node.js Foundation was primarily driven by the need for a more open governance model. Joyent had been the corporate steward of Node.js, but the community felt the need for a more inclusive and transparent model. This led to the creation of the Node.js Foundation, which is committed to the continued growth and evolution of Node.js, while maintaining the spirit of open governance. This transition has allowed for greater community involvement and has helped to ensure the long-term sustainability of the project.

How has the transition from Joyent to Node.js Foundation impacted the development of Node.js?

The transition has had a significant impact on the development of Node.js. The Node.js Foundation has implemented an open governance model, which has allowed for greater community involvement. This has led to a more diverse range of contributions, and has helped to drive the continued growth and evolution of Node.js. The Foundation has also provided more resources and support for the project, which has helped to ensure its long-term sustainability.

What is the role of Joyent in the Node.js Foundation?

Even though the stewardship of Node.js has been transferred to the Node.js Foundation, Joyent continues to play a significant role in the project. Joyent is a Platinum member of the Node.js Foundation and continues to contribute to the project. Joyent also provides commercial support for Node.js, offering a range of services including training, consulting, and technical support.

What are the benefits of using Node.js?

Node.js is a powerful JavaScript runtime that allows developers to build scalable network applications. It is known for its efficiency, scalability, and its non-blocking I/O model, which makes it lightweight and efficient. Node.js is also supported by a large and active community, which contributes to its continued development and provides a wealth of resources for developers.

How can I get started with Node.js?

Getting started with Node.js is relatively straightforward. You can download the Node.js software from the official website, and there are numerous online resources and tutorials available to help you get started. If you’re looking for more structured learning, there are also many online courses and bootcamps that offer comprehensive training in Node.js.

What is the future of Node.js under the Node.js Foundation?

The future of Node.js under the Node.js Foundation looks promising. The Foundation is committed to the continued growth and evolution of Node.js, and is working to ensure its long-term sustainability. The open governance model allows for greater community involvement, which is likely to drive further innovation and development.

How does the Node.js Foundation support the Node.js community?

The Node.js Foundation supports the Node.js community in a number of ways. It provides resources and support for the project, and works to foster an inclusive community. The Foundation also organizes events and conferences to bring the community together and to promote the exchange of ideas.

What is the relationship between Node.js and JavaScript?

Node.js is a JavaScript runtime, which means it allows JavaScript to be run outside of a browser. This has opened up a whole new range of possibilities for JavaScript, allowing it to be used for server-side scripting and for developing a wide range of applications.

How can I contribute to the Node.js project?

There are many ways to contribute to the Node.js project. You can contribute code, report bugs, and help to improve documentation. The Node.js Foundation also welcomes contributions to its various working groups, which focus on areas such as community, technical direction, and long-term support.

What resources are available for learning Node.js?

There are numerous resources available for learning Node.js. The official Node.js website provides a wealth of documentation, and there are many online tutorials and guides available. There are also many online courses and bootcamps that offer comprehensive training in Node.js.