Skip to main content

over 5 years ago Syntax Podcast

The Deno Show

Wes Bos

Wes Bos Host

Scott Tolinski

Scott Tolinski Host

Topic 0 15:18

Deno imports ESM modules

Scott Tolinski

So another thing you can do is compile

Wes Bos

just go and install it from wherever you want. But, built in right away because, like, that's kind of the scary thing about a lot of programming languages, node included. People always, like, rid. Say like, oh, like, why would you allow NPM? Because you just have, like, this random stranger's code arbitrarily into Deno itself, and it's opinionated about that. And, That means

Scott Tolinski

Function from file. That file can be anything. It can be a TS file that you have in your application, but it can also be a URL rid to a GitHub gist or a repository somewhere or a deno dot land page. It can be any TS file that exists, You can import Could could literally be on a USB stick. Yeah. You could plug that USB stick in. Yes. You could do that. For your dependencies. Yes.

Scott Tolinski

like, your own web server, like Scott says, or to what's the Snowpack? GitHub or Skypack or anything. Yeah. As long as it's pointing to a TypeScript file. Like we said, even a GitHub gist, you can write a GitHub gist And then import that. Wow. I bet

Scott Tolinski

is really nice because what it does is it Request the module when it's needed rather than requiring everything to be bundled together. Right? So ESM out of the box, And you can now think of the import syntax as almost like a link or something like that. It the December course for all of our tutorials was on Snowpack, and we talk about ESM in the browser. And we actually go to the network tab and show on each import, it's requesting a specific file or document.

Scott Tolinski

So, like, Deno is is really forward thinking there in terms of being able to utilize this in the same way that you could A higher level programming language is it does feel like an evolution of Node, like, full on. It's pretty cool. Like, I haven't done this myself, But you can also use web assembly modules

Scott Tolinski

So you can kind of think about it like that where it is like a it's loading information

Wes Bos

like, let's talk about, Lodash. Let's say you wanted Lodash. You would just Say export Lodash from a r n u r. It's one of those ones where you're like, oh, I got the Marnur.

Wes Bos

So So if you need, like, a a unique identifier not bringing this thing up with me. So I'll link up the one I got. There's tons of them over the Internet. You can just read the reviews rid in Deno. So if you have a a Wasm module for formatting video or something like that, rid. It doesn't necessarily have the MPEG Wasm. Yeah. It doesn't necessarily you don't have to to get, like, a, what is the equivalent And fetch request your entire is is your entire hard drive over to, which is is pretty cool. So you just import the date, time, standard lib, and then rid. You can output it however you want without having to to import, like, date functions or moment or something like that, which is pretty nifty. Word. Yeah. I didn't know that that was a standard. I just thought that was something PHP did, but the

Scott Tolinski

Deno into a binary

Wes Bos

a lot of the Deno ethos is and we have an API on syntax. So we hit that, but they needed to be renamed as we did it. So I couldn't just run, like, a rid Curl whatever of of all the URLs of the the show because it needed the name of the show needed to be formatted nicely. So I I wrote a little rid. TypeScript's Thank you so much to DQ Systems for sponsoring. The last thing is NPM. Does it replace NPM? I put a link to the memory foam. So you had to, like I off gassed it for anywhere in that line

Scott Tolinski

file kind of ends up becoming like a routing center

Wes Bos

GitHub, I would assume that that would be a big thing because people wanna be able to rid Move over their projects to this if they want to. It's actually really funny that they had to polyfill

Scott Tolinski

To be kinda tough to part. Like, I found myself reading a lot of source. Not that that's, like, necessarily a problem, but I think that will be a problem for some people. Like, I found myself always going to the source. Yeah. The docs are, like, pretty good, but they're not, like, at the level of node. And I think that's just right now because everything is rid is working. But, like, I would say they're they're pretty good,

Wes Bos

that is a Unicode standard for If you were to use part of this? Like, is that even a thing? And then I I found in the docs The web workers 5 minutes configuring ESLint and getting TypeScript set up properly in, Test Runner and and Prettier and and my bundler and all that. And even though those all of those things have gotten really fast, That's still, like, 25 minutes when you're starting a new project, and that, for me, that's at least once a week. Not only that, but, like, like, I'll I'll get into this settled more at a later date. We recently rewrote a bunch of our tooling. Right? And then we we hit a specific issue because we don't use Babel anymore that, like, runtime for Node. Js. It does not have the same API as Node. Js, meaning that Lodash.4.5 Which as a new sponsor, well, DQ and Mux are both new sponsors. Welcome.

Wes Bos

Initially, I was like, alright. Well, then you have to, like, import the URL in every file, and then Scott just said, oh, no. He just has, like, a a dependencies dot ts file that Yep.

Scott Tolinski

To build your projects into stand alone executables.

Scott Tolinski

individual imports that you want to do. So you'll see an example export name from URL with the version. So I think this for a full archive of all of our shows, and don't forget to subscribe in your podcast player or drop a review if you like this show.

Wes Bos

import these things from the URLs.

Scott Tolinski

like, releases will be where a lot of this stuff ends ends up rid. Going because, like, what like, one frustrating thing about npm right now is that, like, what's on GitHub and what's on npm is not necessarily the same thing. Dude, I just had this issue where I was going nuts on a bug. My my site kept on telling me Next. Js wasn't defined. I'm like, I'm not in a Next. Js site. What are you talking about? And then only to find out That the GitHub page I was on was telling me to install

Scott Tolinski

essentially, a request for information. You could think of it as like, alright. I want to access

Scott Tolinski

Rid. So this actually came, I think, into Deno 1.6,

Scott Tolinski

the thing as a package. Only when I went to NPM, really, and it's a self contained stand alone binaries where you can Deno compile Formatting dates. Mhmm. Cool. Standards.

Scott Tolinski

Wasm, essentially, with the same API that browser can, it means that you can use basically Wasm the same way that you would on the web. Can you can bundle to WASM too directly from Deno.

Scott Tolinski

Package tied to a specific version. It's almost like a a package dot JSON file in that you it's like a central station for routing all of your dependency versions and rid The actual Each show had to start. They basically had to be like, alright. How many people do we think we're gonna get today? Alright. We think we're gonna get 20,000 people. We should spin up x, rid y and z servers to host and connect all of those WebSockets. Right? And if they were wrong, the whole thing would be super glitchy, rid Or they would be spending way more money than they, you know, needed to because that's a crazy amount of data to be flossing with. So I found this podcast To be absolutely fascinating, the personalities involved hearing the full story. So boom and bust, h the rise and fall of HQ trivia. Anybody who played HQ Or is just interested in this kind of thing. We'll find the start up culture, whatever. We'll find this very, very good. I ain't got a sick pick up pillow. I got this Wicked pillow,

Wes Bos

h t d p dino.landforward/ thing. It was, like, 30 lines of code. Pretty pretty simple, but it's all a sync Oh, wait. By the start, he uses TypeScript. I needed, from a a package that only exists in node land, and that's gonna be easy, especially, like, you get into these like, it's a module

Scott Tolinski

a specific function from a specific file. Therefore, I'm going to import very easily, mind you, read. Our own livestream on syntax.fmforward/live.

Wes Bos

Exports Yeah. Because it's it's honestly it it's funny because Next benefit we have here is that you can you can run them from anywhere. So, like, one popular thing that's is getting popular in Node. Js is rid

Scott Tolinski

for the information. Right? You're importing the things from specific couple of weeks here. Rid. Yeah. This is I just went to this site. This is kind of interesting site. I wanna do a new new hosting episode. I've I I really went down the rabbit hole they didn't have that registered package name. So whoever wrote their read me was just like, oh, yeah. Just it's just gonna work, I guess, somehow because they did but they didn't own the package name. So here I am installing a completely different package than I was on the GitHub page for. So you're right. I mean, what's on NPM is not necessarily what is on GitHub and vice versa, And so, therefore, things can become out of date. They can become misaligned. What if you change your NPM package name or something like that and you Hit a old GitHub page or something that's telling you install the wrong thing. Those are all very real things. Next thing we have here is Deno has a nice rid. Standard lib, and and what that means is that

Wes Bos

rid Them, but you can also publish them to, plug in. They're they're gonna release a little bit more of that in in a couple of months, but let me tell you about what re DQ does. So DQ makes a browser extension. It's available for all the popular browsers that will help you figure out rid. Where the accessibility issues are on your website. Like, I actually maybe about a year, a year and a half ago, I ran it on the Syntax site, and we had some rid Text that didn't have enough contrast on it, and it it just popped that information out right to us.

Scott Tolinski

executable.

Scott Tolinski

The modern version of what you used in Node, which was common JS, but ESM

Scott Tolinski

Yeah. I haven't seen anything personally. That doesn't mean it doesn't exist. So it it could exist already.

Topic 1 35:00

Deno can run scripts from URLs

Wes Bos

syntax.

Scott Tolinski

The API is fantastic. Great design all around. So check it out at mux.com, And then do the third party modules and then search for Denon, We talk all about using ECMA script modules with Snowpack

Scott Tolinski

and create account, check it out today. And, if you wanna give this a try, you can also head over to level up rid .com and and give one of our videos a try. It's not gonna there's not gonna be a ton revealed there, but you can see just how fast and how everything So because Deno can run rid Like, a 7 20 p version doesn't exist when that user hits it. It compiles it on the fly without you noticing, essentially, and then that video will be cached and ready to go for the next time. Re It also does some really awesome stuff. In fact, when we did our Syntax Live episode, we

Scott Tolinski

Mux is the How developers

Scott Tolinski

and it went off without a hitch. It was absolutely flawless.

Scott Tolinski

We hosted our own livestream using Mux rid By just creating a livestream on Mux and then telling OBS what that address was, we dropped it into an HLS React player, and it just played it. It was very cool. It was my very first time ever doing a live stream on my own site that wasn't YouTube,

Scott Tolinski

Please go back and listen to our video encoding episode. Video on the web is complex nowadays. We have all these crazy formats

Wes Bos

and still even a lot of library methods are callback based. And if you wanna switch them from being callback based to being promise based, you usually have to wrap them. That's just because that's how the world evolved in that amount of time. But Because they're brand new and they have a clean slate for doing this type of stuff, everything is a sync await right outside of the box. I'm pretty sure there's top level await rid Inside of all of your modules, which is really handy for when you wanna You've probably heard Scott gushed about it enough.

Scott Tolinski

hosted And what we did in it was, first, besides, like, doing the 1 on 1 stuff, re We we did some basic things where we did a, like, a CLI contract generator, which is a good project because it it shows you how to read a file, how to write a file, And how to replace text and and do those kind of things. But then for the most part, we got into even getting into, like, creating,

Wes Bos

set up a bunch of stuff in a module before the rest of the code runs.

Scott Tolinski

So,

Scott Tolinski

It's a really cool platform that allows you to host video like never before in my experience. I So I am a huge, huge, huge fan of Century at century.i0.

Scott Tolinski

that is released in the past year, which is mux.com.

Scott Tolinski

out what track you're on based on the current bandwidth and latency and stuff like that. Video

Wes Bos

Re Next benefit we have here is this async out of the box. So one thing about Node, when Node was created, promises were not a thing, and async await was obviously not a thing. Rid. And now that it is a thing, a lot of the, like, core APIs

Scott Tolinski

Big fan of everything being a sync await right out of the gate. Yeah. Top level await, which exists in TypeScript already, but having rid Top level await just exist in the platform. Oh, man. I don't know if you've you've done a whole lot of top level await, but I did it once. And I was just like, I want this front for everything now. Rid. So, when in fact, when I can't use top level weight, I'm always a little bummed out that I have to write an iffy an async iffy.

Scott Tolinski

Good quality everything is in action. So mux.com, check it out. And the URL for that is mux, mux.comforward/

Topic 2 00:00

Transcript

Announcer

You're listening to Syntax, the podcast with the tastiest web development treats out there. Strap yourself in and get ready. Here is Scott Talinski and Wes Bosch.

Wes Bos

And finally, it's time. We know enough about Dino that we're gonna do a show rid Explaining it to you, what it's for, what it is, what it isn't, why is it awesome, and is it going to replace Node? Re We're sponsored by DQ, which is d e q u e. They do web accessibility software services training. They have this thing called Axe that will rid. Allow you to to take a look. We'll talk about them partway through the episode. Sentry does your error exception and performance tracking and mux,

Topic 3 44:14

Example Deno scripts

Scott Tolinski

Like, that intense to paw through the actual code,

Scott Tolinski

it is really easy to look at the source

Wes Bos

That part of it is is no different.

Wes Bos

to your hard drive. Nice. Pretty cool. Yeah. Yeah. So that was of the fun one. I've done a handful of other little ones here and there, but I haven't done like a web server or anything like that. And it just yet, but I think it's next time you have A little script you need to run? Try do it in Deno because it's it's fun. Yeah. Especially because, like, the hardest part for me in doing that would have been, like, having

Scott Tolinski

use. Yeah. Rid. And the coolest part I I found about any of that stuff is that, like, when those packages do exist, such as, like, Denon exists. Right? And who knows if it gets built into it. Right? It but when it exists, Forward slash volumes whatever. Yeah.

Scott Tolinski

I appreciate it. Yeah. So I guess it's a it's a good lead into the last thing, which I wanted to guess, say, talk about was, like, our final words on, like, what do we what do we feel like the rid. Current status of Deno is in, like, should you use it? Should you try it? What what should you do here?

Scott Tolinski

Man, it it can't beat the startup time for just running a TS file and running Deno whatever and having it just work. Right? I mean, that Yeah. That's great. Oh. There's no setup. We should also I should mention quickly, those of you who are used to nodeemon, which I always used to call nodeemon for some reason. I I just have no idea. I have there's probably videos of me on YouTube calling it Notemon because I'm just dumb. And, like, Denon is the Deno compatible version of that to run a script and have it Update when a file changes. So d non is the the new version of nodemon that used to exist rid In node land. That's something I would hope would be built in, like hot reloading

Scott Tolinski

rid To deal with the things that will come along with not having the libraries you expect to be there, having to write a lot of stuff yourself, having to paw through code, Those are the types of things that you are definitely going to hit if you're trying to use this in any sort of substantial form. Not that it's not good because it's fantastic,

Scott Tolinski

all these new tools, new things or even accessing the Internet in some sort of way. You'll need An HTTP

Wes Bos

Deno run, and then paste the URL of the gist, for, like, a file or something, you'd have to go in npm install a package for that, and, that comes with it. So rid. It's kinda interesting where

Wes Bos

not a really good return on investment,

Scott Tolinski

that are kind of doing the same thing.

Wes Bos

So where do you host Deno? syntax episode in, you know, that's exactly what a polyfill is. So it looks like maybe about half, playing with stuff and making little side projects, so it's probably not a very,

Wes Bos

for JavaScript files. You know? Like, I guess you could make it Do that like it. It does the import. Every single time you hit a thing, it doesn't import. You could probably mess with the cache somehow.

Scott Tolinski

rid Say it's a great time to write critical work, or allow run or allow write, allow plug in. There there's a handful of these things, and the ones that I found myself using the most would be rid. Net, read, and write as a web developer or also e n v. Those are the ones I found myself using the most. And then to be honest, when I was rid Starting dev in it, I often found it to be easy to, like, at the start of a project, to run Dena with hyphen capital a, which just allows all permissions. And then when I was ready to, like, get a little bit more serious about the project, I was then removed that hyphenate, and then it starts throwing the permissions errors so that I can lock it down to exactly what I need rather than, like, from the start trying to guess what I need. Yeah. Yeah. It's kinda neat that it has, like, sandboxing of Denon. Right? If you go to deno.land

Scott Tolinski

used to the degree that node is used, and there is a lot that comes along with that, rid At least right now, well, you have to use Deno libraries.

Wes Bos

I'm not sure. I haven't looked into that, but that's interesting that that is a a third party package that you need to

Scott Tolinski

you can see that it's, like, really not, Trust me dotts.

Scott Tolinski

So Yeah. We'll have to do some sort of a new hosting episode lately. But, no, this fly to I o looks really nice, but I have no rid. No experience with it beyond looking at the pretty looking home page. Very much like early days, no jutsu was the way to get your node apps rid. Online. I'm very curious to see

Scott Tolinski

Libraries, bringing in libraries because it's fresh. Right? We'll just say it's fresh. But, like Yeah. Writing a simple script or something I would have done in Node just by myself,

Wes Bos

that will fire up. You probably wanna still put NGINX in front of it. You still have to do your SSL certificates.

Scott Tolinski

in hosting.

Wes Bos

Twitter thread. And in that Twitter thread, there is a GitHub gist, rid. Or you can run it yourself. And even if you want, you just simply just run, re A XE.

Scott Tolinski

and the mental energy really bananas

Wes Bos

rid Say, Deno, run the name of it. And assuming you have a web server and whatnot,

Scott Tolinski

the resources, Well, it could mine Bitcoin, but only in the current folder that you allow it. Yes. Right. Yeah. So by permit having those permissions in place, it really does give you, In my opinion, a good amount of peace of mind about what you're actually running on your computer. That said, I've never had any issues with that in Node. Js that I've known of, but it it is nice that those those can exist.

Wes Bos

which companies are gonna come out running. I think it's gonna be, like, at that, Versa will probably rid Like, I was working with a Canada Post node module the other day, and there's, like,

Wes Bos

rid. Be able to host this pretty soon. It's kind of early days, and I bet there's not a whole lot of Dino running a production. Rid. It's mostly just people JavaScript APIs, something like set time out, that code is gonna work in Node. That code is gonna work in the browser. That code is gonna work in Deno. But if you were to use a node specific API like f s dot write file sync, That's a node API, and there is different APIs in Deno for things like writing files. And if that's the case, then it it won't run. We'll talk about compatibility between the 2 in in the future, but, essentially, it is a full replacement for Node. Js. Yep. Next one is going to be Express.

Scott Tolinski

it is not So, next step is going to be WASM.

Topic 4 49:27

Current status of Deno

Wes Bos

M so you all you have to do is just polyfill

Wes Bos

Level up tutorials.comforward/pro.

Wes Bos

Couple days before I actually slept on it, and now now it's great.

Wes Bos

and it it worked well. The only weird thing is it it smelled when I got it, and that happens a lot with, anybody can jump in. It's rid Definitely the read the source kind of people that are are playing with Deno right now. Yeah. Totally. Oh, one one kinda cool thing that they have is rid A date time parser. So you know in, like, PHP, where you for, like, 30 years, you've been able to format a date however you want? Yes.

Wes Bos

I'll link the one I got. Obviously, I I like it. I did my research, Yes. Rid Kind of. So Deno is

Wes Bos

production ready application. You're simply gonna hit way too many rid edge cases of things that you're probably the 1st person in the world to run into this, whereas, like, like, a a package like Mongoose rid. Has, like, millions of people using it, and nothing is battle tested,

Wes Bos

Marnur.

Wes Bos

Oh, yeah. What what do I think about it? I think, yeah, I think it is the language rid You have to give v eight JavaScript. Right? You can't give it TypeScript.

Wes Bos

And since then, we've I've seen, like, a couple people come out with

Scott Tolinski

level up tutorials.comforward/ Deno supports JavaScript and TypeScript but it is it is its own thing. It looks like there's maybe even several competing ones, but Denon is the one. An interesting world of, like, Yeah. It it's it's an interesting experience.

Wes Bos

Check it out at beginner JavaScript .com, and use the coupon code syntax for $10 off. I should have plugged my, my Deno course on the Deno episode.

Wes Bos

you name it. I'll I'll call out 1 beginner javascript.com.

Scott Tolinski

about working with Snowpack and ESM in the browser. So check it out, level up tutorials.comforward/pro. I'm going to sick pick rid All of my courses, westboss.comforward/courses.

Scott Tolinski

rid Wowzers. I'm a big, big, big, big, big fan, and, we're gonna have to have Fred back on here because I wanna talk to Fred about how much I love Snowpack now. Either way, this course is all about Snowpack, how to use it, how to even, like, use things like, you know, Sass in it or TypeScript in it. There are all these little things

Wes Bos

memory foam pillow that has, like, a little cutout for your head. Rid Have you ever, like, had a masseuse

Scott Tolinski

Tutorials forward slash dino 101 for web developers. I'll have this link in the description. For here, give it a give it a gander. Alright. Thanks so much for tuning in. We'll catch you on Monday. Peace. Peace.

Wes Bos

has all the edge cases likely

Scott Tolinski

Head on over to syntax.fm

Scott Tolinski

And working in Deno itself has been fantastic. I wouldn't necessarily use this for anything critical or anything it doesn't need it for right now, Unless, of course, you're doing it for funsies because that that's that's very valid as well, and I I highly support using it for fun. But that's rid. Probably where I draw the line, I think, right now.

Scott Tolinski

rid How HQ Trivia came to be and what happened to it because I haven't played HQ Trivia in a long time, and I didn't realize there was this re Hugely fascinating behind the scenes,

Wes Bos

Super Mario tutorials or something like that. That's pretty good. Super Mario tutorials. Yeah.

Scott Tolinski

So either way, this this app was re Hugely popular, getting millions of people using it twice a day. And so this app is talking about it's called Boom and Bust, the rise and fall of HQ Trivia. Basically, how

Scott Tolinski

as polished to the degree that Node is. Granted, Oak Yeah. Fantastic. Oak is fantastic, really, really love the aspect of, like, you just open a TS file, you just start typing, and then, like, that's all you gotta think about. Rid So I I I'm always a big fan of that. One of our sponsors today is DQ Systems. They've been on the show before, and they're back for some more. They've got some kind of neat Stuff being cooked up with their Axe accessibility Chances are it will exist. Rid Who knows? But that definitely seems to be, like, something that that could be here. Do you know land seems to be where people are publishing

Scott Tolinski

had been left behind. Even just trying to connect to a Mongo read. DB database. I tried 3 packages, all of which had some sort of weird errors so that it like, by all means, it's not a problem with Deno, but I wouldn't say many things in that land are unless, of course, you have I'm going to say that now is a great time to learn, Dino. It's a great time to learn the basics of it. It's a a great time to mess around with it. I wouldn't necessarily

Scott Tolinski

Real quick before we get in here, I I do actually I I've realized that I plugged, like, the latest course on level up tutorials instead of the Deno course, I have a Dino course on level up tutorials, and this shows just how good of a marketer I am. Head on over to level up tutorials.com. And, also, If you sign up to get that ESMPAC course, snowpack course, there's also a course Deno 101 for web developers, which will teach you all about the basics of Deno And getting in there, talking about some of the stuff we said, like how to build a CLI kind of stuff, but as well as the types of thing you'll wanna know as a web developer to build web servers and Have fun with those ways and understand some of the things we talked about in this episode. So if you're interested in learning Deno, the dev team, basically, You're gonna wanna check them out. Use the coupon code tasty treat, all lowercase, all one word, And you'll get 2 months for free. Thanks so much for Century for sponsoring,

Wes Bos

it is awesome. I I can't believe I we just went to the cottage for a couple weeks, and it didn't bring it with me. Rid. And I was, like, so regretting Like, we are all installing the exact same things over and over again. Yeah. Seriously. I'm trying to trying to think, like, what other, Obviously, fetch is a is a really good one that's that's built right in. I have a question for you. When you were looking into the standard library, did you how did you find the documentation? Because I found things And I often

Scott Tolinski

with the owners. There's, you know, coups involved

Wes Bos

So I wouldn't play too much into You can take a look at everything I got there, CSS, JavaScript, So the first one is, does it replace or what is it in relation to Node? Rid It is a replacement

Wes Bos

is your year,

Scott Tolinski

to start implementing some of the stuff that that we just said we really like about this. But I'm I'm pretty excited about it for the future of JavaScript. And, also, it's just another another platform for us JS devs. It's rid It's another platform, and I'm excited about it too because if all it does like, if it all it does is give us all of these features within node, then that's cool too because all of the feature set I've never heard of it. So it got really popular here, like, so much so that The Rock was on it at one point. So HQ was an app that did, like, trivia, And it was a live hosted trivia game show that would happen twice a day. And your phone would buzz, and it'd be like, HQ is on, and you'd open up HQ. You, and it was a trivia game show that they would ask questions for. And if you lasted the entire thing, you got to split the prize. The prize money would be, like, You know, $200,000

Wes Bos

And then you, like, scroll down, and there's, like, 11 other Kines that are clearly every every programming languages out there. That's not just a node specific problem. So The solution to that is you you run your program in a sandbox, like a Docker container, where it can't get out. It can't, like, l s l on your root and

Wes Bos

slam dunk JavaScript.

Wes Bos

Gatsby, React, rid Vanilla JavaScript,

Scott Tolinski

I found myself reading a ton of source. There'd be times where things Just flat out wouldn't work, and I would have to read the source to find out why because the documentation rid This one, this oak one is pretty nice and easy to understand, but this is a very, very common practice. Yeah. That makes sense. What about, like, updating? I there's probably no tools right now to check if There's You're probably Well, not not that it's built in TypeScript. We had that whole kerfuffle before, but it is TypeScript. So when you write your code, it's a language that you know. Right? It's not Ruby or it's not Python if you don't know those. It is

Wes Bos

Yeah. I I think even we said on previous episodes that Adeno is rid. Something to latch onto if you wanna, like, hitch your wagon to something.

Scott Tolinski

before

Scott Tolinski

In this latest course, we talk about what ESM is, why you might want to use it, and how Snowpack fits into that picture. Sure. Because you might think, oh, I can just use e s m in the browser. I I guess I don't need Snowpack. Well, Snowpack actually helps out in a lot of, like, really interesting ways. And I've had a lot of very hands on experience with this because our level of tutorials new site is built in Snowpack, and

Wes Bos

Sometimes the pillow was too high, and sometimes it was too low. And rid I was like a Goldilocks about this pillow, and I found this, Deno,

Scott Tolinski

Sick.

Wes Bos

bottom something to download a URL, rid. I think, in general, it leads to just a bad experience for everybody who's using your website. So you grab the Chrome, the Firefox, the Edge extension, which is cool. I love the Express API. Rid. Yeah. And I love that it's been used in in so many other places. So, like, Express is not gonna run on Deno because Express uses Node. Js APIs.

Wes Bos

re Do you know package that has 6 downloads? You probably haven't found all of the issues. And do you wanna find that issue in production? Probably

Scott Tolinski

rid Of Deno is very good. So, like, I really appreciate where where it's at and, what it's hopefully going to do for some of the JavaScript in the server side aspect for us. Alright. We're moving to some sick picks. You got a sick pick for me there, Scott? You bet I do. And, and then you know me, I'm podcaster. I'm a podcast rid fien. I'm a fien for the podcast before I became a teen. Not microphones with the cones with ice cream, or cones like, cones with ice cream. I don't know. I forget what that microphone theme. Either way, on demand encoding. So if a specific version of a video doesn't exist, or something, you would get to split the prize money with however many people completed this thing.

Wes Bos

If 2021

Scott Tolinski

rid Tech education is not web dev, but it's related to us in all sorts of ways. And this is a fascinating podcast for me because rid I was,

Scott Tolinski

Oh, yeah.

Scott Tolinski

because you have a game show that happens twice a day With, you know, 1,000,000 connections all happening at the same time via WebSockets,

Wes Bos

hammered out of it, whereas re Environment where you can write and run your language. So but it's not at a point now where just, like, if you are tackling this thing head on, that The reason why TypeScript is is supported out of the box is because they see it as a major benefit. Yeah. So

Scott Tolinski

a a user of this application, which many people were. Did you guys ever get HQ up there up north? What a HQ

Scott Tolinski

one of my courses. The latest course on level up rid Or else at the time of recording this video is ESM and Snowpack.

Wes Bos

is that a magazine? It's an app. Rid Oh,

Topic 5 00:21

Introducing Deno

Scott Tolinski

Projects in the work here. I think well, all of which you're you're privy to. I'm working on, like, a whole new code base for a level of tutorials. It's like our our 3 point o, and it's it's rid Awesome. So I'm pretty psyched to start talking a little bit more about it. How are you doing? I'm doing great. We got a little bit of lockdown going on here again, which is

Wes Bos

Fortunate, but I'm really hoping those kids go back to school soon. Yeah. Right? Yeah. Let's, get rid of this situation.

Wes Bos

So, Dino, I've been using it for a couple months here and there. You've been using it for a couple months here and there. I did a course on it. You did an entire course on it, so we feel like we're at a a good spot. You probably been hearing us talk about it, tweets flying about it. It reached 1 point o in 2020.

Wes Bos

Rid And, yeah. Yeah. Yep. Nip it in the bud. Butt in the butt? In the bud? Butt. What's the saying? Butt. Butt. Butt. Butt. Like a rosebud. Yes. Or nip it in the butt like a piranha little bitin' a building your next

Scott Tolinski

We're out of that hellscape that was 2020,

Scott Tolinski

So how are you doing today, Scott? Oh, I am doing good. Hey, man. We're getting back into it. We're we're feeling the flow. We recorded, another episode this morning, and I'm feeling rid. Feeling a little bit better. Feeling a little bit more. The juice is going, getting moving.

Scott Tolinski

And we're into the hellscape that will be 2021.

Scott Tolinski

Overall, man, I'm ready to go on this year. I have some This is, I guess, the package for that, but,

Scott Tolinski

So I'm feeling good. It's, 2021.

Wes Bos

Yeah. Yep.

Wes Bos

Mux is video streaming.

Wes Bos

Rid. So let's just talk about what it is. Deno

Topic 6 23:08

Deno runs WebAssembly

Scott Tolinski

Neat browser stuff or at least Yeah. Browser stuff in the design of the API for Deno.

Wes Bos

And you can do that in Node, but the API for doing it in Deno is exactly the same as the browser, rid Which is really, really cool.

Scott Tolinski

Allows you to see who hit those errors, when they hit And what browser they were on, whether or not it was handled or not. Yeah. A lot of cool stuff, even the IP, the OS name, the stuff that makes it important to solve bugs. And if you have source maps, you can even see the direct line it happened within your, you know, maybe JSX or TypeScript files, something like that.

Scott Tolinski

and, let's get into multithreading with web workers, Wes. What is the well, you got a note here. I rid I just looked this up. I'm interested in this. I was like I was like thinking I was like, what other I was like, are service workers Yeah. Maybe I'm about that. Maybe it's it's not compiling it. I've always been under the the understanding that Deno is just a straight up runtime for TypeScript, and that runtime is built in

Scott Tolinski

trying out some very fancy code. And if you're trying out some very fancy code or even code that just gets used by anybody, regardless if it's fancy, You're gonna want an error and exception handling service like Sentry at Sentry dot I o. Now Sentry is a really neat place to see all of your errors and exceptions happen in one spot, Allows you to catalog and categorize them based on what they're doing and how it fits into your entire application.

Wes Bos

rid Work. You didn't wanna block everything in your main thread, then you can kick that off to a a web worker, and it will do the work for you, which is pretty, pretty rid Cool. Pretty pretty cool. Just look that up myself as not something I have tried. It's not even something I've done a whole lot of in in the browser world, but just knowing that they've already done that is Pretty cool. It's gonna be very crazy. Next one is going to be speed. Deno is very fast. The fact that you don't have to specifically,

Wes Bos

a native add on. You know, like, rid Remember back in the day when you would upgrade Node and your Sass would break, and it would tell you, like, all these errors and stuff? Yep. With What I thought we would do is before we even get into the benefits and all the nitty gritty of it, I thought we would just play this game of, does it rid Replace or what is it in relation to? package has, like, window APIs on it. And second of all, you can use, say, like, window dot At event listener dot load to unload, and you can listen for Deno events the same way you would listen for Yeah. It's kind of cool, actually. If you if you look into a package manager, supports Deno as well. Hey. This is not the first time I've heard of fly. Io in the past you have that one for you. If you know the browser API, it's already coming into into Deno. So I'm really excited about it. I don't know if it We'll go anywhere. It might light a fire under nodes what's going on with it. So check it out at d q. It's deque.comforward/axe,

Wes Bos

are available JS or TS files to the Internet. You can literally run, Deno run, and then paste in the URL, and it will run the script rid That exists at that URL. Obviously, check It loops all of those things that you normally have to go out and reach for

Topic 7 08:10

Deno doesn't replace front-end frameworks

Scott Tolinski

which is sort of like their their whole thing seems to be like, we're gonna be re but for Deno, I have not used this. It looks a little fresh. It almost looks, and, all sorts of, like, really interesting stuff going on. Rid. One of my favorite things about this podcast is they didn't necessarily shy away from talking tech specs in a way that was, like, accessible. So they'd be like, rid The application's built on WebSockets. What does that mean? Well, it means that this happens, and therefore,

Wes Bos

and not a JavaScript API, and that's why you don't have fetch in Node Yet. CrossFAST, isomorphic stuff like this that is certain things. It just freaking always pops up and Always. Yeah. That's just a growing pain from us switching over. So rid. I'm so stoked. That's part of why I'm excited about

Wes Bos

rid. Of course, it's gonna work on on Deno because Deno runs JavaScript. But if it's node based, it has node APIs, then it won't work. Next one, SSR. It comes one really cool thing about, you know, is it comes with all the browser APIs out of the box. So rid Huge pain in the butt is that the fetch is a browser API 4 downloads in the entire time. Like, This is not something that, so it will work as long as it it's not super well supported. You're not gonna be able to go to GoDaddy and throw a Deno And, actually, that is kind of true because we'll we'll talk about the rid The security and sandboxing in in just a second as well. Yeah. And that's really cool. My initial thought behind that was like, okay. But, like, re There's no package registry. You simply just

Wes Bos

browser based or if it's just JavaScript,

Scott Tolinski

Webpack, any of these things bundler. Now Deno is The bundler, you do not need to use any of those things. One of the cool things about Deno in my experience is that they're looking at it much more like Many of these other languages, like I've mentioned before in the past, things like Rust or any of these other, like, fully Go, I've heard. Go. Right? These fully encompassed environments re Where, like, you don't have to pick up a formatter. You don't have to pick a bundler. You don't have to pick any of that stuff like a testing framework. You don't have to pick any of that. It comes with Deno because they want you to just, like, use the platform a newer version, but assuming that we would get something that could, like, parse URLs like this and look for newer versions. Yeah. I know. I feel like there has to be something like that, but I think because DEPS isn't like it's not baked in. No. It's not. It's just a thing. It's just a it's just a, convention. So,

Scott Tolinski

Well, the same way you did node apps with Deno. Right? Deno doesn't necessarily care about your React app. It's just going to serve this JavaScript as is. Rid. You can serve it with an Oak server like you would an Express server or even there is we talked about this on the episode with Brian. This new framework rid Called Aleph,

Scott Tolinski

not not like a not a dig

Wes Bos

fetch, or any of those, you always have to bring it. Yeah. You have to, like, install it. And, like like, rid Come on. That's, like, the thing I wanna do in Node is, like, I just wanna fetch data. Right? Like, why do I have to install that every single time? Also, window dot add event listener

Scott Tolinski

a l e p h, which is alephjs.org,

Scott Tolinski

Yeah. It looks great. So if you're interested in building React sites, this could be an option. It it does look like it it might be pretty fresh, but, definitely looks really cool and something that rid You should have your eye on if this Deno world interests you and you build front insights. Totally. And we should say, like, a lot of the Tooling around your existing React probably won't work on Deno. Right. Specifically, something like a Next. Js probably won't work on Deno because rid. They use specifically Node. Js API. So that's the difference there is that if it's purely

Scott Tolinski

is just going to be the JavaScript part of that. Now how can we do, like, React apps with Deno? Cool. Shameless plugs. I'm going to plug build online video.

Wes Bos

DOM events or or window events in the browser. Yeah. Cool. So next 1 is, Parcel Snowpack,

Topic 8 31:30

Deno has security sandboxing

Scott Tolinski

and and and and I'm very, very sorry for whoever I'm about to say. Let's say Next. Js. I'm not picking on you. Let's just say you run you install Next. JS is like a global on your computer, and then you run Next. Js. You kind of are just trusting that Next. Js isn't going off because it's a node app. You know, there's that's a node file that's gonna go and do things. You're kinda just trusting that that's not gonna go start mining Bitcoin, which it's not. I I I I should've just made up a fake company. I'm I'm I'm not saying that anybody's do. But, like, this would if you were to do the same thing in this particular situation, you were gonna say, just run this random package that I got off the Internet. You know?

Wes Bos

And that's true for literally

Wes Bos

to something else. And this will allow you to rid. Sandbox it without having to use a virtual machine. And like Scott says, you can allow it everything, specific folders, specific files, just read, just write. Rid

Scott Tolinski

Okay. I'm running trust me .ts. I hit enter, and then trust me .ts isn't gonna go ahead and and add and remove files or whatever. It's going to essentially, Express, for those of you who don't know, is a node based framework for building a web server.

Wes Bos

executing on your server,

Wes Bos

maybe contribute to a project, rid. But then all the tooling overhead and the compile steps and whatnot

Wes Bos

is being able to NPX something. Yeah. Love NPX. One kinda cool NPX I found the other day is NPX kill dash port. Rid. If you have a process running on a specific port that's, like, beheaded and you can't figure out how to kill it, you can kill the process based on what port it's using, And NIP execute port will will do that for you. I love that. And one kinda neat thing is that you can to see how they're how they're reimplementing it because rid. This is no different than you writing a module, but they're just writing it in as part of That they finally just started sponsoring the podcast.

Wes Bos

network access can even like, you could allow it to read and write your files, but not go out to the Internet, which is kinda cool because then it couldn't send your environmental variables to something or your file system. Like, I think about this. Like, you download some scripts, and sometimes people are like, oh, just run, So any Linux server will be able to do it. Begin.com, is a Deno API, and that's great because, first of all, you're not gonna run into these, like, annoying you don't have to npm install absolutely everything whenever you need something. So something like looking up MIME types rid For files, you previously, you'd have to go and get a package for that in node or, getting UUIDs.

Wes Bos

publish off and see what works out. But, I was happily surprised about that helping my helping my sleep a little bit more. Rid What is the name of the pillow that you got? Because it's so funny. It's called the it's one of these stupid, like, Amazon names.

Scott Tolinski

That with the permissions, and you can feel fine about running just a random script. Right? But So, Rust

Wes Bos

that rid. It didn't need to be compiled or bundled or anything like that. Like, so often, I find myself wanting to That might be true. That probably is true, and I I don't know enough of it. And I I was even thinking about that myself. I'm like rid Like, what do I, as a web developer, care that it's written in Rust? And, like, why is it written in Rust, but we we write our code in JavaScript? So What I understand here is that, like, v eight, the engine that runs JavaScript is written in c plus plus. That's the engine behind Chrome. Rid. And node is written in c, c plus plus, and JavaScript, check it first that to see it's not malicious or anything, but I think that's so so cool

Topic 9 02:29

Deno replaces Node.js

Wes Bos

letters of node and put them in the front, and then it's d no. And, I guess, that's how we know how to To say it. Right? Because what what's the other way to say it? The reason we know how to say it is because somebody, I think Ryan Dahl, specifically clarified it in a YouTube video, but We've always said that dino every single because Oh, yeah, rid Dude, because if you're using common JS modules, Wasm, you can just compile those into web assembly modules, and I don't know if you would hit the same issues or not. But rid. Anything that is made for Wasm in the browser will just work for Wasm in Deno, which is pretty cool. I know Node is planning to support WASM as well. I'm not sure what the API will look like, but the fact that it's the same as the browser makes me so happy. Yeah. There's a lot of just, like, it's browser based. There's a lot of, like,

Wes Bos

Deno.

Wes Bos

is a secure runtime for JavaScript and TypeScript.

Scott Tolinski

oh, no. Not diary. Deno because like DASH and all these things that are, like, rid. Swapping from, So while the libraries are still being written and evolved, I found the documentation ready. To be especially sparse on third party modules sometimes.

Wes Bos

That it's a competitor to what Node is, and it's also a competitor to what Ruby and and PHP is. It's it's basically it's another But in Deno. And, again, the browser API is exactly the same. So If you wanna do multithreading in JavaScript, rid Where they basically just, like, write the entire API

Wes Bos

Duh. You take the last 2

Wes Bos

the name is a play on node, so no Rid Scott and I have been fussing around, Fitzsimmons, the same pillow. Yeah.

Topic 10 11:01

Deno bundles and compiles code

Scott Tolinski

are ESM, ECMAScript modules. For those of you who don't know, it's basically So I think that is a good time to talk about one of our new Sponsors, I don't have any, transitions worked out for them just yet, but this sponsor is one sponsor that's near and dear to my heart because it powers All of the video on level up tutorials .com

Wes Bos

It's awesome because you can start

Scott Tolinski

Now all of a sudden, we need to run Jest to do our testing. And so now I need a whole custom config and a whole custom build process was just for our stupid GEST test. Like, as first class languages on runtime. So Okay. Yeah. So that tells me, look, there there probably is A compiling step at some point the time,

Wes Bos

alright. I gotta spend you have to send that off to a worker, and it it works in the background in another thread. And then it comes back And says, hey. I'm done. Here's here's the pie I was baking you.

Wes Bos

rid Get this little like, the wind out of my sails when I find out, like, So you you sort of feel at home, and any other, like, minor inconsistencies,

Wes Bos

but you just import the packages from URLs that live on the Internet somewhere. So We'll talk about what that means and and how that works in when we talk about the modules part. Alright. So let let's talk about some of the benefits that we have here. We've got a whole bunch of subheadings Yeah. We've already talked about one of the biggest benefits, which is just TypeScript and JavaScript work out of the box. But we've got modules, standard lib, WASM, speed, security,

Scott Tolinski

as it is. So for me, I really enjoyed that. So web webpack, Parcel, No pack no more. One of my very most favorite aspects of working in Deno is the ability to just start writing code without having to configure some sort of a webpack bundle or something. I'm gonna loop in a bunch of these together just because Yeah. It does it all. Yeah. So Prettier, Deno is a formatter. TSC, TypeScript Compiler. Re Deno is a TypeScript compiler in runtime. ESLint,

Wes Bos

Deno is a linter, and Jest, Deno is a test runner. So like Scott just says, whatever dot j s. And then you import Lodash from your dependencies file. And then whenever you wanna update Lodash, you'd simply just update the URL in that that one spot. Right? Yeah. It's a common practice to see what is a deps, d e p s dot t s file, and I've actually linked to Oak, Oak server's adepts.ts put their Oh, yes. Fingers underneath orthopedic

Wes Bos

And you run this thing, and it's gonna show you exactly You can do that. And, you know, I'm just looking at it right now,

Scott Tolinski

Oh, shoot.

Wes Bos

and then we'll talk about our own own version. So you wanna kick it off there with,

Wes Bos

rid Running from anywhere, asynchronous code, node compatibility,

Wes Bos

How do modules work in Deno? Yeah. Okay. So modules

Scott Tolinski

it it was like it made me, like, really just want to pick up my computer and and dump it in the trash can because, Like, I had I I just like, that's a good message. It I just absolutely adore this service. Mux is one of these amazing, amazing services. On over to mux.com. If you're building anything with video, you're gonna wanna check this out. It's built for developers.

Topic 11 38:28

Deno uses async/await

Wes Bos

of the API has been implemented, which is kinda cool. Things like path dot join. And that's not because you wanna code your API with node APIs. Rid. It's because you probably wanna go grab modules

Wes Bos

Next one is rid Node compatibility. So this is the one that I've been looking at because, like, No. Duh. Yeah. Duh. No. Rid I know. Don't know if we should just take the audio of me saying node and replace it, and we'll find out. But we're saying, Dino, and we think that's right. Basically, what it is is they've taken the engine out of Chrome, which is this thing called v eight, and they use it to run JavaScript. So like any programming environment, you can run it on hardware. You can make it do whatever you want. Most likely, you're gonna be using Deno to do to run a web server Mhmm. Or to perform scripting tasks, but you can use it for anything. You can mine Bitcoin. You can do scientific calculations with it. You name it. And the coolest part about Our transcript generator,

Wes Bos

we probably aren't going to be switching over to Deno just get in the way. I'm like, it's not not worth it for me. I don't wanna spend that much time on it. Or in this case, you can just publish a little script up, and then you can tell us that, hey. If you wanna run this script, Just run, do you know, run, and then paste the URL of it, and that URL can live anywhere. Yeah. I love that about it. And then combine playing with it.

Wes Bos

As

Wes Bos

maybe not. It's not an uneven half

Wes Bos

for Node. And then inside of all of those API functions, they implement it

Wes Bos

you can kinda think of it as a polyfill are built in TypeScript that I'm seeing. Like, you can do anything, and and the reason behind that is because rid. V eight doesn't know what TypeScript is. The TypeScript is compiled to JavaScript at the end of the day, but it seems to be that

Wes Bos

If I were just using Deno because of all the stuff that's built into node. So they are working on a rid. Node compatibility,

Wes Bos

layer with the Node. Js standard lib. Rid. So things like f s dot write file sync, that's actually already been word. Let's talk about what we Any Linux server, you can install Deno to just like node. Yeah. And then in order to run your application, you just Probably not for most people. I would also say, like, if you know JavaScript and TypeScript, you're already, like, 90% of the way there. Yeah. Rid. The really the only difference is that you just have to find out

Wes Bos

Millions of packages out there that that we need, and I would not be able to move as fast or be as efficient specifically, begin.com,

Wes Bos

that is meant to have a compatibility

Topic 12 40:15

Deno aims for Node.js compatibility

Scott Tolinski

rid Deno one zero one for web developers.

Wes Bos

episode of syntax so that I could pipe it into

Scott Tolinski

Like APIs with the

Wes Bos

so I just found a module called download.

Wes Bos

no babble conversion

Wes Bos

from the get go, And there's for writing little scripts, doing fun stuff. Rid. It is not the platform for

Scott Tolinski

the amount of packages even that I'm trying to you know, that I have to deal with. Rid Require is not defined. Just Yeah. It's gonna be a rough couple years.

Wes Bos

And rid. It's great. You just pass it the URL, and it downloads it. You, of course, have to run it with allow network and allow write flags so that it can both Go out to the Internet and download the thing and, also save the file locally.

Wes Bos

6 stars on it and rid Courses and newsletters and and all that stuff. Wait. You saw somebody come out with a Dino course? Yeah. Who? I think it was, And it will start downloading every single rid Issues with you do with Next. Js where a So, like, if you wanted to do some resource and intensive Brian LaRue, He maintains the Deno library that will run on AWS,

Wes Bos

thousands of developers need. This is something that dozens of developers need. And is there gonna be a Canada Post module Oh. For Dino, probably not anytime soon. Right? Here's what you should do, Wes. You should head to their GitHub issues. You should file an issue and just say, rid. Make me Dino, please.

Scott Tolinski

Oak server. So my my work primarily JavaScript, which is what we're used to, although it it it is rid TypeScript out of the box. So you could use JavaScript or or TS out of the box. I I kinda feel like do people write JS with Deno? Is that, like, actually a thing, rid Or is it just, like, everybody who does it uses TypeScript? Because I I've only really seen Deno TypeScript. Yeah. It seems like all the native rid Modules

Wes Bos

of, which is kinda cool. So rid I don't know when that will be done or if that will ever be done.

Wes Bos

Webpack config doesn't know how to handle

Wes Bos

require I don't know. A couple months ago, because I was having some, like, neck pain in the morning where I was sleeping too cricked.

Wes Bos

just ES modules we've had Ryan LaRue. They do

Scott Tolinski

in the course, which is primarily how I've written Deno, rid Was really around how can you write CLIs, but also how can you quickly build a web server, and what are the caveats you run into. Like, some of the things that I found would be, like, packages that had, like, 20 stars in Deno or something like that, and you've just been like,

Wes Bos

rid crypto or anything like that. You'll be able to

Scott Tolinski

built with it. Rid Yeah. So you built a course in it. What did you do in that? It's fun. I I did a a course for level of tutorials in oh, I think this was November, and this was,

Scott Tolinski

or require. That stuff is a a PIA to me. Rid Yeah. The the require stuff? Yeah. Just in in this general switch over to ESM for me, it's like is complex. It's not just firing up an MP 4 in the browser. And so you're gonna want a service that handles if you're doing any serious or any video work at all, to be honest. You're gonna wanna have a service that handles all of the hard stuff, and Mux handles rid All of the hard stuff allowing you to get

Wes Bos

I am so excited for like, not that rid Common JS was bad. It was great, and it was great when it was all Common JS. But now that we're in this, like, weird in between babble everything,

Scott Tolinski

Add add types.

Topic 13 26:19

Deno is fast

Scott Tolinski

IPs, whatever, You can pass those in directly to give it a list, or you can just allow all domains. You can also allow read for reading files. You can tell it to read rid files only Rid I can't believe how quick you did it. Yeah. It was just like, I don't know, 20 minutes or something. I did it in maybe less than that. The hardest part was finding the right video player. That was the hardest

Wes Bos

to having it be the Having it be compiled over. Yeah. Rid Okay.

Wes Bos

and Deno is written in Rust. And how it talks between your JavaScript and your Rust, how those things connect to each other is written in notice, written in c or c plus plus. Rid. In in Deno, that's written in Rust. So if you go into the Deno GitHub repo, you can search for dot RS files. Rid I've provided a link to a little hello world one, and you can just read through the Rust code to see how it's, like, sort of passing data between Between JavaScript and passing that off to the V eight engine. So okay. So I'm I'm trying to to get to the bottom of this. Out of the box, TypeScript compiler your skull Yeah. And they're just like, oh. Yeah. Like, this is the feeling that this rid. Pillow gives you and, like, it's probably not for everybody because everyone's really fussy about their pillows. But I have tried so many pillows over the years, and I finally got one of these weird looking ones. Rid. And there's, like, a spot for your arm to go and a spot for your head, and They allow you to just deploy Deno too. That's probably I think that's the only one. I'm just looking on Reddit right here. Somebody said fly. Io

Wes Bos

So it it still has to be compiled, but it's It's all done. I keep saying it under the hood. Right? I thought it did that in runtime because it's a runtime for TypeScript.

Scott Tolinski

Yeah. This is kind of a a tough tough thing to solve here because it does say they're trying a little har too hard to be Next. Js with the branding and some of the stuff. But, like,

Scott Tolinski

to just basically modify 1 file. But, again, since Deno runs TypeScript natively, it can just rid. Look at the TypeScript and run it rather than having to wait for any sort of bundle or even compiler necessarily to compile that file. I don't think that's rid necessarily true because Which part about that? The fact that TypeScript is not compiled. It still is compiled. It's just compiled under the hood because

Scott Tolinski

time, Which is high resolution time management, not something I've used allowed net, which allows you to give network access. And the cool thing about that is you can Scope it to specific URLs too. So let's say you only want to allow connections to specific, addresses,

Wes Bos

even with notice, I don't rid. Totally understand how all of the

Scott Tolinski

Relies on both extensionless allowance by saying allow hyphen net. And so what there is is there's basically a list of various rid Permissions of which we can just list off really quick here, which is allow e n v for environment variables, HR

Scott Tolinski

matter because we know that somebody is making is writing Rust code so that I can write my TypeScript in JavaScript, and it runs Nice and quickly. Yeah. Without needing a a webpack or something like that. Let's talk about these security flags because I thought this would be pretty interesting. So out of the box, If you try to, let's say, read a file in Deno let's say you just write a standard, like, f s, whatever. You read a file. It doesn't rid It'll allow you to. Basically, it'll give you permissions error. Same thing with writing to a file

Scott Tolinski

rid Run some sort of a build process while you're developing. 1 is fast. 2, it's built in Rust, which is also always very fast type safe.

Scott Tolinski

in there. I don't know. It says it supports it on runtime, though, because there is things about compiler hints. So I don't know. Yeah. If you know, tweet us at Sodex FM.

Scott Tolinski

is, like, primarily known for being exceedingly fast in general, so that's great for us. Basically, they they took the lessons from from Node and and expanded upon them. I rid. I think one of the big ones is ESM too. ESM allows you

Scott Tolinski

In order to bridge this gap, Deno has so this says,

Wes Bos

c and c plus plus and all that stuff works. Mhmm. But it doesn't necessarily

Scott Tolinski

rid Rust, they reimplemented TypeScript in Rust as opposed

Topic 14 03:55

Deno uses TypeScript

Scott Tolinski

of Deno is Oak, Which is oak server forward slash oak on GitHub. And for the most part, this API is very, very, very familiar. It actually models Koa, The API does. So if you've used Koa before or any of these web frameworks, to be honest, I found Oak to be rid. Very easy to use, very easy to parse and get up and running if you've ever done a web server.

Wes Bos

So while you won't be running Express rid Specifically, there are definitely express like things in Deno. Next. Js does this as well for their API routes. Is it's very much like an express. The API is very similar, rid. Quite honestly, like, I'm really excited about that because I'm somebody who does lots of little quick projects.

Scott Tolinski

that is that it is So if you're living on the web development edge,

Scott Tolinski

TypeScript.

Scott Tolinski

So, rid. Folks, but it kinda looks like like, modules in the note what? I have a really good tech based podcast that's not, like,

Scott Tolinski

rid use Svelte, any of these things? And the answer is no. React, use Svelte, these are all JavaScript front end frameworks. Now more and more, they're becoming like They can be used server side. Right? We can do server side rendering in React or whatever, but React itself

Scott Tolinski

Express rid Doesn't currently run on Deno.

Scott Tolinski

Rid. But, yeah, like Scott says, things like Oak and and other servers will run. Yeah. And we actually like, I I've spent quite a bit of time with Oak, and it is it's very good. Next one is serverless.

Wes Bos

you can pick up pretty quickly, The thing you're running it against has support for Deno, can can compile the Deno binary. So so that's what I built in my experience. What I did with it is I've been primarily doing little scripts. So anytime I need to to script something, one example was I needed to download

Wes Bos

So Deno can be used for anything. So whether that is spinning up serverless functions or a traditional web server, it will run as long as of, like, how do I download a file in Deno? How do I save a file? How do I Not even, like, how do I make a request in node? Or how do I make a request in Deno? Because it's just browser API. So Welcome to Syntax. This is the Dino Show. This is long awaited.

Wes Bos

Just to sort of place it in your mind as to what is this thing and what isn't this thing, and then we'll go into the the The actual benefits of it and and why was this thing even created when we have Node already.

Scott Tolinski

However, the express

Wes Bos

app on there, but it's not like Deno is a replacement for serverless as serverless can be done in Deno just like it can be done in rid. JavaScript, Ruby, Python, whatever language you like. Yeah. Next 1 is going to be, is Deno a replacement for React,

Share

Empowering developers for over 286197010558 milliseconds!