Foreword by Steve Vinoski
I remember when I first read Douglas Crockford’s wonderful book JavaScript: The Good Parts. Not only did I learn from it, but the fact that Crockford required only 172 pages to steer readers away from JavaScript’s problematic parts makes his work that much more impressive. Brevity is often at odds with educative exposition, but when an author achieves both as Crockford did, the reader is more likely to fully digest the author’s recommendations and benefit from them.
In the pages that follow, you’ll find that Michael Fogus has given us a book as excellent as Crockford’s, perhaps more so. He’s built on the sound advice of Crockford and other predecessors to take us on a deep dive into the world of functional JavaScript programming. I’ve often heard and read (and even written myself) that JavaScript is a functional programming language, but such assertions (including my own) have always seemed light on the pragmatic details that practicing programmers need. Even Crockford devoted only a single chapter to functions, focusing instead, like many authors, on JavaScript’s object support. Here, merely saying that Fogus fills in those missing details would be a serious understatement.
Functional programming has been a part of the computing field from its inception, yet traditionally it has not enjoyed significant interest or growth among practicing software professionals. But thanks to continuing advances in computing hardware speed and capacity, coupled ...