Goodreads helps you keep track of books you want to read.
Start by marking “Functional Thinking” as Want to Read:
Functional Thinking
Enlarge cover
Rate this book
Clear rating
Open Preview

Functional Thinking

3.35  ·  Rating details ·  187 ratings  ·  27 reviews
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
Paperback, 325 pages
Published April 22nd 2014 by O'Reilly Media (first published January 1st 2014)
More Details... Edit Details

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
Average rating 3.35  · 
Rating details
 ·  187 ratings  ·  27 reviews

More filters
Sort order
Start your review of Functional Thinking
Aug 09, 2014 rated it really liked it
Shelves: computer
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 ...more
Alex Ott
Jul 21, 2014 rated it liked it
Shelves: func-prog
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.
Aug 21, 2016 rated it it was ok
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
Charles Rumley
Mar 30, 2018 rated it liked it
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.
Jun 03, 2014 rated it liked it
Shelves: work, reference
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
Scott Robinson
Feb 24, 2018 rated it liked it
… 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
David Castillo
May 10, 2018 rated it it was ok
Shelves: tech
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
Krzysztof Adam Witalewski
Apr 08, 2019 rated it really liked it
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
Jeremy Huiskamp
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.
Aug 29, 2018 rated it really liked it
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.
Jul 15, 2017 rated it really liked it
Very good for software engineers who wants to know the "why" for moving to fuctional programming.
Oct 27, 2018 rated it it was ok  ·  review of another edition
Shelves: técnicos
I would like to have seen more fundamental concepts, but it is a small reading, valid as a starting point on the subject
Maxwell Kendall
May 09, 2018 rated it really liked it
Completed this book and am reading it again, was hard to understand the first time. The second time has been much better thus far.
Feb 19, 2017 rated it it was amazing
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 ...more
Dec 10, 2016 rated it it was ok
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
Jeroen Nijs
Jul 15, 2014 rated it liked it
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 ...more
Alexander Tomislav
Jun 22, 2014 rated it liked it
Shelves: 2014, compsci, tech
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
Acmd etc
Feb 18, 2015 rated it did not like it
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, ...more
Romans Karpelcevs
Jan 17, 2017 rated it liked it
Shelves: tech, non-fiction
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.
Nov 24, 2014 rated it it was ok
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.
Sep 23, 2014 rated it did not like it
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.
Mar 13, 2016 rated it really liked it
Nice high-level intro to functional programming, already starting to apply some of the ideas and examples.
rated it liked it
Aug 27, 2018
Chathura Colombage
rated it really liked it
May 09, 2018
rated it it was ok
Jun 16, 2015
rated it liked it
Apr 28, 2018
rated it liked it
May 27, 2018
rated it liked it
Apr 06, 2018
Nate Gordon
rated it really liked it
Feb 22, 2018
rated it liked it
May 05, 2016
« previous 1 3 4 5 6 7 next »
topics  posts  views  last activity   
Page count? 1 3 Jul 20, 2014 01:16AM  

Readers also enjoyed

  • Becoming Functional
  • Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Refactoring: Improving the Design of Existing Code
  • Functional JavaScript: Introducing Functional Programming with Underscore.js
  • A Philosophy of Software Design
  • Computer Science Distilled: Learn the Art of Solving Computational Problems
  • Designing Event-Driven Systems
  • Elements of Clojure
  • Just Enough Software Architecture: A Risk-Driven Approach
  • Mastering Emacs
  • Why Functional Programming Matters
  • Clojure Recipes
  • The Reasoned Schemer
  • Are Your Lights On?: How to Figure Out What the Problem Really is
  • Clean Architecture
  • Test Driven Development: By Example
  • The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
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
“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.”
“Life’s too short for malloc.” 0 likes
More quotes…