I’ve reviewed Neal Ford’s “Functional Thinking” video series as part of O’Reilly’s bloggers program and I must say it is one of the best videos I’ve seen.
I’m familiar with functional programming techniques from other languages, but I wish I had originally learned some of the concepts from this video. For example, when Neal gives an example of currying versus partial application, I felt like any developer I know would fully understand the difference between the two (not an easy feat).
Neal covers quite a bit of ground in this video, and he does it in a way that is easy to follow and clearly understand. One of the things I liked best about this video series is how examples are given in a format of first demonstrating code in an object-oriented Java snippet followed by a transitional snippet that is somewhat more functional, then a final fully functional example in one or more functional languages.
That said, I also think this video series could have done without all of the Clojure examples. It was nice to see Groovy, Scala, and some functional Java examples. I feel like the content matter would have been a little more effective to someone unfamiliar with functional programming without the common shock of trying to discern a Lisp-style language.
I especially enjoyed Neal’s discussion about the paradigm shift from object-oriented programming to more functional programming. He is able to support this with concrete examples of functional concepts like map/fold, functional data structures, preferring composition over inheritance, and a lot more that I think any developer of any experience level would benefit from watching.
I’d recommend this video series to everyone interested in functional programming.