Tuesday, June 4, 2013

Functional Thinking Video Review

I view new programming languages like president candidates, I don't trust them.  They believe that by being in office (projects), everything will be better.  When functional programming started its hype I watched from afar.  This was until I was working for a stock trading firm with lots of financial algorithms and lots of multithreaded application.  Before this gig, my languages of choice have been pure Java and Groovy. The world of Scala, Clojure, Haskell, and Erlang was just a bunch of noise. I was skeptical about this presentation, but I am a fan of Neal Ford so I decided to give it a shot.  Overall, I was very pleased with the content mainly because it did not focused on syntax, it focused on context! "Functional" is more a way of thinking than a tool set. For anyone to understand functional programming you need to understand the concepts, and Neal achieved this in his presentation.

 Neal points out the major advantages of using functional programming:

  1. Language Evolution: all major languages are adding functional features. 
  2. Results over steps: create optimized applications to solve a problem rather than using frameworks
  3. Immutability: the freedom of not worrying about the state of the objects - "failure atomicity" 
Then, he elaborates a bit more on the subject matter. For example:

  • First-class/higher-order functions 
  • Pure Functions 
  • Recursion 
  • Strict Evaluation 
If you want to see more, check out the videos here or check this video for introduction.