Reviews

Functional Thinking: Paradigm Over Syntax by Neal Ford

0x5d's review

Go to review page

2.0

I've been programming functionally (with Scala) for a year, and I'm currently looking for ways to expand my understanding of cathegory theory applied to programming. This book was not for me.
If you're looking for something to show you how the same problem can be modeled functionally in Groovy, Scala, Clojure and Java, look no further. If you're a Java developer who got stuck in a pre-Java 8 project, and want to get up and running with Lambdas and Streams, you might find some value here, but there are probably many shorter and cheaper blog posts.
However, if you're not, like me, you'll probably feel yourself drown in the lengthy code snippets, per-language explanations, and problem descriptions.

alijc's review

Go to review page

3.0

An overview, aimed squarely at Java programmers

I read the early release version, which contains some typos and is missing the finalized citations and images. And apparently missing some connective tissue as well, as the transitions between sections are a bit choppy.

Despite the book's length, it is essentially an overview, with the principles of functional programming condensed into a couple of chapters, giving examples of functional code and contrasting it with imperative or OO code.

I liked that the functional code examples were in a variety of languages, giving a glimpse of the variety available, and letting the reader translate into the language of his/her own choice. I disliked that
all of the imperative code examples were in Java, which seems to be an awkward choice for imperative code, being so strictly OO.

A large chunk of the book was given to showing how to get functional languages to do OO sorts of things, and OO languages, specifically Java, to do functional things. On one level this makes sense, as you would want to have the widest variety of tools available in whatever language you choose to use. But on another it makes me feel uneasy, as if you're trying to get around the fact that you didn't choose the right language for the task in the first place.

I would recommend this book for programmers who grew up with Java, and know nothing else, as it will expose them to different ways of doing things. But more experienced programmers would be less likely to learn much from it.
More...