Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deno - Why should you care

Deno - Why should you care

Talk given at require('lx') meetup on June 16th 2021.

Alexandre Santos

June 16, 2021
Tweet

More Decks by Alexandre Santos

Other Decks in Programming

Transcript

  1. Who am I? • Alexandre Portela dos Santos, 27, Ericeira

    • Involved in the JS community • Occasional blogger • Passion for products and startups • Engineering at KI challenge.rs @ampsantos0 @asantos00
  2. Agenda • Node and how it looks 10+ years later

    • Deno, why? • Architecture and internals • What does it bring to the table? • Demo • What’s next? • Q&A
  3. Node.js • Changed how I/O was dealt with - asynchronously

    • Used an async-by-default language - JavaScript • Enabled different use-cases with JS on the server • Low-level, purely evented, non-blocking infrastructure • A complete success
  4. Node.js - 12 years later • Node.js pushed the language

    forward • Invented features that didn’t existed • Created a standard-library for its needs • Encouraged the community to create loads of modules • Enabled accessing system resources from JS
  5. Any problems? 1. JavaScript started to evolve in a different

    direction 2. Hard to keep up due to its huge adoption 3. Dependency-hell 4. Lack of standards 5. Security wasn’t a concern
  6. 1. The evolution of JavaScript • ECMA International was created

    • Browsers started to add new features • Redundancy, incompatibilities • Third-party solutions here created to match the mother language
  7. 2. Hard to keep up with updates • Node.js diverged

    from ECMAScript • Lots of legacy • Core written in C++ • Huge adoption made it hard to iterate
  8. 3. Dependency hell • (too much) Low-level library encouraged creation

    of many small modules • Not possible to iterate on standard-library without a new version of the runtime
  9. 4. Lack of standards • Didn’t provide a standard for

    common use-cases ◦ Testing ◦ Linting ◦ Dependency management ◦ Bundling • Too much tools around a basic Node.js project
  10. 5. Security wasn’t a concern • Used a sandbox V8

    to run the code • Poked wholes on V8 to access system resources ◦ Networking ◦ Filesystem ◦ ... • No way of limiting what Node has access to
  11. Is there space for innovation? • Productivity of JavaScript is

    unquestionable • Ideal for scripts, prototyping, starting something up • Ability to iterate and improve with TypeScript • Needs of a codebase are now more concrete • We want to use the same “browser JavaScript” • We want the language to evolve fast
  12. Deno enters the scene Deno is a simple, modern, and

    secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. • Secure by default • First-class TypeScript support • A single executable file • Complete and audited standard-library • Fully ECMAScript compatible
  13. What’s next? • WebGPU • HTTP2 • Plugin API being

    worked on • Finish Web Platform Tests compatibility • And much more
  14. Giveaway Participating • Add your name to the chat •

    Draw will proceed https://alexandrempsantos.com/deno/i-published-a-book-deno-web-development/ Deno Web Development Write, test, maintain and deploy JavaScript and TypeScript web applications using Deno.
  15. Thank you so much Questions? @ampsantos0 @asantos00 June 16th -

    Alexandre Portela dos Santos - require(‘lx’)