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.
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:
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.
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.
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.
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.