How Node.js Changed My Life

Sponsored by

Rocket Turtle, Node’s New Mascot

How It Started

$60,000, Google Chrome, and six months in a Starbucks. This was all that was needed to create the first prototype for Node.js.

Node.js was created in 2009 by a brilliant engineer named Ryan Dahl. If you don’t know his story, I would encourage you to read about it. It’s a good one.

I had just started college at the time, on track to becoming a petroleum engineer. I hated it, I changed majors halfway through, and ended up learning ARM and C as my first programming languages (for microcontrollers).

I remember those classes. They were hard. But they taught me the fundamentals and how to do things like memory management. And what pointers are. So when I transitioned to the web, I found JavaScript and Node.js to be different, but in a pleasant way. It was my gateway drug into web development.

I didn’t have to worry about allocating and freeing up memory because there’s garbage collection. Node.js was simple and easy to work with. There was only one rule: Don’t block the event loop.

Event Loop

I can write code in JavaScript (or TypeScript), enjoy fast startup times, and prototype quickly. What’s not to like about all of that?

Yes, there are things in JavaScript that are hard to explain. In fact, there’s an entire GitHub repository highlighting weird scenarios.

There’s node_modules, which gets bloated from long dependency chains and long install times. Getting ES Modules, TypeScript, and Jest to work correctly together is a pain.

The list goes on, but like all technologies, there’s always pros and cons. Like this ad.

Take control of your AWS spend and cut backup bills by 50%

As cloud adoption increases to run modernized applications, costs can quickly rise out of control. How do best-in-class companies manage their storage spend while continuing to grow the business? Clumio, a cloud-native backup solution, depends on cloud storage to run their entire business. They took a FinOps approach to optimizing their costs, and reduced their AWS dev costs by over 50%.

The Growth of Node.js

Many developers complain about the standard library. They say it’s not as complete as other languages (like Python or C#). They say it’s missing features like data manipulation out of the box.

But that’s okay. That’s the beauty of Node.js.

Node.js Runtime

It’s a JavaScript runtime. It allows us to run JavaScript anywhere and everywhere. We can build web apps, mobile apps, desktop apps, etc. SpaceX is even using it in outer space!

By keeping the core standard library small, it’s much easier to maintain. Anything else that’s needed, we can use external packages from npm or build it ourselves. I know it’s not perfect but over the last decade, the most used npm packages have matured. Many are battle tested and used in production for many years.

For example, Express, one of the most popular packages, was published over 13 years ago. The package is in millions of projects. Another is Axios, an HTTP client still widely used today.

Node.js has been a catalyst for the open source community’s growth. Many great developers sharing their work and helping others. New projects and tooling around the JavaScript ecosystem.

A great example of this is core-js. The creator, Denis Pushkarev, worked extremely hard to standardize JavaScript across the web. His project provided universal polyfills for the latest ECMAScript standards. His story is amazing.

Remember Lodash? John-David Dalton created this library. It’s used in more than 28 million repositories on GitHub. He also created esm, the popular ECMAScript module loader. Now, he’s working on Bun.

Matteo Collina, member of the Node.js Technical Steering Committee, created many projects for the community. You’ve probably used Fastify or Pino at some point. Yeah, he created them.

Without Node.js, there wouldn’t have been Deno or Bun. And there’s many more to come.

The New Wave of Developers

Is Node.js the answer for everything? Of course not.

Node.js is great at I/O operations and sending data over the network. But that doesn’t mean developers shouldn’t use tools and technologies they enjoy.

There’s countless examples of people complaining about Node.js. Here’s one. And of course, we can’t forget about this video.

Not only does this spread negativity (which we have enough of already in the world), but also confuses aspiring developers. Let’s discuss openly and share, but be kind towards each other in the community. After all, we’re all just trying to improve and get better each day.

Instead of gatekeeping, lets help the next wave of developers break into the industry. Regardless if someone has a degree, was a bootcamp graduate, or came from a different field, let’s welcome them with open arms.

Programming is not just a valuable skill in the modern age, it’s a superpower. Anyone can build anything at anytime from the comfort of their home.

How cool is that?

It’s important as developers, we don’t lose sight of the goal. There’s so much back and forth these days about how one language is better than the other. Or how one technology is superior. At the end of the day, it doesn’t matter. Focus on delivering value. John Carmack said it best:

"Software is a just a tool to help accomplish something for people - many programmers never understood that. Keep your eyes on the delivered value, and don't over focus on the specifics of the tools."

To the newcomers, it doesn’t matter how you start. What matters is that you continue to learn. After Node.js, I learned many other technologies like Kafka and Kubernetes. Several other programming languages like Python, C#, and Go. Looking back at how my career developed, I do consider myself lucky. But if you work hard enough and long enough, you will get lucky eventually. I believe that.

If you’re new, pick a language you’re curious about. Become a student of the craft. Don’t let AI distract you. Don’t use autocomplete. Go deep on topics. Learn how things actually work.

And most importantly, don’t give up, because the world needs more engineers like you.

P.S. If you’re enjoying the content of this newsletter, please consider subscribing or share it with your network: https://www.fullstackexpress.io/subscribe

What'd you think of today's edition?

Login or Subscribe to participate in polls.

Join the conversation

or to participate.