Nothing Special   »   [go: up one dir, main page]

Discover this podcast and so much more

Podcasts are free to enjoy without a subscription. We also offer ebooks, audiobooks, and so much more for just $11.99/month.

Luca Casonato on Deno

Luca Casonato on Deno

FromSoftware Sessions


Luca Casonato on Deno

FromSoftware Sessions

ratings:
Length:
80 minutes
Released:
Mar 2, 2023
Format:
Podcast episode

Description

Luca Casonato is the tech lead for Deno Deploy and a TC39 delegate.
Deno is a JavaScript runtime from the original creator of NodeJS, Ryan Dahl.
Topics covered:

What's a JavaScript runtime
How V8 is used
Why Deno was created
The W3C WinterCG for server-side JavaScript
Why it's difficult to ship new features in Node
The benefits of web standards
Creating an all-inclusive toolset like Rust and Go
Deno's node compatibility layer
Use cases for WebAssembly
Benefits and implementation of Deno Deploy
Reasons to deploy on the edge
What's coming next

Luca

Luca Casonato
@lcasdev

Deno

Homepage
Deploy
Showcase
Subhosting
Fresh web framework
The anatomy of an Isolate Cloud

Deno Users

Netlify Edge Functions
Deno at Slack
GitHub Flat Data
Shopify Oxygen

Other related links

Cache Web API
V8 (JavaScript and WebAssembly engine)
TC39 (JavaScript specification group)
Web-interoperable Runtimes Community Group (WinterCG)
Cloudflare Workers (Deno Deploy competitor)
How Cloudflare KV works
CockroachDB (Distributed database)
XKCD Standards Comic

Transcript
You can help edit this transcript on GitHub.
[00:00:07] Jeremy: Today I'm talking to Luca Casonato. He's a member of the Deno Core team and a TC 39 Delegate.
[00:00:06] Luca: Hey, thanks for having me.
What's a runtime?
[00:00:07] Jeremy: So today we're gonna talk about Deno, and on the website it says, Deno is a runtime for JavaScript and TypeScript. So I thought we could start with defining what a runtime is.
[00:00:21] Luca: Yeah, that's a great question. I think this question actually comes up a lot. It's, it's like sometimes we also define Deno as a headless browser, or I don't know, a, a JavaScript script execution tool. what actually defines runtime? I, I think what makes a runtime a runtime is that it is a, it's implemented in native code.
It cannot be self-hosted. Like you cannot self-host a JavaScript runtime. and it executes JavaScript or TypeScript or some other scripting language, without relying on, well, yeah, I guess it's the self-hosting thing. Like it's, it's essentially a, a JavaScript execution engine, which is not self-hosted.
So yeah, it, it maybe has IO bindings, but it doesn't necessarily need to like, it. Maybe it allows you to read the, from the file system or, or make network calls. Um, but it doesn't necessarily have to. It's, I think the, the primary definition is something which can execute JavaScript without already being written in JavaScript.
How V8 and JavaScript runtimes are related
[00:01:20] Jeremy: And when we hear about JavaScript run times, whether it's Deno or Node or Bun, or anything else, we also hear about it in the context of v8. Could you explain the relationship between V8 and a JavaScript run time?
[00:01:36] Luca: Yeah. So V8 and, and JavaScript core and Spider Monkey, these are all JavaScript engines. So these are the low level virtual machines that can execute or that can parse your JavaScript code. turn it into byte code, maybe turn it into, compiled machine code, and then execute that code. But these engines, Do not implement any IO functions.
They do not. They implement the JavaScript spec as is written. and then they provide extension hooks for, they call these host environments, um, like environments that embed these engines to provide custom functionalities to essentially poke out of the sandbox, out of the, out of the virtual machine. Um, and this is used in browsers.
Like browsers have, have these engines built in. This is where they originated from. Um, and then they poke holes into this, um, sandbox virtual machine to do things like, I don't know, writing to the dom or, or console logging or making fetch calls and all these kinds of things. And what a runtime essentially does, a JavaScript runtime is it takes one of these engines and.
It then provides its own set of host APIs, like essentially its own set of holes. It pokes into the sandbox. and depending on what the runtime is trying to do, um, the weight will do. This is gonna
Released:
Mar 2, 2023
Format:
Podcast episode

Titles in the series (56)

Practical conversations about software development.