What is Deno.js and why should you care?

Greg Fletcher - May 5 '20 - - Dev Community

TL;DR

  • Deno was created by Ryan Dahl, the creator of Node.js.
  • Deno is secure by default. Without permission, it cannot access files, network, or the environment.
  • Deno has TypeScript built-in with no external configuration needed.
  • External packages are pulled in via urls (much like Go)
  • Deno is an anagram for Node and it's pronounced Deeno (long e).

Introduction

Deno.js is arriving its 1.0.0. release date on May 13th, 2020, so I decided I collate the top information about the project.

Let's start!

The Beginning

In 2018 Ryan Dahl did a talk at JSConf EU where he talked about his top 10 regrets with Node.js. His talk was excellent and you can watch it below.

In his talk, Ryan mentioned he had concerns with the node_module system and other legacy API's that will never change. He noted that JavaScript has changed a lot since Node.js came out and that he could see a way to make a better version of Node.js. He wanted it to be compatible with the browser AND the server environment. Security was also something that he wanted to focus on.

May 13th --> Release Date

A lot has happened since Ryan's talk at JSCONF 2018. Many people have joined the project, it already has 48k stars on Github, and the project is beginning to raise a lot of attention in the community prior to its official 1.0.0. release on May 13th.

Time will only tell whether Deno will continue to grow but if the initial reaction is anything to go by, it's very positive.

Top Syntax Features

Top Level Await

No more wrapper async functions. Just use top-level await syntax

const data = await fetch('someapi/data');

Import and URLs

You can use import and you don't need to NPM install all your packages. Much like GoLang, you can import from URLs.

import stuff from 'https://package/url'

TypeScript Built In

No need to set up TypeScript. It's all built-in. Just start writing your code!

Secure By Default

Deno has restricted access to files, the network, and the environment. This is a big difference to Node.js which has access immediately to everything.

ES6 and beyond

Unlike Node, Deno has the opportunity to incorporate modern JavaScript syntax which can remove the callback hell that Node can lead to.

Compatible with the Web

Deno's API is meant to be compatible with the web.

Web Assembly

Deno has support for wasm binaries.

There's more planned with Web Assembly so keep an eye on the project.

Interesting Resources

Creator Talks

Videos of Conference talks by Deno creator Ryan Dahl and fellow project contributors Kitson Kelly and Bert Belder.



Introductions from the Community

Jeff from Fireship does a short informative rundown of Deno (with super cool graphics).

Harry goes in-depth about Deno and what it could mean for the future of JavaScript. He has more great Deno tutorial videos that you should check out.

Articles

Ryan Dahl did an interview with the organizers of the HolyJS Conference. Read it here.

Summary

Deno is an exciting project that you should definitely check out!

I would like to be clear that this article isn't bashing on Node.js. Node.js is amazing, I love using it and will continue to. It's just nice to have a new and improved version out there for the future.

Let me know what you think of Deno. Are you excited, surprised, or horrified? Let me know in the comments!

. . . . . . . .
Terabox Video Player