TL;DR;

Deno is a javascript runtime that can run in edge and server environments, with security built-in by default. The biggest feature by far for DENO is its conviction to Web standards, it implements many features using web-based standards which means more compatibility with browsers. Check out this tutorial if interested in learning if DENO is a good fit for your next project. Javascript has grown a lot in the last 20 years, it is time to leverage a runtime that has taken lessons learned from the past and applied those learnings to a new and stable runtime. Always bet on JS!

What is DENO?

Deno is a JS runtime open source project that was started by the creator of NodeJS, this runtime implements core principles that the creator felt should have been in NodeJS. What a great opportunity to create a project to right some of your wrongs, but I don't think they were all wrong in the beginning a lot of these improvements were learned in the years that followed. The big takeaway about Deno is, that it enables you to run TypeScript and JavaScript on the server and edge platforms, and many of the standard library modules are Web standard compatible. Standard compatibility means that the APIs are the same specifications created by the W3C standards body. This conviction goes a long way to anti-fragility.

Why is DENO the future?

The conviction to security and Web standards, I believe will slowly evolve into Deno being the clear Javascript runtime in the future, unfortunately, there are a lot of tools and higher abstractions built on top of NodeJS.

It is not always about features when choosing a runtime, sometimes a solution with core mission and sound foundation can be a real game changer.

Web Standards compatibility

Deno focuses on Web Standards compatibility, which means, Deno provides API's using browser standards as much as possible:

  • window
  • localStorage
  • navigation
  • crypto
  • fetch

Single and Secure Executable

Being able to bundle your application with Deno in a single binary with security flags specified makes distributing your applications extremely flexible for any platform. You can avoid constraints imposed by specific platforms, for example, if deployment platform only supports version x, and you deliver an executable wrapped with your preferred version of Deno, then the platform can't dictate your version.

It's in the box

Deno comes with JSX, TypeScript, REPL, Linting, Formatting, Testing in the box, no need to search for third-party tools and dependencies, these will always be supported. Β 

deno repl
deno lint
deno fmt
deno test

Decentralized Dependency management

Better dependency management by not having a central point of failure. Deno accomplishes this by using URLs to import modules. A URL can be a reference point to any address on the internet. Using DNS, you can easily have several origins that serve up content. This decentralized model provides redundancy and scalability. URL imports will give your team more confidence that code that is running on their environment is unchanged in production environments, especially with repositories like nest.land.

Nest.Land is a Deno code repository that uses ARWeave Blockchain to store all source code, which means the code is permanent and always available for a minimum of 200 years, but more likely forever. This can give consumers of your modules a great deal of confidence. It is impossible for even the owner of the software to delete from the ARWeave blockchain.

Built to run on the edge

The edge is a server network that distributes executable code to data centers around the world giving everyone with the internet very close proximity to the executable code. This is a perfect solution for web and mobile applications to significantly reduce latency and leverage near-user caching to create incredibly fast experiences for your clients.

Is it right for me?

JavaScript is here to stay and there are plenty of options, NodeJS certainly has the strength of being around in the server space for the longest, but it does not play well on the edge. Runtimes like Cloudflare workers, Deno Deploy, and others are starting to take shape. If your application requirements consist of low latency and stateless performance, give Deno some consideration.

If you start to feel fatigued by dependency nightmares and growing concerned about security threats via man-in-the-middle attacks or the number of open source libraries you have to trust that lack full support capabilities, then I would recommend looking for a Deno for your next project. Why not take it for a spin in this little getting-started tutorial I created [here https://github.com/twilson63/go.hyper.io].

Cons, why should I hold off on Deno?

People do not like change, sometimes change is hard, too entrenched in one technology and the "features" vs the "pain/risk" don't seem to be enough to invest in a migration. But I think the big one is Meta framework support, Deno does not have a good story for the meta frameworks. I think this will change in 2022, look at Remix, SvelteKit, etc.

Summary

DENO at version 1.17 is starting to mature as a JavaScript runtime, the edge computing space is ramping up starting to improve support for many different architectures, SPAs, MPAs, APIs, etc. JavaScript is here to stay, the web is here to stay and I believe DENO is here to stay, so if you bet on JS, consider betting on DENO, for our team, Deno has removed many pain points we experienced from the NodeJS ecosystem and we believe Deno has a very bright future.

BTW! Check out hyper!

⚑️hyper is our backend as a service product that lets you never have to say Kubernetes or AWS Web Services again. Check out our getting started docs at https://docs.hyper.io/cloud and get started building applications that can change the world! If you need help or just want to chat join our community at https://hyper.io/slack and say πŸ‘‹πŸ» Hi!