Interview with Ryan Dahl, Creator of Node.js
Many are forgetting the initial reason node.js became popular.  Consider the popular server-side landscape before node.js.  It was dominated by Java, Python, etc.  The primary way these ecosystems handle concurrency is OS-level threading.  There was nothing else in the popular languages.  Each language had some niche library that did non-blocking I/O (Twisted for Python, Netty for Java), but these all had a critical flaw, which is the rest of the ecosystem didn't support it.  Basically every library, almost all existing code used the threading model.  And when you mix threaded libraries with a non-blocking I/O server, it completely falls apart because the threaded code blocks.Then came node.js.  Look at the ecosystem it came into.  JS itself has very little standard library, and nothing for I/O.  It has a highly optimized VM supported by the resources of Google.  It's a language known by many developers.  node.js took this well developed clean slate and built a non-blocking I/O server on top of it. It offered a concurrency model on the server side that's completely new to many developers, an alternative to the traditional threading model everyone knew.  Since server-side JS didn't exist yet, it forced all libraries to be written in this non-blocking way.  Every package in NPM is written to support the core design of node.js which is non-blocking I/O.  And it was exciting to many developers, it was a reason to rewrite everything in this new way.