I learn a new language every year. This year, I had decided to learn a functional language. The contestants were many and varied, but I'm pleased to announce that the winner this year is...
I had seriously considered learning Scala. I'm planning on re-writing significant portions of infinitest-core in Scala as soon as I'm done working with my current client. So I knew I'd have a chance to use it. I still plan on writing a lot of Scala this year. Haskell, on the other hand, isn't as practical or widely applicable. Although I might find myself on a project using Scala, I seriously doubt that there are going to be any Haskell jobs headed my way soon. So why did I choose it over Scala, or another language like Clojure?
Let me pause for a moment to voice a pet peeve.
The word grok often gets confused with the word understand. Although many people use it that way, that's not what it means...it means something much, much cooler. As defined in Stranger in a Strange Land:
Grok means to understand so thoroughly that the observer becomes a part of the observed.
There's maybe a dozen things in this world that I truly grok. I grok TDD. I grok cooking. With a little more practice I think I will grok Ruby. These things have permeated me to the point where they have changed the way I think and behave, which in turn, has significantly affected others who are seeking to learn more about these topics.
I want to grok functional programming. Not just Haskell, but all FP languages. Just as moving from one OO language to the next is fairly simple once you've mastered the concepts of OOP, I want that deep understanding of FP that will allow me to pick up a new functional language by simply mapping my existing knowledge onto it's libraries and syntax, rather than having to learn a completely new way of doing things at the same time.
I think Haskell is the best language to achieve that goal. It's purely functional, so I won't spend time learning the same OO constructs over again. It's powerful, free, and there's even a book.
If you'd like to join me in my quest, please follow along at the newly formed Lambda Lambda Lambda FP user group here in DFW.