10 Things I Regret About Node.js — Ryan Dahl

Notes from JSConf EU.

In fact there are only 7 things 🙈

He have only started using Node agin in the last 6 month, because his goal was heavily focused on programming event driven HTTP servers when he created Node and Go is a better language to build faster servers.

But he thinks JavaScript is nice. Dynamic languages may not suit for building a server, in which you want to control everything, but are the right tool for prototyping, for example, scientific computing. JavaScript is the best dynamic language.

His problems with Node are almost around how it manages user code. Mainly because he focused on the evented I/O, the module system was essentially an afterthought.

Not sticking with Promises

He added promises to Node in June 2009 but removed them in February 2010 for minimal. It’s possible unified usage of promise in Node would have sped the delivery of the standardization and async/await.


Node program can access all the system calls, such as writing to the disk, accessing to the network.

The Build System

If you are writing a module links to a C library, you’d use GYP to compile that C library and link it into Node.

Chrome used to use GYB, but now Node is the sole GYP user.

Funky interface, it’s Python adaptation of JSON. Node has several unnecessary complex wrappers around it.



Require without the extension





TypeScript compiler built into the executable

Simplify the module system


Notes from zhuoran