Mamy dla Was kolejną recenzję! Tomasz Bielawa zrecenzował książkę Functional JavaScript: Introducing Functional Programming with Underscore.js autorstwa Michaela Fogusa.


Functional JavaScript: Introducing Functional Programming with Underscore.js

How can you overcome JavaScript language oddities and unsafe features? With this book, you’ll learn how to create code that’s beautiful, safe, and simple to understand and test by using JavaScript’s functional programming support. Author Michael Fogus shows you how to apply functional-style concepts with Underscore.js, a JavaScript library that facilitates functional programming techniques. Sample code is available on GitHub.

Fogus helps you think in a functional way to help you minimize complexity in the programs you build. If you’re a JavaScript programmer hoping to learn functional programming techniques, or a functional programmer looking to learn JavaScript, this book is the ideal introduction.

  • Use applicative programming techniques with first-class functions
  • Understand how and why you might leverage variable scoping and closures
  • Delve into higher-order functions-and learn how they take other functions as arguments for maximum advantage
  • Explore ways to compose new functions from existing functions
  • Get around JavaScript’s limitations for using recursive functions
  • Reduce, hide, or eliminate the footprint of state change in your programs
  • Practice flow-based programming with chains and functional pipelines
  • Discover how to code without using classes


Michael Fogus is software developer with experience in distributed simulation, machine vision, and expert systems construction. He’s actively involved in the Clojure and Scala communities.


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


Tomasz Bielawa

Programista i WebDeveloper, miłośnik wszelakich technologii frontendowych, muzyki oraz wszystkiego co można przeczytać. Można mnie znaleźć na Twitterze (@bielawka).

Szukamy kolejnych odważnych

Jeśli ktoś z Was chciałby otrzymać kopię wybranej przez siebie książki w zamian za jej recenzję, to zapraszamy do odpowiedniego wątku na naszej grupie dyskusyjnej. Dzięki partnerstwu z wydawnictwami Manning Publications Co., O’Reilly Media i Packt Publishing macie do wyboru bardzo szeroki wachlarz książek o różnorodnej tematyce.