Book Review: Functional JavaScript by Michael Fogus
Functional JavaScript: Introducing Functional Programming with Underscore.js
Over the last years the JavaScript returned to favor thanks to the popularity of HTML5 and jQuery. Many developers want to learn more about this language and to know JS’s most significant libraries. Very popular products are distinguished by Jeremy Ashkenas. I think all developers heard about CoffeeScript or Backbone.js framework. Ashkenas also is the creator of UnderscoreJs library which provides a very useful utility functions.
On the second hand, a very common tag is functional-style concept. At every step, terms like closures, currying, folding, come to our ears and eyes. Surely as a programmer you want to read a good book about it. This book should be absorbing, have good style of writing and practical examples. And first of all, author should have a considerable knowledge about things he describes.
I think Michael Fogus, as a contributor to the Clojure and Underscore.js library is a right person in the right place. While reading, you can fell that the writer has a practical and real-life skills about functional programming and JS. You can see that he devoted much time to bite into this. For example Fogus bring us a precise chapter about closures. Yes! In JavaScript. It’s not the frequent term in a base of articles in a world’s JS’s blogs and books. It is not what a typical developer who writes only Dom-tree-JS-code knows.
If you want to know how to use things like closures, currying, folding. Or you want to get knowledge about functions as units of behavior, functional recursion on data “table-like” (great thing!), recursion as a base of deeper understanding of a functional style, hiding mutable states, a way to implement laziness, this book may be your first step in an adventure of functional programming in (wait for it!) JavaScript. You will be familiarized with UnderscoreJs functions as a tools in everyday-coding-life.
Honestly, the only thing that bothered me in this book is the small emphasis of graphic representation in highlighting important terms.
Besides, “Functional JavaScript: Introducing Functional Programming with Underscore.js” assure many hours spending in reading interesting code, especially if reader will spend some hours to analyze written code and test it in IDE. Surely it should bear fruits in developer’s future coding sessions.
So, if anyone is interested in JavaScript and want to learn about functional programming techniques, this book is a very good start and may change perspective of seeing this language.
Rating: 9/10
This review was originally written for the review zone at Toruń JUG.