Deno overview

Deno is a runtime that allows you to execute code written using JavaScript, TypeScript, and WebAssembly. It uses the open source V8 JavaScript and WebAssembly engine, is written in a programming language called Rust, and is built on another runtime called Tokio.

What's a runtime?

To understand what a runtime is, first let's take a look at the software programming lifecycle to get some context. At its simplest, the lifecycle is as follows:

  • Develop: source code is written and edited and an application or program is created.
  • Compile: the source code is compiled into a machine code executable.
  • Link: all of the machine code components of the application or program are connected together, including external libraries.
  • Distribute: the application or program is copied to the computers of other users; for example, via an executable.
  • Install: the user downloads the executable on their computer; their operating system places it in storage.
  • Load: the user's operating system places the executable into active memory in order to begin execution of the application or program.
  • Run: the distributed machine code is executed on the user's computer.

We're interested in that last phase of this lifecycle, the runtime. However, it's important to note there are two concepts here that are related, but different: runtime as part of the lifecycle, and a runtime environment. Some confusion can occur since people sometimes shorten "runtime environment" to simply "runtime" β€” but what we're talking about when we say Deno is a runtime is really Deno is a runtime environment.

What's a runtime environment?

So, what's a runtime environment? Essentially, it's a framework of all the hardware and software required to execute, or run, your code. A runtime environment accesses system resources, loads your application or program, and executes it, all of which is done independently of your operating system (which is also technically a runtime environment!).

Why use a runtime environment? Well, because oeprating systems can differ significantly from one another, or even from one version to the next. Runtime environments enable cross-platform functionality for your applications or programs, allowing your code to run as smoothly as possible in a a variety of conditions.

Why Deno?

Where did Deno come from? Well, for a long time, JavaScript was used almost exclusively by web browsers to add interactivity to web pages. A clever programmer named Ryan Dahl created a way to run JavaScript on servers. He called it Node.js, and it was built on the JavaScript engine that powered Google's web browser. Because there are a lot of JavaScript programmers in the world, Node.js grew incredibly quickly, and soon added a way to package libraries of code called the Node Package Manager (npm for short).

Dahl soon realized the original Node.js implementation had some problems. Security wasn't built-in, and the npm ecosystem that had grown so quickly introduced vulnerabilities that were affecting millions of developers. JavaScript continued to evolve and Dahl decided he wanted to try again with a new runtime that was secure by default, adopted modern web standards for features like including libraries of code, and came with a standard library of functionality. Enter Deno.

Onward

If you're excited about building a new web application and think Deno might be the right fit, let's get started. Read on to learn how to install Deno!


Have 2 minutes to provide some feedback?

We'd love to hear about your experience building modular Slack apps. Please complete our short survey so we can use your feedback to improve.