Haskell: How a Lazy Language Was Put to Work (Part One)

August 17, 2022

This is the first in a series of posts that aims to contextualize Haskell’s reputation. As code, Haskell makes it possible to deeply understand what effects a program will and won’t have: immutable constants replace variables; functions do nothing but produce their result. As a topic of conversation, however, what Haskell means to some contradicts what it means to others. Despite its principled refusal to court attention, codified in the guiding adage Avoid success at all costs, Haskell has become a (minor) mainstream name in tech. How did Haskell, the recluse generally thought too academic for industry, end up with investment from global banks, social media giants, blockchain networks and video game studios? How do these entities justify their adoption of Haskell, and how do Haskellers regard the language’s shifting stewardship? By tracking these questions over time, a story emerges of how Haskell, the lazy language, was put to work.

In June 2022’s PyPL index, which tracks programming languages’ popularity over time via Google Trends, Haskell ranked 27th worldwide. Because PyPL tracks searches that specifically include the word tutorial, these rankings signify new learners and adoption. With a 0.29% share of PyPL index points, Haskell is nowhere near Python’s 1st-ranked 27.61% share, but it’s not unimaginably distant from Ruby’s 15th-ranked 1.10%, nor Perl’s 24th-ranked 0.44%. Of note, with regards to paradigm, Haskell is the highest ranked purely functional programming language. Every language ahead of Haskell is multi-paradigm or strictly for object-oriented programming. Entries like JavaScript (3rd-ranked with a 9.21% share) have adopted functional constructs derived from the persistence of languages like Haskell. From its home at the fringe of mainstream awareness, Haskell has long exerted influence across the field.

Haskell’s evolution to date is in keeping with its original intent. A presentation of Being Lazy with Class: A History of Haskell written by a subset of the langauge’s co-creators, Paul Hudak, John Hughes, Simon Peyton Jones, and Phil Wadler, concludes Haskell does not meet Bjarne’s criterion (be good enough on all axes). Instead, like Self, it aspires to take a few beautiful ideas (esp: purity and polymorphism), pursue them single-mindedly, and see how far they can take us. In the end, we want to infect your brain, not your hard drive. Haskellers’ commitment keeping the language purely functional and their refusal to divorce from scholarship upheld the independence necessary for Haskell’s core ideas to crystallize. As early weaknesses of object-oriented programming (e.g., costly scalability, data mutability & insecurity, lateness to concurrency) grew into entrenched problems, functional languages like Haskell were embraced for offering fresh, proven, and sturdy solutions.

We’re going to focus mainly on the last ten years of Haskell’s reputational growth. The background given so far has been to contextualize 1) the strange position of Haskell vis-a-vis the mainstream, and 2) that changing social forces independent of Haskell have played a large part in the language’s changing popularity. Our next post in this series will discuss how the rise of functional programming in the late 2000s elevated Haskell. Later, we’ll overview the roles that FinTech and cryptocurrency played in the 2010s, and how Haskellers anchored the language as it gained adoption. Finally, we’ll discuss Haskell’s standing in the present moment and some anticipations of its future.