Deno (part 1) - Why you should care

Should I care about Deno? Yes. Deno is immature, but a joy to work with.

Deno (part 1) - Why you should care

Deno is described on the official documentation as "Deno is a JavaScript/TypeScript runtime with secure defaults and a great developer experience."

It differs from Node, its more popular competitor, in that it is built on Rust, instead of C++.  Both projects were created by Ryan Dahl.  

Need I mention how cute the Deno mascot is?
  1. Security - Deno is secure by default.  Node is not.
  2. Modern syntax.  Things like ES Modules come as a default.  No more fooling around with require()!
  3. Typescript as a first-class language!  No more fooling around with convoluted setups just to get Typescript to compile in Node.  
  4. Decentralized packages.  Node is in practice bound up with NPM.  Regardless of the benevolence of an actor, having a single point of failure in an ecosystem is dangerous.
  5. Undoing Node's mistakes.  Javascript has changed for the better since Node was made.  Node has a lot of quirks that it can't change for fear of damaging legacy code.  Deno doesn't have that problem.
  6. It's fun!  Playing with Deno is the first time I've felt like working with non-web JS felt relatively intuitive.  

Will Deno replace Node?

The short answer is maybe.  Deno isn't necessarily intended to immediately replace Node.  Node has a mature ecosystem, and a functional package for just about any need you can think of.  

Deno isn't in its infancy.  But it is perhaps in its toddler years.  

Deno still feels somewhat immature for a few reasons.

  1. Package ecosystem.  Deno's packages are decentralized.  They can be downloaded from anywhere.  However, a handy list of many of them is available here. A quick scan reveals that (at the time of writing) there are only ~1,000 packages available.  As a comparison, NPM has over 1 million packages.  Despite the fact that this is certainly a long tail distribution, and many of these packages are unused or neglected, this is a significant difference.
  2. Dependency management.  Deno has no accepted package manager.  Instead, packages are cached directly from URL's.  Coming from JS, this feels deeply weird, and unnecessarily manual.  However, it doesn't mean that Deno is destined to be a hobbyist's platform.  Golang (Go) also lacked a package manager, but is now one of the most desired languages.

Should I try Deno?

My answer here would be a resounding yes.  A quick look at the Deno repository shows that it has a large amount of momentum, with ~67k stars at the time of writing, and highly active development.

Predictions are dangerous, and only time will tell if it eventually replaces Node.  But regardless, it is worth investigating, and is certainly a nice scripting environment for personal use.  

Where Node feels clunky and quirky, Deno is mostly intuitive, and a pleasure to work with.  

It might not be too many years before we are seeing job posts that request 5+ years of Deno experience. :)

Subscribe to joshuaa.dev

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe