What is Deno.js and why should you care?
Tags: denojs, node, javascript, ryandahl
Published: 2020-05-05 22:12:11

---
title: What is Deno.js and why should you care?
published: true
description: A quick introduction to Deno.js the replacement of Node.js
tags: Deno.js, Node.js, JavaScript, Ryan Dahl
---

#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.
{% youtube M3BM9TB-8yA %}

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
```javascript
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. 
```javascript
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. 
{% youtube 1gIiZfSbEAE %}
{% youtube lcoU9jtsK24 %}
{% youtube HjdJzNoT_qg %}
{% youtube RAmqgbv247s %}
### Introductions from the Community
Jeff from Fireship does a short informative rundown of Deno (with super cool graphics). 
{% youtube F0G9lZ7gecE %}
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.
{% youtube FFP9mHDjog8 %}


## Articles
Ryan Dahl did an interview with the organizers of the HolyJS Conference. Read it [here](https://medium.com/@HolyJSconf/ryan-dahl-d139d8a8fb07).

# Summary

Deno is an exciting project that you should definitely check [out](https://deno.land/)!

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!