The Pretentious Haskell Phase

Someone drew my attention a “leaving Ruby for Haskell” rant from a few years ago. I thought I’d reprint my reply here.

For the record, I love Ruby and Haskell, and I am well aware that there are successful commercial projects written in Haskell. Part of me still wants to work on one.

I guess I’m jaded because I went through my own Pretentious Haskell Phase many years ago. Before I started working mostly in Ruby, as a matter fact. Back when the only free guide available was the ironically-named “Gentle Introduction“.

Every enthusiast programmer goes through it at some point. It’s similar to the Smug Lisp Weenie phase, but with more righteous anger about how people should be Prevented from Doing It Wrong.

And the thing is, there is nothing wrong about these arguments. I can argue right along with them. In fact, I can write the “leaving Ruby for Haskell” rant better than most, and without any disingenuousness.

Haskell is a beautiful crystalline palace. Everyone who has learned Haskell knows, in the back of their mind, that they are going to rewrite all this code in Haskell One of These Days. Really. Any day now. Next week, maybe.

A few have even tried. And really, it was terrific. It went much better than you might have expected.

I mean, it didn’t work out in the end. They have fuzzy memories of wandering around that crystal palace, repeatedly smacking nose-first into transparent panes of breathtaking beauty and diamond-hard ontological perfection. But they’re pretty sure that wasn’t Haskell’s fault. They just weren’t quite smart enough. They hadn’t studied enough type theory when they tried to use Haskell in practice. The libraries weren’t quite mature enough.

They’ll get back to it one of these days.

Potentially related: The Inescapable Pragmatism of Procedures.