DEV Community

Sumedh Patkar
Sumedh Patkar

Posted on

ELI5: Why was Deno necessary when we had Node.js

Can anyone explain to me like I'm five - Why deno was created when nodejs existed?

Consider me as a beginner who has written 3-4 server-side programs in node.

P.S. - Please don't post a link to Ryan Dahl's video

Top comments (4)

Collapse
 
vonheikemen profile image
Heiker

Why deno was created when nodejs existed?

So, okay, we (as a community) don't need deno. Deno exists because Ryan Dahl felt the need to create "an environment" where he could play around and create something quickly but it could also allow him to create "entreprise quality software". He said in a conference talk that he thinks node is very close to that but that it isn't perfect. I think deno is basically what Ryan thinks node should be by now.

Collapse
 
merri profile image
Vesa Piittinen

You get modern JS out-of-the-box (not only TypeScript). Node came out when ES5 was a new thing.

You have only a single executable with no need to think about node_modules. Makes it very easy to install. I value this greatly, so much less pain. Back when Node came out this was one of the biggest issues and concerns I had with it.

You don't have Node.js baggage of history that you eventually have considering how much JavaScript has evolved in the past 10+ years.

Making big updates to Node is near impossible without breaking the ecosystem. Deno made so many things differently to Node you'd have never gotten the features via Node. You get improved networking.

It is the greatest excuse to have a cute dino logo that has ever existed.

Collapse
 
pieterbergwerff profile image
Pieter Bergwerff

As Ryan is saying in his video; it’s a rethink of how he would develop Node right now.
So for example everything in Deno is typed with Typescript. This leverages a lot less bugs during development.
Also Deno has no centralized module packager like NPM. That means you can import your modules from wherever you want.
A security advantage is that you have to specify which apis to use when running your app.

Collapse
 
siy profile image
Sergiy Yevtushenko

I've worked on few libraries during my career and every time I observed the same pattern: I write implementation (perhaps incomplete); I have feeling that something is wrong with it; I rethink how it should be implemented and rewrite library from scratch; repeat.
I realize that this is just a (perhaps unnecessary) perfectionism but I'm not alone with such approach.
Perhaps Ryan Dahl is also among such persons. If so, I understand his reasoning for creating Demo very well :)