Why I'm giving up Haskell

Over the last two years, I’ve been learning Haskell as my first functional language. Now, and despite my love for the language, I’m putting it on hold.

I discovered Haskell by chance. In 2012, a colleague of mine suggested that I try the XMonad window manager, which I did. I was amazed by both its stability and minimalism. The bad? The configuration file was incredibly hard to read.

A short investigation told me that the configuration file (and the whole window manager) is in this programming language called Haskell, which is a pure functional language. I read about it for a while and some of its concepts seemed really interesting at the time, particularly things like lazy evaluation and the enforcement of functional purity. At the time, I was getting tired of Java’s over-simplicity and limitations and had programmed in Ruby for a while, so I was curious to learn something new.

I dove in: I bought a book about it and started reading it. Shortly after, I started developing a small application (now stalled) to practice my Japanese using Haskell. Concepts which were completely alien to me gradually began to make sense: currying, composition, monads…

I think Haskell has an elegance that many programming languages lack: well-written code really stands out from badly written code, and you have to know what you’re doing to make things work.

Unfortunately, that is part of the reason why I’m giving up programming in Haskell. In some ways, I’ve found that learning and understanding Haskell is a bit like learning and understanding Japanese: aside the question of whether it’s better or worse, it’s very different from what most people are used to, and that leads to a major consequence, which is that few people actually use it. The programming mainstream follows the path of least resistance and, without a major vendor behind the language to market it, even if it produces much higher quality software, I don’t really see people bothering to learn monads and typeclasses when they can hack some spaghetti Java in less time. In fact, I see the opposite trend with Javascript, a language which, despite it’s quirkiness, is easy to hack into and so dominated the browser and is starting to spread to everything else (try googling Atwood’s Law). I read somewhere that the name on Douglas Crockford’s book, “Javascript: The Good Parts”, is proof that the language is terribly flawed, but that surely hasn’t stopped its momentum.

I honestly don’t expect to ever have to program in Haskell in my professional life, and that settled it for me.


Share this

Tweet Share on LinkedIn