Ryan Dahl: Node JS

JSConf · 35K views · 2012 · 48:32

Open on YouTube

Web developmentTech pioneers & interviewstalk

Why Hacker News recommends it

Cited as the primary source for why Node exists and why JavaScript was chosen, in debates about async models and language choice.

What it is

Ryan Dahl's JSConf EU talk introducing Node.js to the world. He explains the motivation for event-driven, non-blocking I/O, with JavaScript chosen mainly for its asynchronous nature.

Recommended by 2 HN commenters across 2 different months, 2023 to 2024.

What Hacker News said

Recommends mrkline · 2023-09 · on “Async Rust Is A Bad Language”

> Async/await was a terrible idea for fixing JavaScript's lack of proper blocked threading that is currently being bolted onto every language. As fun as it is to hate on JavaScript, it's really interesting to go back and watch Ryan Dahl's talk introducing Node.js to the world ( [this video] ). He's pretty ambivalent about it being JavaScript. His main goal was to find an abstraction around the epoll() I/O event loop that didn't make him want to tear his eyes out, and he tried a bunch of other stuff first.

Recommends karel-3d · 2024-10 · on “The Rise of Worse Is Better (1991)”

And it keeps being polished and improved to the point it's almost not a turd, and now has types sort of, and much better engines, and now there are ARM machines that are literally designed to run it faster, and now most of your actual PC applications are written in it. But honestly it's kind of refreshing to see the original node.js presentation, where using javascript is sort of a side-note. He wanted to use callback-heavy language and JS fit the bill [this video]

Cites throwitaway1123 · 2024-08 · on “Learn PHP the Right Way”

> One of those environments is a GUI which is naturally a good application for async. The other is not. Backend web development is still largely input -> process -> output. Node is just shoehorning JS in, and pretending that JavaScript's weaknesses are strengths. Until you need to perform two or more IO operations at the same time (e.g. more than one of: database query, Redis query, HTTP request, file operation, etc). Then it becomes: input -> Promise.all (or Promise.race, or Promise.allSettled, or Promise.any) -> output. If you watch Ryan Dahl's original presentation introducing Node, you'll see that JS was explicitly chosen because of its asynchronous nature — it wasn't shoehorned in: [VID