Haskell Changed Me

I never thought I was a great programmer but I am always trying to learn. This past year, I have been trying to add more skills, if you will, to my programming tools. Functional Programming is one of those tools.

Now, FP is something I was never too excited about. I viewed it as something that I, a seasoned Ruby developer, would never need and, frankly, just didn’t care about it. Wild coming from a person who loves JavaScript. I was quick to dismiss learning it because I didn’t see the value. Yes, I know, naive of me.

Perhaps Scala was to blame. I’ve spent the past year or so learning more programming languages to, again, become a better programmer. Scala was one of those languages. Don’t get me wrong, I think Scala is great as is the JVM. However, the syntax and the verboseness of Scala always trips me up. Functional Programming only made it worse.

While I was beating my head against the wall with Scala, a good friend / former co-worker (ironically a big Scala fan and a great Scala developer) was continuously talking about Haskell. The phrase, “this language is pure amazing” kept coming up. The times I looked at Haskell, the phrase, “this language looks like gibberish” kept coming up. I had tried Haskell in the past and couldn’t wrap my head around it. That changed this week.

I began re-reading (for the 3rd or 4th time) http://learnyouahaskell.com/ this week and it finally clicked. Suddenly the gibberish of Haskell made perfect sense. And suddenly, Functional Programming made sense. Oh and my thoughts about Haskell? It is a great language and seriously is a lot of fun.

With Haskell, things like recursion (which I admit, I struggle with) and higher-order functions have made so much more sense. The concepts of map, filter, and fold are clear as well. I’m already finding myself thinking about things from a FP perspective. Haskell has started to elevate my skills to another level that I was missing by just sticking to OO.

I still feel like I am not a great programmer but Haskell is teaching me how to be a better programmer. I am still learning Haskell and I struggling on some parts. But, Functional Programming is now clicking. I am understanding recursion better than I ever have. I value the importance of immutable structures now and their benefits. It is like my eyes have been opened.

So here is to you, Haskell. Thank you for making me become a better programmer.