August 16, 2016

Haskell & Stubbornness

A persistent theme for the entirety of my adult life as a programmer has been attempting to learn the Haskell programming language. Everything about the language appeals to me, from strong static typing to lambdas (my first exposure to them) to its purity. Despite these repeated attempts over the last ten years, I have been unsuccessful in becoming a proficient Haskell programmer.

So what’s kept me from Haskell enlightenment?

Stubbornness, pure stubbornness. Or at least so I’m convinced.

See, the Haskell community is rich and plentiful with very smart people. Additionally, Haskell has incorporated some ideas from mathematics. These mathematical ideas introduced words like Monad and Monoid into the vocabulary of the community. While the constructs in Haskell share the same name as their namesakes in mathematics, they are not identical.

So we have a community of very smart individuals and a set of semi-obscure mathematics concepts which mostly describe concepts in Haskell. Now, when they write books, guides, or tutorials about Haskell, they use this expanded vocabulary that is outside most programmers’ experience.

Back to me, this is a story about me. I’m stubborn. Haskell presented a unique challenge for me. It came with a vocabulary that I felt was elitist. For a long time, I counted myself in the camp of folks that jokingly told other programmers that Haskell requires a PhD in math as a prerequisite to learning it. I read all of the books (LYAH, RWH, you name it) but still, it just never stuck. The concepts were beautiful, but the details felt heavy handed with obscure math concepts.

Well the stubbornness runs both ways - because I’ve never gotten the hang of Haskell, I’ve yet to give up on learning it. My latest attempt was initiated by a new Haskell book called Haskell Programming from First Principles. Typically, I’d have ignored the book but the story of one of the authors caught my eye. She is not a professional programmer by trade and was taught (from first principles) by her co-author.

The story of the author reminded me of my stubbornness and so here we are. I’m reading this new book, learning Haskell in a new way, and hoping this time it sticks.

opinion haskell programming

Previous post
Stupid Git Tricks: 1 of N To the surprise of some developers outside of Microsoft, my team uses Git for the vast majority of our code (10,000+ lines of code). Since we work
Next post
User Interfaces Suck A little while back, there was an article in the Verge discussing Microsoft’s long-term thinking around the mobile internet experience. The