I don’t have a good track record with predicting the popularity of end user technologies. I thought Google Wave would take over all other methods of communication. I later expected Google Glass to become popular and push the development of augmented reality products to a new level. Neither of those worked out, as we now know.
All of these languages/frameworks turned out to have enduring popularity and have served me well. However, I’m always looking for the next level of productivity and expressiveness, and I have become somewhat dissatisfied with what I can get now.
I noticed that functional programming is becoming more popular across different languages and domains. So this is what I decided to explore next. I hope that my intuition is correct again, and that FP will become truly mainstream rather than being just another fad.
Here are some interesting discussions about functional programming:
So why functional programming and not something else? Here are my main reasons:
I’ve been keeping an eye on different FP languages (mainly Haskell, Scala, OCaml, F#, Clojure and Erlang) and Haskell seems to be the most intriguing so far.
These are the main reasons why Haskell seems to have the edge over other languages in my estimation:
As of now, I don’t know if it’s worth learning Haskell as a practical language though. There are some products implemented in Haskell, but I think there is a danger that people are attracted to it as a way of solving very difficult puzzles rather than because it provides significant productivity or quality gains. I’ve seen it happen a lot in the C++ world (particularly with C++ template metaprogramming).
I primarily develop web applications, but at this point, Haskell doesn’t seem particularly viable for client side code in web applications.
I’m interested to see to what extent functional programming can be applied in these languages.