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

Introduction to Deno

Introduction to Deno

Presentation of the new JavaScript/TypeScript Runtime from the creator of Node, with advantages like Security by Default, TypeScript first-class language, ES Modules, Distributed Package Management, Top-Level Await, Standard Library and more.

Rafael Casuso

May 29, 2020
Tweet

More Decks by Rafael Casuso

Other Decks in Programming

Transcript

  1. RAFAEL CASUSO CEO @GOSNOWSTORM FORMER CTO / DIRECTOR OF SOFTWARE

    ENGINEERING • +12 years Developing Software Products • +8 years Leading Engineering Teams • Technologist. Passion. Innovation. Agile. • Writer @Medium. Speaker @Slideshare. • Founder of @VueJSMadrid @BotDevelopmentMadrid Co-Founder of @AgileDeliveryES THE CORE OF AGILE
  2. ORIGIN BASICS • RYAN DAHL’S 10 THINGS I REGRET ABOUT

    NODE: NOT STICKING TO PROMISES, SECURITY, BUILD SYSTEM (GYP), PACKAGE.JSON (PACKAGE MANAGEMENT), NODE_MODULES, REQUIRE WITHOUT EXTENSION, INDEX.JS • BUILT IN RUST WITH TOKYO (RUST ASYNC RUNTIME) • USES V8 ENGINE • DENO IS A SINGLE EXECUTABLE FILE (WITH ROLES OF RUNTIME AND PACKAGE MANAGER) • INFLUENCED BY GO INTRODUCTION TO DENO
  3. COMPARISON TO NODE • DOES NOT USE NPM (MODULE IMPORT

    BY URL OR FILEPATH) • DOES NOT USE PACKAGE.JSON • ALL ASYNC ACTIONS RETURN A PROMISE SO IT HAS DIFFERENT APIS FROM NODE • REQUIRES EXPLICIT PERMISSIONS FOR FILE, NETWORK AND ENVIRONMENT ACCESS • ALWAYS DIES ON UNCAUGHT ERRORS • USES ES MODULES, NOT COMMONJS INTRODUCTION TO DENO
  4. HIGHLIGHTS • JAVASCRIPT AND TYPESCRIPT AS FIRST-CLASS LANGUAGES AT RUNTIME

    • SECURE BY DEFAULT (EXPLICIT PERMISSIONS FOR EACH MODULE) • ISOMORPHIC JAVASCRIPT (BROWSER API COMPATIBLE) • ES MODULES • MODULE IMPORT BY URL • WASM BINARIES EXECUTION • STANDARD LIBRARY • BUILT-IN FEATURES (TESTING, FORMATTER, BUNDLER, DEPENDENCY INSPECTOR, ETC) INTRODUCTION TO DENO
  5. RESOURCES • MANUAL https://deno.land/manual • STANDARD LIBRARY https://deno.land/std • THIRD-PARTY

    MODULES https://deno.land/x • AWESOME DENO https://github.com/denolib/awesome-deno INTRODUCTION TO DENO