Ryan Dahl, and the story of his Wizardry in Opensource
Tags: webdev, javascript, opensource, programming
Published: 2023-09-07 10:07:00

On 16 February 2009, [a GitHub commit](https://github.com/nodejs/node-v0.x-archive/commit/9d7895c567e8f38abfff35da1b6d6d6a0a06f9aa) 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](https://tinyclouds.org), 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](https://github.com/midnqp/learning-to-code-in-nodejs/wiki/Event-Loop) for the first few years. With these two figured out after much efforts, came the big third one. Fork!


![Node.js code back in 2012](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/up3i8jd7xd586vf925xa.png)

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_.

{% embed https://github.com/nodejs/node-convergence-archive %}

The days were going swift with Node.js and Ryan, until... one day. [Golang](https://go.dev/) 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](https://openjsf.org/). Now, the project is in good hands having people like [James Snell](https://github.com/jasnell) from [Snyk](https://snyk.io), [Michael Dawson](https://github.com/mhdawson) from Red Hat, and [Matteo Collina](https://github.com/mcollina) formerly from NearForm in its Technical Steering Committee - tirelessly driving success, assessing latest developments in the field, and keeping the legend of Ryan alive!