10 Things I Regret About Node.js - Ryan Dahl - JSConf EU

JSConf · 661K views · 2018 · 26:42

Open on YouTube

Web developmentSoftware architecture & designtalk

Why Hacker News recommends it

HN treats it as the classic talk on why Deno exists and on lessons from design mistakes in a widely used platform.

What it is

Node.js creator Ryan Dahl discusses ten design mistakes he made in Node, including package.json, npm, and module resolution. The talk sets out the motivations behind his later project, Deno.

Recommended by 6 HN commenters across 4 different months, 2018 to 2025.

What Hacker News said

Strong rec bin_bash · 2023-01 · on “Breaking the Snake: How Python went from 2 to 3”

Ryan Dahl's great talk on design mistakes he made with node.js is something I think about all the time: [this video] Even though he considers things like `require('./something')` defaulting to either `./something.js` or `./something/index.js` a mistake, he also admits these are not possible to change at this point. I think Python made a mistake trying to correct design problems in 2. The cost of change simply wasn't worth the price of migration. Is `print("text")` really that much of an improvement over `print "text"`?

Recommends azemetre · 2020-06 · on “Design Doc: Use JavaScript instead of TypeScript for internal Deno Code”

Deno [1] is a new JS runtime by one of the creators of NodeJS, Ryan Dahl. He had a great talk [2] about the lessons he learned when creating/maintaining NodeJS. Many of these lessons are being applied to Deno. [1] [LINK] [2] [this video]

Recommends j1elo · 2020-06 · on “Deno will stop using TypeScript”

I just hope in 5 years we're not seeing a talk saying that in retrospective, dropping static types was a huge error... and DoNe is a new project to fix issues like that! (I'm just referring to this nice talk about the regretful mistakes done in Node: [this video] )

Recommends kybernetikos · 2020-06 · on “Deno will stop using TypeScript”

Well, in all the initial presentations Ryan Dahl gave about Deno, he phrased it as solving the things he'd come to realise he hated about Node. So that's what I take as the raison d'être of Deno - taking the lessons he'd learned from some years mainly coding Go and thinking about what he'd learnt from Node, and fixing what he could. Here's the classic video on the topic: [this video]

Recommends bartlomieju · 2020-12 · on “Deno 1.6 supports compiling TypeScript to a single executable”

Deno is a JavaScript runtime much like Node. For the reasons on why creating Deno I recommend "10 Things I Regret About Node" by Deno's author [1] Deno is different than Node in several aspects; most notably: - Deno supports only ES modules, there's no built-in support for CommonJS modules - Deno's APIs are all promised based - Deno does not use NPM, instead it can pull code from any URL, much like browsers do - Deno has built-in permission system that by default runs your code in full sandbox allowing to opt-in into breaking out of sandbox (eg. to read a file from disk) - As you've mention Deno can run .ts files without explicit build step - Deno comes with a full toolchain in a single bina

Recommends onetom · 2021-02 · on “Choose Boring Technology (2015)”

Recommended "literature": 1. 10 Things I Regret About Node.js - Ryan Dahl - JSConf EU ( [this video] ) 2. Brendan Eich: JavaScript, Firefox, Mozilla, and Brave | Lex Fridman Podcast #160 ( [LINK] )

Cites whatever_dude · 2018-06 · on “Design Mistakes in Node [pdf]”

These are the slides to Ryan Dahl's presentation at JSConf EU 2018. A video of the presentation is here: [this video]

Cites steamer25 · 2018-07 · on “ESLint compromised, may have stolen your credentials”

In a recent video, Ryan Dahl mentioned that he regrets incorporating package.json and NPM into Node: [this video] He has a very early attempt at breaking from compatibility with Node called "Deno". Here's the part in the video about his current thoughts on importing external modules under Deno: [this video] He has some other security proposals as well.