Don’t worry, Nobody is Replacing Node, not Even Bun and Even less Deno

Let’s face it once and for all, Node is here to stay for a long time

Fernando Doglio
Bits and Pieces
Published in
7 min readSep 27, 2022

--

Photo by saeed karimi on Unsplash

Alright, just stop panicking for a minute, nobody is going to replace the runtime you’ve been using for years, so stop looking for more stable languages to learn, there is nothing wrong with JavaScript.

A few years ago when Deno was announced by Ryan Dahl, the creator of Node.js, the internet was flooded with articles asking if Node.js has its days counted.

Look and behold, Node.js is still around, so let’s understand what happened, and why I don’t think Bun is going to do any harm to our favorite runtime.

Deno didn’t kill Node

I mean, back then it was understandable for all of us to be a little bit afraid of Node’s future, since its creator was seen saying there were a lot of things wrong with Node.js from its conception.

I’m not going to list them all here, but you can watch the video from 2018 if you want to:

And look, he might or might not have been right about them, but according to him, they were problems he wanted to fix, so he did.

And he created Deno.

I’m not Ryan, so I can’t really tell if he was honestly thinking he was going to replace the only successful runtime for JavaScript on the back-end for the past 9 years with Deno.

Maybe he initially did, I don’t know.

The thing is, after a while, he created a company around it. Yes, Deno is more than just a runtime, it’s actually a company. And they quickly realized that instead of trying to beat their ugly cousin, they would be much better off trying to fulfill a market void that apparently Node.js wasn’t tackling: edge runtimes for JavaScript.

In July of 2022 I interviewed Bartek Iwanczuk for the 20MinJS podcast. He’s a developer of the Deno team, and we talked about how Deno is not after Node.js’s crown. You can listen to the full interview here if you’d like:

Now, why would they do this? I’m guessing here — again, I’m not Ryan nor do I work with him — that if you’re looking for investors for a company, you can’t just say “I have a better runtime so I’m hoping to replace Node.js everywhere with mine”.

That’s not going to get you money, at least not the type of money you’d need to quickly evolve your pet project into something that is enterprise-ready and has a support structure ready to take on the king.

So they pivoted. And good thing they did, they’re doing great right now and Deno Deploy looks like a fantastic piece of technology. Their aim is not (and probably has never been since the creation of the company) to replace Node.js, they understand there is a place for both runtimes in our industry and they don’t expect companies that have been using it for more than a decade at this point, to migrate into something that is not 100% compatible.

And yes, it’s true, Deno’s latest version has experimental NPM support but it’s not meant to start replacing Node, but rather, benefit from the rich ecosystem of tools that have been built to this date with JavaScript but using an incompatible architecture.

Deno is not here to replace Node, now go to sleep.

But what about Bun?

Sure, yes, there is yet another “Node.js killer” that was recently announced and made a lot of noise when the community read about it.

I don’t see the Node.js community shaking their hands in the air and running in circles though.

What do you think they know that we don’t?

Oh, maybe it’s the fact that Bun is in its infancy still.

Yes, they recently announced Oven, the (aptly named) company around the runtime.

Sounds familiar? It looks like history is repeating again, isn’t it? You get an interesting JavaScript runtime, then you somehow get funding and form a company.

(What am I doing with my time and why haven’t I been taking a crack at this myself?)

Anyway, the point is, Oven is a fresh new company that is attempting to grow and develop the next best JavaScript runtime.

But will it replace Node.js?

Do you really have to ask?

No, it won’t. And that’s perfectly fine too.

Look, Node.js wasn’t the first JavaScript runtime to execute JS in the back-end, but it was the first truly successful one. And you know what they didn’t do? They didn’t turn it into a private company.

Node.js is part of the OpenJS foundation, and is led and organized by the Technical Steering Committee (TSC). Core collaborators are identified and suggested by the TSC.

This means that Node.js will abide by the industry standards and that it will listen to the community around it, no matter what, because it’s that community that’s moving it forward.

Bun doesn’t have to do that. They have their own goals as a company.

In fact, you can already see a bias in Bun’s internal support for JSX. That’s not an industry standard, that’s just a popular solution that some frameworks introduced because Web Components weren’t ready. But they are now and the industry is moving in that direction, why would you adopt a runtime that’s clinging to dying technology?

What’s that? You don’t agree with the current state of Web Components? That’s fine, many people disagree, but have you taken a look at Bun’s roadmap?

Currently, it’s sitting at 17 of 133 tasks done. It still has a long way to walk before it reaches a maturity level where it can be safely adopted by companies.

Not to mention that some of these tasks are to implement mechanisms that are missing now, like adding TLS verification to their fetch function.

I can’t help but think if the current amazing performance isn’t because Bun is skipping some corners right now. They might be only focusing on overall functionality and leaving the details for later, but what will be the weight of those details once they’re added and how will they affect the current “amazing” performance?

Time will only tell.

But how much time will that be and most importantly, to answer the question we’ve been looking into: what will the team behind Node.js be doing during that time? They won’t be sitting on their hands, that’s for sure!

Did you like what you read? Consider subscribe to my FREE newsletter where I share my 2 decades worth of wisdom in the IT industry with everyone. Join “The Rambling of an old developer” !

That’s always been my whole point. Any runtime that is attempting to take Node.js’s place has to overcome 10+ years of constant problem-solving and advancement.

It’s like this scene from IronMan 1:

You can think of Tony as Node.js and Bun (or any other Node-killer-wannabe) as Obadiah (the Iron Monger). If they attempt to be a “better and stronger version of Node.js” they better make sure they solve all their “icing problems” before they try to claim the throne.

And even then, Node will be 10+ years ahead of them.

How can a new runtime beat Node.js at this point? The Node.js project needs to end, that’s the only way I see it. As long as they keep moving forward and advancing the project, I can’t see anyone taking their place.

What do you think? Do you agree with me or am I missing something? Let’s talk in the comments!

Go composable: Build apps faster like Lego

Bit is an open-source tool for building apps in a modular and collaborative way. Go composable to ship faster, more consistently, and easily scale.

Learn more

Build apps, pages, user-experiences and UIs as standalone components. Use them to compose new apps and experiences faster. Bring any framework and tool into your workflow. Share, reuse, and collaborate to build together.

Help your team with:

Micro-Frontends

Design Systems

Code-Sharing and reuse

Monorepos

--

--

I write about technology, freelancing and more. Check out my FREE newsletter if you’re into Software Development: https://fernandodoglio.substack.com/