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.36  ·  Rating details ·  211 ratings  ·  29 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 Thinkin
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.36  · 
Rating details
 ·  211 ratings  ·  29 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 con ...more
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 val
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.
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 ther
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 com
Jeremy Huiskamp
Nov 27, 2019 rated it liked it  ·  review of another edition
Shelves: prog
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.
Paul Girdler
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
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. ...more
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
Apr 13, 2020 rated it liked it  ·  review of another edition
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 perfe ...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 p ...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 short and u
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, t ...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. ...more
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
Vytautas Alkimavičius
rated it really liked it
Jul 27, 2020
rated it liked it
Apr 28, 2018
rated it liked it
May 27, 2018
« previous 1 3 4 5 6 7 8 next »
topics  posts  views  last activity   
Page count? 1 3 Jul 20, 2014 01:16AM  

Readers also enjoyed

  • Becoming Functional
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  • Kubernetes: Up & Running
  • The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
  • Terraform: Up & Running: Writing Infrastructure as Code
  • Code: The Hidden Language of Computer Hardware and Software
  • Practical Monitoring
  • Big Dirty Money: The Shocking Injustice and Unseen Cost of White Collar Crime
  • Uncomfortable Conversations With a Black Man
  • No Rules Rules: Netflix and the Culture of Reinvention
  • Test-Driven Development: By Example
  • 97 Things Every Java Programmer Should Know: Collective Wisdom from the Experts
  • Visual Studio Code Distilled: Evolved Code Editing for Windows, macOS, and Linux
  • Google Cloud Platform for Architects: Design and manage powerful cloud solutions
  • Amazon Web Services Bootcamp: Develop a scalable, reliable, and highly available cloud environment with AWS
  • Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
  • Introduction to AWS IaaS Solutions
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

Related Articles

You’d never know it from reading the books listed here, but good science writing is incredibly difficult to pull off. There is both an art...
23 likes · 0 comments
“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…