This is a review of “Node Up and Running by Tom Hughes-Croucher & Mike Wilson; O’Reilly Media.
To quote Nathan Thurm (~46 second mark): “Is it me? It’s him right?”
Writing a book about a programming language must be difficult: Who’s the intended reader? Take a hands-on approach or a conceptual one? How to mix the two approaches?
After a very brief description of the goals of the language, the authors present a series of hands-on examples. After installing Node, I jumped in: coding/running/modifying many of the examples in Chapter 2.
However, I found the experience frustrating; I ended up with more more unanswered questions about the “hows and whys” of each example as I went along.
After a (long) break, I went directly to Chapter 3, “Building Robust Node Applications”, looking for a better understanding of Node’s architecture. It contained several detailed analogies, followed by solution descriptions of several Patterns. I found these to be helpful. They focused on efficient design for different I/O scenarios, error handling, and multi-core issues. In retrospect, I should have read this chapter first, before doing any coding. It helped to clarify many of the questions I had about the earlier examples.
However, after reading that section I reviewed several other examples that revived my frustration.
In my opinion, the book alternated between reasonable conceptual explanations and incompletely-explained and/or ill-advised examples (e.g. many examples using nested anonymous functions – they work, but the authors discourage using them for production code).
The Big Picture: by using a non-blocking callback-based architecture, Node offers a different way to solve several types of design problems. Got it. The Details: I found it difficult to learn how to best apply Node’s features by reading this book.
(Disclaimer: I participate in the O’Reilly Blogger Review Program).