Node's Mistakes

Node.js creator Ryan Dahl voiced some deep misgivings about his server-side JavaScript runtime engine at the EU JS conference earlier this week in Germany. post

YOUTUBE M3BM9TB-8yA Ryan Dahl at JSConf EU 2018

While he likes how Node does I/O overall and enjoys its “Unix-y”-like syntax, he has other grave misgivings, particularly around how modules are handled, which was, he admitted “an afterthought.”

His biggest regret was not using promises, an abstraction for working with asynchronous, or parallel, computing tasks. Promises were actually included in an early version of the language but were stripped out soon thereafter, casting countless devs into callback hell.

He candidly addressed other issues as well. Installing Node modules in individual project directories? That was Dahl’s idea. He regrets it. The algorithm for resolving module names? “It’s wildly complex,” Dahl admitted, noting the environmental variable approach adopted by Python and others would have worked just fine.

“It deviates greatly from how browsers do stuff and it’s my fault and I’m very sorry and unfortunately it’s unpossible[sic] to undo now,” he said.


Not using promises. I need to research a page Eric investigated differences between TC39 JS and Node JS (not using promises led to Michael Jackson script ...).


Remote image

See also a secure TypeScript runtime on V8, ry/deno

Deno 1.0. 2020-05-13. Ryan Dahl, Bert Belder, and Bartek Iwańczuk. site