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.
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.