DEV Community

Cover image for Ryan Dahl, and the story of his Wizardry in Opensource
Muhammad Bin Zafar
Muhammad Bin Zafar

Posted on • Updated on

Ryan Dahl, and the story of his Wizardry in Opensource

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!

Node.js code back in 2012

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.

GitHub logo nodejs / node-convergence-archive

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!

Top comments (13)

Collapse
 
scofieldidehen profile image
Scofield Idehen

This is insightful, what a nice way to tell the story of the most used backend language.

Thanks @ryan

Collapse
 
midnqp profile image
Muhammad Bin Zafar

Thanks @scofieldidehen!
I am glad you loved it 😀

Collapse
 
scofieldidehen profile image
Scofield Idehen

Awesome.

Collapse
 
overflow profile image
overFlow

I learnt the other day day that it is a runtime environment not a language...I was like :"Say What ???"
I tried downloading it but i got too old a computer.

I suffer here lol

Collapse
 
scofieldidehen profile image
Scofield Idehen

So sorry mate.

Thread Thread
 
overflow profile image
overFlow

It’s cool I’ll break through !!!!
I do other languages I’ll focus more on JS and get better.. cos it’s also one hell of a rabbit hole itself

Collapse
 
samucadev profile image
SamucaDev

Great post!

Collapse
 
vishalshinde profile image
Vishal Shinde

When the inventor of Node himself says It's no match for Golang. Go must be really something. damn

Collapse
 
midnqp profile image
Muhammad Bin Zafar

Yup, @vishalsh! Particularly for building microservices and scalable backends.

Collapse
 
overflow profile image
overFlow

Thank you for this one .Bravo and More Please!!!!

Collapse
 
midnqp profile image
Muhammad Bin Zafar • Edited

Sure thing! I got you covered, more incoming 🚀

Collapse
 
lylawa profile image
Lwla • Edited

I'm truly grateful for this one! Bravo, and I'm eager for more of your unique contributions. Please keep them coming!

Collapse
 
midnqp profile image
Muhammad Bin Zafar

It's always great to hear @lylawa 🎉
Let me know if there's anything specific you'd like me to write about!