On 16 February 2009, a GitHub commit was made. By a person who would later turn out to be the creator of two of the most successful, impactful, and standard tech platforms the world has ever seen.
It's the story of Ryan Dahl, the person behind Node.js and Deno. The mastermind behind the non-blocking asynchronous I/O model of Node.js - a radical approach at that time to process thousands of requests per second. A runtime that made JavaScript successful and gave it legs (i.e. through file system access) to pave the path for modern frontend development frameworks e.g. React from Facebook and Angular from Google.
The struggle, however, was real. First, he had to give up his addiction towards Abstract Mathematics - some people apparently loved doing maths, a rare breed! Second, he had to find a company which will be willing to fund this research and development for the first few years. With these two figured out after much efforts, came the big third one. Fork!
Forks in opensource are often good things, but not so much for an emerging technology that attempts to be a standard in handling web requests and developing server-side applications. Difference of opinions in certain aspects may cause a project to be forked and have the dedicated pool of contributors be divided into forks, competing against each other with a more limited and divided group of people. This isn't good news for Ryan.
With much negotiations, he was able to bring teams back together to focus on the main project. The remnants, however, of the fork still is found in some historical corners of GitHub. Its name was io.js.
Archive for node/io.js convergence work pre-3.0.0
Node.js Foundation - Node.js
This repository is the working repository for the proposed convergence of the
http://github.com/iojs/io.js and http://github.com/joyent/node projects under
the Node.js Foundation.
Contributions, releases, and contributorship are under the proposed
Governance and Developer Policy for the soon-to-be-launched Node.js
Foundation:
This project is operating with the oversight of the joint Node.js and io.js
core technical teams.
Note: The original io.js README.md is temporarily renamed to iojs_README.md.
The days were going swift with Node.js and Ryan, until... one day. Golang from Google came across Ryan, and its newer concurrency model to process web requests through goroutines and channels. It made a realization for Ryan:
Node.js is not the most effective approach to handling HTTP requests.
For more distributed applications or DNS servers, Node.js is no match for Golang. Despite having garbage collection built-in, the performance of Golang is unmatched and it compiles code into a easily-distributable single binary executable file.
Soon after this realization, Ryan left the Node.js opensource project 😕
Since then, Node.js is being governed by the OpenJS Foundation. Now, the project is in good hands having people like James Snell from Snyk, Michael Dawson from Red Hat, and Matteo Collina formerly from NearForm in its Technical Steering Committee - tirelessly driving success, assessing latest developments in the field, and keeping the legend of Ryan alive!