When Google released the first version of their V8 JavaScript engine in 2008, it felt like
a hushed wave of excitement was rippling through the developer community. For the
first time (the promise went), we would be able to program with JavaScript on both the
client and the server: one language to rule them all. Web applications were already
starting to become more desktop-like and ballooning in complexity, so the idea of re‐
ducing the number of language dependencies in favor of an open and transparent tech‐
nology was seen as a way to allow for even more exciting and boundary-pushing ap‐
Ryan Dahl was one of the developers who saw the new opportunity and wasted no time
converting the non-blocking socket library he had written to the new V8 engine, re‐
sulting in the birth of Node.js. The technology he released has turned that original ripple

of excitement into a major paradigm shift at a time when interest in responsive real-
time applications is reaching a peak. Node.js is more than just a collection of socket

functions; it provides a framework for asynchronous I/O that position it as the foun‐
dation of a whole new class of event-driven programming patterns.