Haskell is Not A Whitepaper Language

Posted on April 29, 2024

There are some programmers out there who will never learn Haskell. The kind of programmer I’m talking about isn’t unaware of Haskell’s existence or is lacking opportunities to learn it. They refuse to believe you can write software in Haskell. And they call it a, white paper language. I guess that means it’s bad or not worth learning.

The first 1.0 release of Haskell was in 1990. It started as a research project into creating a non-strict, functional programming language. The goal was to converge several competing ideas, designs, and implementations in the space into a single language.

By 1998 the first specification, Haskell 98, was released. The committee expressly intended the language to be portable and extensible. While they wanted the language to be standardized and useful it was important to enable researchers to continue contributing new ideas and keep the language moving forward.

The next update to the specification was released in 2010. Haskell 2010 was an incremental improvement to the language. It incorporated several uncontroversial extensions to Haskell 98 that had been tried and proven useful in the ecosystem of libraries and end user applications.

The last update to the language we’ve seen has been an informal update, Haskell 2021. It again incorporates more of the tried-and-true language extensions into the base language and libraries.

Today I have a job where I write Haskell all day long. We have thousands of modules. We’re building financial technology. Nothing research heavy about it. Almost all of it is plain old boring business stuff.

I’ve never been to university. I’ve not written a single academic paper. I’ve never conducted any sort of research of the academic, white-paper variety. I hack and tinker. I pull things apart and put them back together again.

So why, oh why, do people insist that Haskell is a research language? Because it started development that way more than 30 years ago? Why is academic used like a pejorative?

I think the ideals of the original committee have formed an interesting working relationship between language researchers, compiler developers, and users. It’s vastly different than C/C++ where language features can take a decade to see real-world use. And a decade more before developers submit enough feedback. In Haskell it’s done in parallel.

It can make some parts of the ecosystem hard to take in. At the time of this writing the Linear Types extension has been out for a few years and we’re still not seeing huge adoption of it yet. But that’s okay, there’s still a lot to figure out.

But a white paper language?

I’m incredulous with such claims. With the amount of Haskell code I’ve written for work, on my stream, and for open source… not a single line was written for a white paper.

I think it’s safe to say that the primary users of Haskell aren’t researchers these days. And based on my half-arsed poll on Mastodon, 85% of the 25 people who responded are not doing academic research when primarily using Haskell. That has been my experience as well.