15 books
—
5 voters
Goodreads helps you keep track of books you want to read.
Start by marking “Functional Thinking” as Want to Read:
Functional Thinking
by
Learning the syntax of a new language is easy, but learning to think under a different paradigm is difficult. This practical guide from renowned software architect Neal Ford helps you transition from a Java-writing imperative programmer to a functional programmer, using Java, Clojure, and Scala as examples.
Rather than focus on specific language features, Functional Thinkin ...more
Rather than focus on specific language features, Functional Thinkin ...more
Paperback, 325 pages
Published
April 22nd 2014
by O'Reilly Media
(first published January 1st 2014)
Friend Reviews
To see what your friends thought of this book,
please sign up.
Reader Q&A
To ask other readers questions about
Functional Thinking,
please sign up.
Be the first to ask a question about Functional Thinking
Community Reviews
Showing 1-30

Start your review of Functional Thinking

Functional programming can often sound like magic, in its promises of greatly improved productivity and near guarantees of accuracy and expressiveness. But one problem is that the examples usually given are those in an unfamiliar form, using languages very different than the procedural and object oriented languages most of us are used to. And the advantages are not apparent when presented. What Ford does in Functional thinking is to present the advantages of functional programming within the con
...more

The book is largely not about functional programming specifically, and only JVM languages are covered: Java, Groovy, Scala, Clojure.
For a book subtitled "Paradigm over Syntax" it spent a *lot* of time explaining various syntaxes and at one memorable point literally explained a unit test example line-by-line.
Especially the latter half of the book becomes less about "functional programming" and more about "hey these JVM languages newer than Java 7 have some neat features". The author discusses val ...more
For a book subtitled "Paradigm over Syntax" it spent a *lot* of time explaining various syntaxes and at one memorable point literally explained a unit test example line-by-line.
Especially the latter half of the book becomes less about "functional programming" and more about "hey these JVM languages newer than Java 7 have some neat features". The author discusses val ...more

Really between 3 & 4...
Relatively short introduction into basic concepts of functional programming for people who never heard about it. No theory & complex terms - everything explained in simple language with many examples, showing how to solve the same task with OOP & FP approaches. For examples, the Java 8, Scala, Groovy & Clojure are used.
Relatively short introduction into basic concepts of functional programming for people who never heard about it. No theory & complex terms - everything explained in simple language with many examples, showing how to solve the same task with OOP & FP approaches. For examples, the Java 8, Scala, Groovy & Clojure are used.

While practical examples of theory can enhance understanding, this book takes the opposite tack: theoretical wisdom is drowned in a deluge of practical examples.
That said, if you’re a dyed-in-the-wool Java 7 developer, this book is for you. Plenty of useful refactoring and simplification opportunities are laid out in several different languages, including Scala, Groovy and Clojure.
That said, if you’re a dyed-in-the-wool Java 7 developer, this book is for you. Plenty of useful refactoring and simplification opportunities are laid out in several different languages, including Scala, Groovy and Clojure.

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 ...more
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 ...more

… my second book from the Humble Functional Bundle. Much better than Becoming Functional.
I should preface a prejudice of mine: the JVM is a wasteland; the languages roaming it, all monsters, locked in brutish struggle for survival, bloated and grotesque assemblages of the dregs tossed over the walls preserving civilization.
In this book, several examples are worked through, from a variety of styles and in a variety of languages. "Functional" ends up mostly meaning immutability and map/reduce upon ...more
I should preface a prejudice of mine: the JVM is a wasteland; the languages roaming it, all monsters, locked in brutish struggle for survival, bloated and grotesque assemblages of the dregs tossed over the walls preserving civilization.
In this book, several examples are worked through, from a variety of styles and in a variety of languages. "Functional" ends up mostly meaning immutability and map/reduce upon ...more

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 ther ...more
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 ther ...more

I'm not interested in using JVM languages which the book uses as main reference, but still there are some valuable insights which are language-agnostic.
What I liked was the authors observation of how FP fits in the evolution of programming languages and programming styles in general and how it can be used to reduce complexity.
I'm not sure I share the author's view about place of functional and imperative languages in software architectures and now and then there were some thoughts which were com ...more
What I liked was the authors observation of how FP fits in the evolution of programming languages and programming styles in general and how it can be used to reduce complexity.
I'm not sure I share the author's view about place of functional and imperative languages in software architectures and now and then there were some thoughts which were com ...more

This was a mostly quick and digestible read with a nice overview of functional programming in the small.
The book spent less time than I was hoping talking about larger scale issues such as state management and the actual carrying out of effects when needed (eg, write to a database). At the end, I felt equipped to write small chunks of code in a functional style within an otherwise more mainstream paradigm, but not how to structure entire programs functionally.
The book spent less time than I was hoping talking about larger scale issues such as state management and the actual carrying out of effects when needed (eg, write to a database). At the end, I felt equipped to write small chunks of code in a functional style within an otherwise more mainstream paradigm, but not how to structure entire programs functionally.

Not bad introduction to some functional concepts and constructs but really should be called Functional Thinking for Java Programmers. It was useful though read concurrently with the Scala and Clojure chapters of Bruce Tate's Seven Languages in Seven Weeks. However, to get the most out of both, I ended up reading a book on Java as well.
...more

I found juggling examples in several different languages to be more work than it was worth, but as an intro, background, & argument in favor of functional programming, it nailed it.
Read for Austin Computer Book Club. ...more
Read for Austin Computer Book Club. ...more

Very good for software engineers who wants to know the "why" for moving to fuctional programming.
...more

I read this book with interest and fully fulfilled my expectation. As standard Java programmer, I realize several facts about functional programming. Some of them I already heard but the context that they were put to in this book was really nice for me. I liked that examples were provided in several JVM languages - Groovy (I know the most), Scala, Closure (nice to see Lisp dialect in action) and Java at some places. Comparing ways how the same thing could be done in different languages was perfe
...more

I was disappointed in this book. It is really about ways in which you can force Java to adopt functional mechanisms. But (as Ford himself has advocated) in a decentralized software environment, one shouldn't have to continue to use Java. I would have been more interested in the specifics of the functional pearls to learn, using Groovy or Closure or Scala (etc) as the example language, rather than a multi-page source code extravaganza showing how Java might use a 3rd party extension (support for
...more

This is book is meant for Java programmers that do not have a lot of experience in functional languages. Which puts me right in the middle of the target audience. It shows how important functional concepts are implemented in different languages, such as Java 8, Scala, Clojure and Groovy. The advantage of this approach is that it does not force you to choose any one language. The disadvantage, however, is that some syntax is so hard to follow (I am looking at you, Clojure), that it obscures the p
...more

A whirlwind tour of functional programming mainly intended for Java programmers.
Almost every code example is written in Groovy, Scala & Clojure. Neatly illustrated functional programming concepts are contrasted to the imperative & OO style in Java. The book shows how most mainstream languages are getting more functional with time (LINQ, closure support, etc) and examples serve to reinforce the advantages of using functional programming in your language of choice.
The book is somewhat short and u ...more
Almost every code example is written in Groovy, Scala & Clojure. Neatly illustrated functional programming concepts are contrasted to the imperative & OO style in Java. The book shows how most mainstream languages are getting more functional with time (LINQ, closure support, etc) and examples serve to reinforce the advantages of using functional programming in your language of choice.
The book is somewhat short and u ...more

While I can imagine this book to be useful for someone who's never heard about immutability, lambdas or higher-order functions like map/filter/fold/ etc., I fail to see any reason why would that person want to read about functional programming in the first place. All the concepts discussed there are already mainstream in nearly all modern programming languages, furthermore, there is a overwhelmingly big number of good introductions for this kind of stuff in the form of a blog posts. To sum up, t
...more

A very easy book on fundamentals and building blocks of functional programming. Nice to read if you're completely new to the field or want to be reminded of the basics.
Book is very short—two evenings read–, and if you're looking to start writing functional code after reading it, you'd be a little disappointed. It's more of a small and clear guide than a comprehensive or motivational functional resource. ...more
Book is very short—two evenings read–, and if you're looking to start writing functional code after reading it, you'd be a little disappointed. It's more of a small and clear guide than a comprehensive or motivational functional resource. ...more

This book has lot of gems on FP, however, the problem I had being a beginner in FP world was, the concepts were not explained cohesively. If someone is familiar with FP concepts, and read this book, they may find few useful things. But I wouldn't recommend this beginners.
I'm glad the author provided plenty of examples in different languages to explain some of the concepts. ...more
I'm glad the author provided plenty of examples in different languages to explain some of the concepts. ...more

this book is for Java developer who wants to get introduced to the newly Functional support that Java 8 brings, .Net developers will waste their time reading this book, as it's intended to specific language, that what the title and the cover of the book doesn't depict.
...more
topics | posts | views | last activity | |
---|---|---|---|---|
Page count? | 1 | 3 | Jul 20, 2014 01:16AM |
Goodreads is hiring!
Neal Ford is Software Architect and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery. He is also the designer and developer of applications, instructional materials, magazine articles, courseware, video/DVD presentations, and author and/or editor of 5 books spanning a variety of technologies. He focuses on designing and
...more
News & Interviews
Melissa Albert burst onto the YA scene (and catapulted into readers' hearts) with her 2018 debut The Hazel Wood. This darkly fantastical...
51 likes · 3 comments
No trivia or quizzes yet. Add some now »
“The problem with a completely new programming paradigm isn’t learning a new lan‐
guage. After all, everyone reading this has learned numerous computer languages—
language syntax is merely details. The tricky part is learning to think in a different way.”
—
1 likes
guage. After all, everyone reading this has learned numerous computer languages—
language syntax is merely details. The tricky part is learning to think in a different way.”
“Life’s too short for malloc.”
—
0 likes
More quotes…