Haskell: How a Lazy Language Was Put to Work (Part One)
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.
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.