Thursday, June 20, 2024

The Evolution of Node.js: An Origin Story

Programming LanguageThe Evolution of Node.js: An Origin Story

When it comes to web development, certain technologies stand out for their transformative impact. Node.js, a server-side JavaScript runtime, is one of those puppies. Node.js reshaped how developers approach building scalable and efficient servers.

Ryan Dahl, the brain behind Node.js, may have started this journey by studying mathematics, but he found his way into his new career the way many do: doing random work (like working on a snowboard marketing website) in random places (this time, South America). Dahl would soon end up in Germany, where he moved closer to lower-level technologies in the web stack.

🍿 Watch the full documentary here 🍿

Back in 2008, interactive websites were still hard to come by and even harder to put together. And that’s what Dahl wanted to work on. He built the first version of Node.JS in Cologne. For Dahl, basically everything in his life stopped apart from Node. From February to October, it was his full-time work.

“My original goal with Node was to force developers to easily build optimal servers by forcing them to only use async IO… What I want to make is a non-blocking infrastructure so that you can make very highly concurrent servers, and you don’t need to know about it.”
Ryan Dahl

In 2009, Dahl gave his first live demo at JSConf. He knew this might be his one big chance to get Node in front of people and to get their attention. Luckily for him, it all went according to plan.

“I’m so glad that demo worked because it was very you know… who knows? The Wi-Fi could have gone out. I mean it’s 2009… but thankfully that went really well and that really jump started the node project right. A lot of people saw that talk and and got involved in it.”
Ryan Dahl

After a few iterations, Node.js started to pick up traction, and fast. Isaac Schlueter gave it a test early on but quickly put it down. Only after another developer at a tech talk suggested he give it a try, did he pick it up again. The second time around, the value was obvious to Isaac and he became one of the tech’s early adopters. He soon put together the Node Package Manager (NPM), embedding himself in the community in a way that would only grow with time.

At this time, Stack Overflow was a popular place for the tech community to troubleshoot topics. You could ask questions and hopefully get answers. The Node team found that the website was quickly covered in questions about Node, which no doubt led not only to a lot of answers but also a lot of visibility. With Node popping up everywhere, it was just a matter of time before it took over. Given how ubiquitous Node.js is now–being used in basically everything, from x to y to z–you can imagine how quickly its community grew.

Enter: a new era, ie Joyent

Working with people is always going to be a little complicated. Now, try working to reconcile a company and a pre-existing community. When Dahl sought funding to get Node going strong, he found San Francisco-based Joyent to be among the most promising partners. As expected, there were some growing pains.

While wildly popular and useful, Node was still a new technology. LibUV and its Windows (in)compatibility became hot topics for the team.

Yes, you heard that right. While it worked great on Mac and Linux, it was far from ready for Windows. Bert Belder, xxx, was the one to push for the massive undertaking to ensure Node.js would one day run fantastic on Windows. Though it’s easy for today’s Node users to forget this point in time, it was a huge victory for the team. It’s hard to imagine the tech getting anywhere near as famous as it is without Windows usability.

“It was a super successful project. These days, Node runs fantastic on Windows. I don’t think it’s really an accomplishment that is celebrated or even known about that much, but it was a massive undertaking.”
Bert Belder

As Node.js grew and matured, Ryan Dahl started to feel the burnout. Without that initial passion and drive that had kept him going for years, he decided it was time to move on. For some, this decision to leave meant a lot more than just what Dahl would do next. It was a sign for other developers that it was okay to move on. He didn’t have to stick around, year after year, grinding away on something just because he had started it. He could hand it over to people who had the passion to work on the project the way it was at that time. And that’s how it ended up with Isaac Schlueter, who took care of it just like Dahl had before.

Under Schlueter’s leadership, Node.js witnessed a surge in contributors and popularity, but challenges emerged with the corporate identity associated with Joyent. Schlueter found himself often painted as the face of Joyent. Rather than an impartial developer, it was easy to see him as just another brightly colored corporate t-shirt. And with time, that need to reconcile the pre-existing community with corporate needs began to take its toll. That’s where the fork comes…

Call me when you wanna fork

But where tensions really peaked was the creation of the ijs fork, as contributors sought a more community-driven governance model. While core contributors were strongly advocating open governance and inclusivity, this didn’t exactly work for Joyent. After a lot of back and forth, the Node team was able to stop efforts to fork.

That is, until they world woke up on Thanksgiving morning 20xx and found that a fork had been created. And while everyone was quite shocked and upset that morning, all these years on, it is a little bit funny.

And in the end, negotiations between the Node.js community and Joyent ultimately led to reconciliation and the merging of ijs and Node.js.

Finally, we come to the Node.js Foundation. And with that, we can say that Node.js really entered into maturity and became the creature we know it to be today. The journey from random daydream to Joyent to the Node.js Foundation showcases the resilience of open-source projects. There’s no doubt it would be what it is today without all of the community commitment that got it here. So here’s to you, Node devs! 🙂 Thanks for all your work.

Want to watch the full story? Check out Node.js: The Documentary here.

Check out our other content

Check out other tags:

Most Popular Articles