Monday, April 13, 2009

Functional Programming

In my Google Reader subscription, the words "Functional Programming" kept re-appearing every so often.  I finally took the plunge to take a look at what all the buzz is about.

After a few laps around the internet, an answer on stack overflow gave a pretty good elevator pitch about all the fuse around FP.
Just as graphical user interfaces and "code as a model of the business" were concepts that helped OO become more widely appreciated, I believe that increased use of immutability and simpler (massive) parallelism will help more programmers see the benefits that the functional approach offers. 
Since my back ground is in Java, and rather than starting from scratch with a purly functional language like Haskell, Scala seems a good place to start.  Also, joel.neely made a good juxtaposition with FP and pure FP language like Haskell against OO and pure OO language like Smalltalk:
However, languages that enforce a functional style are getting lots of virtual ink these days, and whether those languages will become dominant in the future is an open question. My own suspicion is that hybrid, multi-paradigm languages such as Scala or OCaml will likely dominate over "purist" functional languages in the same way that pure OO language (Smalltalk, Beta, etc.) have influenced mainstream programming but haven't ended up as the most widely-used notations.