over 3 years ago Syntax Podcast
Supper Club × Ryan Dahl and Deno
- 00:00 Introduction
- 00:37 Wes introduces the podcast with Ryan Dahl
- 01:05 Wes and Ryan talk about Node's early days
- 02:37 Ryan discusses why he still believes in JavaScript
- 03:05 Ryan talks about the uncertain future of web in 2012
- 04:06 Ryan says JavaScript will still be here in 5-20 years
- 04:39 Ryan calls JS the default programming language
- 05:38 Wes asks Ryan why he made Deno
- 05:49 Ryan talks about handing off Node to Linux Foundation
- 06:03 Ryan discusses Node's outdated C++ codebase
- 06:40 Ryan says Rust has replaced C++
- 06:54 Wes agrees on Rust hype
- 07:02 Ryan clarifies Rust no faster than C++
- 07:13 Ryan praises Rust's architecture
- 07:28 Ryan wanted to improve JS security
- 07:48 Ryan regrets lack of security in Node
- 08:06 Deno started as Node 2.0 experiment
- 08:16 Goals of Deno
- 08:39 Scott asks about Deno's bet on TypeScript
- 08:48 Scott says TS is how we write JS now
- 09:16 Wes asks Ryan's thoughts on TypeScript
- 09:25 Ryan sees TS as JS 2.0
- 09:41 Ryan praises conservative design of TS
- 09:54 Ryan discusses adding types to JS spec
- 10:49 Wes jokes about CoffeeScript revival
- 10:52 Ryan dislikes CoffeeScript syntax
- 11:02 Wes asks if TS will be added to browsers
- 11:18 Ryan doesn't think browsers will do type checking
- 11:27 Ryan thinks browsers will support TS comments
- 11:52 Wes asks how Deno is made
- 11:59 Ryan explains using V8 and Rust
- 12:22 Ryan talks about Deno's async runtime
- 12:31 Deno uses Tokio instead of libuv
- 12:41 Ryan optimized binding JS to native code
- 12:52 Ryan says Deno supports NPM modules
- 13:14 Ryan talks about benchmarking Deno vs Node
Ryan calls JS the default programming language
Guest 2
it's just exciting to see all of the development and things that you can do with it. And, Of course, the the large developer base or so, c plus plus code base that's,
Wes Bos
what it is. Why did you make Deno? Why not
Guest 2
human communication right now. And, And lo and behold, hacking together, run that in in Deno, just just with, that is similar to our earlier work, Libuv server signed JavaScript runtime.
Guest 2
Weird, and it's not what anyone would sit down to design if if you were trying to make something beautiful. But that's also what makes it interesting too. I mean, it's it's this kind of organic thing that has you know, whether you're you're, like, a hardcore back end person or or or not. I mean, you you all everybody knows JavaScript to some degree. Right? And I I think that's that's pretty exciting, and and so I think, there's There's still there's still more to do there. Let's talk let's talk about Deno. So explain to us
Guest 2
It's
Guest 2
of people who who know essentially every programmer, would look like.
Guest 2
grown out of, because of that, I I think it's it's fair to say that, you know, web browsers and web technology is going to be here 5 years from now, if Not 10 or even 20 years from now. And because of that, like the protocols that make up the web, the specifications, uncertainty in the air that that, Oh, actually, maybe, you know, Wikipedia is just going to be a iPhone app, and we you know, somehow maybe we're This was just a a little thing that happened in in kind of the late nineties and and 2000, and web browsers would go away. But I think here in in, you know, what's nice is that it you can build larger projects with it. It's it scales better.
Wes introduces the podcast with Ryan Dahl
Wes Bos
thanks so much for coming on. Hello.
Wes Bos
My name is Wes Bos. I'm a developer from Canada. With me as always is mister Scott Talinski. Ski, you know about Scott. Hey. Ryan,
Wes Bos
Welcome to Syndax, the podcast with the tastiest web development treats out there. Today, we've got a very Exciting episode for you. We have Ryan Dahl on who is
Ryan explains using V8 and Rust
Guest 2
Yeah. It's essentially ripping ripping it out of of chrome, although, you know, with lots of Lots of caveats to to that.
Guest 2
is, is a early node developer. So So, yeah, we we know how to use v eight. And,
Ryan says JavaScript will still be here in 5-20 years
Guest 2
CSS, powering,
Guest 2
and JavaScript
Guest 2
HTTP, You're you have the ability to combine different rust crates much more easily than you can different, Node has been I'm I'm a I'm a VA expert. Right? I've been working on with this for for for many years now. And and my cofounder, Bert, also is And, yeah, we we really Started playing around with with Deno as an experiment to kind of look at what what a node 2.0 would would,
Guest 2
that is
Guest 2
HTML, early beginnings and and kind of un unclear circumstances into the thing that that is is Rust has has essentially, in my mind, replaced c plus plus.
Wes asks Ryan why he made Deno
Wes Bos
Node. Js, you already made 1
Wes Bos
JavaScript framework.
Guest 2
So I I think Around 2022, NPM modules that that you know, just basically supply chain attacks Because node is has no security CMake.
Wes Bos
Why another one? A runtime, I guess. Yeah. Yeah.
Ryan talks about the uncertain future of web in 2012
Guest 2
the web was going to be are becoming part of of the day to day, trying to be more secure. I've always regretted what what happened with With Node not really using the JavaScript sandbox as it as it was as a security mechanism.
Guest 2
there's web interfaces make major changes there.
Guest 2
to social media, obviously.
Guest 2
to your bank. There's web interfaces will still be here,
Ryan discusses Node's outdated C++ codebase
Guest 2
and TypeScript And you've seen all of these these exploits that are happening with With, So I I don't think the browser will ever do the type checking, but but I think the browser will do the type scripting. It's going to take 5 years Or so to to actually get that in place. But but, yes, I I I think there's a lot of support for for that future. Okay. So another question about Dino. Like, how do you how do you make a JavaScript runtime? Do you just go download a a copy of Chrome and rip out the v eight from it? And, like,
Introduction
Announcer
I thought there was gonna be food,
Announcer
is the Syntax supper club.
Announcer
Cool. I'm starving.
Announcer
Wash those hands, pull up a chair, and secure that feed bag, because it's time to listen to Scott Talinsky and Wes Boss attempt to use human language to converse with and pick the brains of other developers.
Announcer
so buckle up and grab that old handle because this ride is going to get wild.
Announcer
I sure hope you're hungry.
Announcer
This
Ryan discusses adding types to JS spec
Guest 2
ignored as a comment. Of course, the web browser wouldn't do the type checking itself. But,
Guest 2
and strip out those types essentially. You know, the the colon type part part of of The of the syntax would just be, And I I think,
Wes Bos
revival? Yeah. Maybe CoffeeScript's gonna come back.
Guest 2
I I think this is the direction that the language is going. It's going to take quite a while, and it's unclear if, like, exactly TypeScript is what it's going to look like. Yeah. Like, maybe maybe there'll be some more iteration there, but it it's something very similar to this for sure. I think we're we're narrowing in on this. It's just clear that that TypeScript allows you to build,
Guest 2
I Yeah.
Goals of Deno
Guest 2
lots of people were interested and and were contributing, and and we we started working on it more. And,
Guest 2
It's it's, to The government there's web interfaces So there there there seems to be a lot more to do with with, server side JavaScript, I you know, it's it's it's
Guest 2
it's it's it's now been a couple of years. But our our main goal with with Deno is is To make it the the easiest, the fastest, and the most secure, And,
Wes and Ryan talk about Node's early days
Guest 2
a PHP meetup in San Francisco.
Guest 3
Yeah. So yeah. Yeah. I think there's a lot of people who watch that from the PHP world at this at the time being like, well, why would I use this instead of PHP? And, like, yeah. Sure enough. Yeah. Many years later, that's all we do.
Wes Bos
I didn't really have any of the problems in my programming career that you were talking about solving, but, like, I was on board.
Wes Bos
here we are, what, 13 years later, and it's a good chunk of my career.
Guest 2
There there was there was one early talk that I gave at a, and And kind of moving to ECMAScript modules, moving to TypeScript,
Wes Bos
sitting
Wes Bos
2010, 2011 era. Yeah. It definitely was. And it's funny because I was I was at a point in my career where, like,
Wes Bos
this server side JavaScript thing, and everybody's like, what the heck? What is this? And I didn't I don't think I totally understood what it was, but I was like, I'm gonna keep tabs on this node thing. And
Wes Bos
this was, what, probably 12, 13 years ago, I watched It's your 2009 JSConf talk and explaining
Wes Bos
Glad to be here. Today, we're sponsored by 3 awesome company. Gatsby, the fastest Front end for the headless web. Sentry, error exception of performance tracking, insanity, the structured content that powers remarkable digital experiences. We'll talk about all of them partway through the episode. I so I'm I'm doing a little bit of a fanboy moment now because I honestly owe A large amount of my career to you because I remember probably no creator of Node. Js and most recently creator of Dino. We've been And a whole lot about Dino on this podcast, so pretty stoked to have him on.
Ryan says Deno supports NPM modules
Guest 2
you can take The basic, say, express server example, JavaScript 2 point o. I mean, it's it I think the the the the TypeScript team did an amazing job where they could have done any they they have a full compiler, So they could have done anything, but they were very restrained in only extending JavaScript quite quite rapidly. And in particular, like, And you can you can try to benchmark that in in node and and, you know, and and, put a lot of time into into optimizing that.
Scott says TS is how we write JS now
Guest 3
Should types be added to JavaScript? Is is TypeScript going to become just straight up JavaScript? Like, what what are your thoughts there? Yeah. I I I see TypeScript as essentially
Guest 3
Microsoft owned.
Guest 3
What what are your thoughts on, you know, how TypeScript fits into this landscape here given the fact that it's what is it?
Guest 3
Well, maybe not In the big picture, but Yeah. You're gonna make a couple of people mad with that guy, Scott, in in small in a small capacity here. But
Ryan discusses why he still believes in JavaScript
Wes Bos
so you obviously created Node. Js. You are Very smart guy. Know a lot about programming languages in general. I've I've listened to you talk about a lot of stuff. Why all these year late Liz years later, why are you still betting on JavaScript? Why is JavaScript still the language to build for for the web? It's it's a good question. I I I you know, if if you think about it, like, around the year
Wes Bos
So I'm gonna start I'm gonna start with this question, and we'll get into what Deno is and everything like this. But,
Ryan regrets lack of security in Node
Guest 2
Left Pad and and various other, Import npm colon express.
Guest 2
guarantees.
Ryan talks about handing off Node to Linux Foundation
Guest 2
a nonprofit.
Guest 2
handed off in into the Lenox Foundation,
Guest 2
Node has is this big TypeScript, 2012 or so. It wasn't super clear that We we are just very careful at how we we are kind of binding JavaScript to native code and At the same time, in in kind of the the And that's That's a very nice design because that means that you can strip the types away with with a very fast compiler pass and get raw JavaScript out of it. So Now we're seeing these proposals in TC 39.
Guest 2
and is is managed as, ever more clear that, like, the web is the medium of Human communication.
Ryan thinks browsers will support TS comments
Wes Bos
How come how come you can make Deno so much faster than than Node is? So yeah. I mean, we we
Ryan praises Rust's architecture
Guest 2
c plus plus projects and and is having difficult kind of keeping up with the changing times. Like JavaScript as as a whole is kinda moving forward with breakneck speed. And and, I mean, in particular, changes like ECMAScript modules yeah, Node Node really really was, like, an, nice alternative for for those coming from PHP in in Kind of and, 2015 that we wrote for for Node.
Ryan dislikes CoffeeScript syntax
Guest 2
stuff in in CoffeeScript is a little sus in in my opinion.
Wes Bos
Yeah. Yeah. So do you think the the TypeScript thing will ever be a browser thing, or do you think it's always just gonna be, like, a author time and it gets stripped? Either the browser strips it out as comments or it's a compile step. Yeah. The type checking algorithm itself is,
Ryan talks about Deno's async runtime
Guest 2
I I you know, the the way that we make it faster is is with a better async runtime. So in Rust, we're using something called Tokyo.
Deno uses Tokio instead of libuv
Guest 2
It's a it's a async event loop,
Ryan says Rust has replaced C++
Guest 2
The native language front is is developing, usage of of JavaScript. And Node is just not moving. It's it's it's very slow and, there is there is kind of a, you know, more robust
Wes Bos
And there yeah. No kidding. It seems like every day, we have a new Rust library come out. This thing is built in Rust, and it's a 1000000 times faster.
Ryan doesn't think browsers will do type checking
Guest 2
the objects.
Guest 2
slow because you kind of have to traverse this big graph of of all of the the 5, 10, 20 years from now. And so I I think in in a very real sense, JavaScript has become the default programming language.
Guest 2
very Deno Deno now is supporting NPM modules. And so if you, applications. Right? You you can just link together bigger chunks of Code more more sanely. Is it gonna be a CoffeeScript not really incentivized to to to, Only stage 1 right now, but types as comments, which essentially would allow web browsers To natively consume sig the the indentation Inherently what it is Today, right, mobile mobile apps were coming out, and it was kind of like I I think not. The the The, I I mean, I I you know, Rust is no faster than c plus plus, but but, We we interact through the web we're talking through the web right now.
Ryan sees TS as JS 2.0
Guest 2
to add types onto it.
Scott asks about Deno's bet on TypeScript
Guest 3
And and TypeScript is largely could become, like, the way to write JavaScript, at least in the past couple of years here, where you hardly see people working without it nowadays.
Guest 3
Nice. And so, obviously, there was, like, a big bet on TypeScript here to say, This is the way that we're we're going to write JavaScript is through through TypeScript.
Ryan optimized binding JS to native code
Guest 2
So what's what's Kind of fun is is, Right? Like,