Codesmith Tech Talks: Deno | The Next JavaScript Runtime by Zoe Harper sponsored by Jeeny + Bractlet

Zoe’s Tech Talk focuses on Deno. Zoe provides an overview of what Deno is, what “secure runtime” means, and what Rust is. Zoe then provides a brief history of Node and what that will mean for the future of Deno.

Connect with Zoe
GitHub: github.com/ContraireZoe

Codesmith helps residents develop engineering best practices, analytical problem-solving abilities, and strong technical communication skills. Tech talks allow Codesmith residents to deep dive into a technology outside of the Codesmith curriculum. Topics have included: AR/VR, Game Theory, React Native/Mobile Development, new React Lifecycle Methods, bit-flipping, Service Workers, and GraphQL. Learn more about Codesmith at

SUBSCRIBE so you don’t miss out on our future videos! 👉https://tinyurl.com/codesmithsub 👈

Stay connected to our community!
Codesmith:
Learn JavaScript for Free:

Follow us to stay updated!
Facebook:
Instagram:
Twitter:
LinkedIn:

#codingbootcamp #softwareengineer #techtalk #deno


Before we begin I would like to thank Genie and Barack Smith for sponsoring This Tech talk and let's Dive Right into This you know who I am and let's talk About Dino So Dino they have this brief description of Themselves on their website Dino is a Simple modern secure run time for JavaScript typescript webassembly that Uses V8 and is built in Rust So we're going to cover all of our W's Here so first we're going to break down What they actually mean by that then We're going to talk about a brief History of nodes specific to what that Means for Dino what Dino might mean for You and then we'll get into some Commonly asked questions such as if node Is on the way out and then we're going To recap So what is Dino The simple and modern part art easy to Understand you have a single executable File it's like 32 megabytes it's very Lightweight there's compatibility for Lots of modern JavaScript apis you have Just like native fetch as it should be Right when they emphasize secure they Mean Dino does not default they give or Is given access to your system shell or Your the environment of your whole Computer Dino requires each file to Individually declare and be provided

What it needs and when both reading and Writing have to get these things out An oversimplification of what a runtime Is is there are two things called Runtime say runtime library and a Runtime system the latter is often just Referred to as a runtime and it's what They mean here it's a runtime Environment for your code to be executed In an easy way to think about this is That this is the room in your house that You live and work out of you have access To your bathroom the same way a runtime Has access to your file system sockets It does garbage collection And in that runtime it allows you to Compile and execute JavaScript Typescript and webassembly so JavaScript You know it you love it it's dynamically Typed and Ryan doll specifically the Creator of both node and Dino also loves It and sees its place in programming as A fun language to prototype and hack and Script in the way he talks about it Shows a very genuine appreciation for That place in coding Um and then there's typescript he sees This sort of as the future to JavaScript Not in the sense that it is a Replacement to JavaScript but it's Something your code develops into from JavaScript As you move from Dynamic Typing and you transition file by file To the static typing in typescript it's

Permanent stable So then you have webassembly which is Its own can of worms a low level Assembly like language in short it Allows assembly languages reading Compact and binary data to run on the Web languages like rust C C plus plus Webassembly is by Design able to run Alongside JavaScript so this is just how The internet works at this point anyways And then you have V8 so V8 is an open Source JavaScript engine developed by The chromium team at Google and it is How many browsers process and execute JavaScript And then the very last thing in their Description was Dino was written in Rust Rust is a statically typed language it Emphasizes type safety and performance And it's very very similar to something Like C plus plus and has strict memory Safety to protect your variable names And avoid the need for garbage Collection So there's lots of cases where you'd Want to execute some JavaScript on your Computer but you don't want this code Execution to have access to everything On your computer uh doll refers to this Problem as having to Shell out or Shelling out you're giving access to Your system shell to this program you Don't want to give this power with node And you don't want to give it with Dino

In something like V8 which you could use To control this is just very difficult To actually use on its own So node requires all these installs and Programs to be running to allow this to Actually happen and then raw V8 is Basically totally unapproachable so it All describes a possibility with Dino as The sort of in-between option for Instance With Dino you could integrate something Like typed arrays directly so this uint8 Data form an unsigned 8-bit integers the Compact form of binary where you would Be able to interact with something like Promises from JavaScript while you're in Dino and because Dino is built in Rust You might also be able to map these Promises in JavaScript to Futures in Rust So On the non-technical side the side that I actually think is the most exciting Part about you know Listening to doll talk about you know is Like a genuine treat he's just so Passionate about it and I would highly Recommend listening to some of the talks I have Linked In A later slide So let's go on to the why Why was node made why would you choose Dino right so Ryan Dahl the creator of Dino it was made back in it started in 2018 the Prototype didn't launched it

Out of an event he was also the original Designer and creator of node back in 2008 he helped maintain it for a few Years before moving on JavaScript has changed a lot since then And with these changes a lot of new Problems have Arisen from the use of Node node fixed them originally but now They have introduced problems of Their Own One of doll's primary talking points is Bringing up like this landscape how it Came to exist how node came to exist you Did not have async in a way you didn't Have this non-blocking JavaScript you Did not have es modules the ability to Import a just bunch of code into a file Directly through a URL you didn't have Typed arrays these uint 8 data forms I Mentioned earlier you can't you couldn't Read and write this raw data with JavaScript so these things didn't exist So we had node we had node now your 500 Gigabyte lightweight node modules folder Security issues inherited from blindly Trusting node packages the necessities Of node Things that it needs to run JavaScript On and off the web the way that node Needs access to TCP sockets it's Legacy Apis these things are the tip of the Iceberg for some of those problems the No technology is perfect but we have 14 Years of problems that are very

Difficult to solve from never really Checking in on node Dino offers support out of the box for Node modules but one thing it strives to Do is prevent the dependency help Problems with all these external Dependencies kind of chaining into each Other Doll recognizes that this isn't a Problem up to a certain point so you Only have one or two layers deep of Dependencies right it isn't chaining at That point and you haven't downloaded All of npm into your file so You have your core Dino package which is Kept as minimal as possible and then you Have the dino standard set of modules Where at least as of 2019 doll said he Was superficially reviewing all of them Before he put them on there So then we move on to one of the biggest Questions that people have about Dino And that is the when So when is Dino going to come in and Swoop us off our feet pulling us from The black hole of our node modules Folder and into this lush tropical Landscape of dinosaurs right So the question of when for most people Is going to be never Doll emphasizes heavily in the stocks That it's whenever you actually want it If you like note you should use it if You don't like node give Dino a shot

Translating something from no to dino is Probably unfeasible for many many Products for many many reasons whether It is Dev hours the limitations of node Because it is silly new technology The quirks of node sorry the limitations Of Dino because it's new the quarks of Node because it is you have to use some Of these things to make things work it All depends on how you look at it Dino Uses es modules out of the gate so you Don't have the same like required Imports and things like that the Required function isn't even available In dino by default right there is a Compatibility Library natively supported By Dana which you can use to do some of These things and you can import these Node modules this way but it doesn't Support everything All of Dino's asynchronous actions Natively returned promises so Dino Provides different apis than node like Mentioned previously in the what section Talking about how rust can interact with Futures and how you can incorporate Communication between rust's Futures and Javascript's Promises with Dino things Like this allow for new possibilities of Code making these lower level languages Like C plus or rust more accessible to People with different viewpoints like How could you come in this how what can You make how can you work with it

So node is stable it's extremely stable It's probably not going to change and if It does they're like are committees that Agree on these things they have to Because it's so big it's so necessary to Stay the same Dino and node won't ever be compatible In this way where you could just take Something from you know or take Something from node and shove it in Dino Or vice versa So With that caveat there's support to move Things over but Dino isn't super groundbreaking and it's One of the most important things to Think about here what Dino is And to summarize Is that Dino is super cool you can see The power and benefits from things that Are on screen right now but the thing That draws me to dino is totally Unrelated to what it can do but what's Being done to it and on it and by who Dino is fascinating really really Fascinating almost purely to me because Of its creator Ryan doll who is so Passionate and interesting uh In Plato's Symposium he writes of a Priestess named diatima and her lateral Love and on this letter there are six Steps love for a particular body love For all bodies love for Souls Uh love for laws and institutions love

For knowledge and then the love for Beauty itself and when I think of Dino And from the research that I've done and Watching Ryan doll speak I see a man who Is on the precipice of this last step Ryan Dahl has a love for programming for Coding for knowledge for building Something that is fun and beautiful Beautiful in this philosophical way one That is yearning in searching for better Technologies And this is something that is truly and Genuinely unique to Dino and if that Resonates with you Then I would recommend trying out you Know and that concludes my talk so thank You for listening here are my citations And in the corner there's my LinkedIn And GitHub if you would like to connect

You May Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *