Haskell
Functional· alive, actively evolving· since 1990 · Haskell Committee, Paul Hudak, Philip Wadler · haskell.org community
Purely functional, lazily evaluated language for writing programs as typed functions.
Draft from 2026-10-30, not yet checked claim by claim against its sources. Help verify it.
Born from
In September 1987 a meeting at the FPCA conference in Portland, Oregon, faced more than a dozen non-strict, purely functional languages with similar power and agreed that a committee should design one common language. The most mature of them, Miranda, was a commercial product of David Turner's company, and Turner declined to let the committee adopt it as the starting point.
What it trades away
Cost: Laziness makes space use hard to predict, and even experienced programmers struggle with it, so the language later gained strict features.
Where it fits
| Slot | Fit | |
|---|---|---|
| server | ●●● | Facebook's Sigma rule engine runs in Haskell at more than one million requests per second. |
| cli | ●●● | Pandoc is a Haskell library and a command-line tool for converting document formats. |
| config | ●●○ | xmonad, a tiling window manager, is written and configured in Haskell. |
| embedded | ○○○ |
Why it exists
In September 1987 a meeting at the FPCA conference in Portland, Oregon, faced a problem: more than a dozen non-strict, purely functional languages existed, all similar in power, and their wider use was held back by the lack of a common language (History of Haskell). The meeting agreed that a committee should design one common language. The most mature candidate, Miranda, was a product of David Turner’s company, and Turner declined to let the committee adopt it as the starting point. The committee designed a new language and published version 1.0 of the report, dated 1 April 1990, edited by Paul Hudak and Philip Wadler (History of Haskell).
What it trades away
Laziness is the main price. Haskell evaluates an argument only when its value is needed, and the authors admit that it is very hard even for experienced programmers to predict the space a lazy program uses (History of Haskell). The space leaks this caused led the designers to add strict features such as seq and strict data types (History of Haskell). Its main compiler, GHC, uses a stop-the-world copying garbage collector by default (GHC guide; Wikipedia).
Where it won
Haskell’s clearest production win is Facebook’s Sigma, an anti-abuse rule engine. Facebook reported in 2015 that it had spent two years rewriting Sigma, replacing its in-house FXL language with Haskell, and that the Haskell version serves more than one million requests per second (Facebook Engineering). Pandoc is a Haskell library and a command-line tool for converting document formats (Pandoc). xmonad, a tiling window manager, is written and configured in Haskell (xmonad), and the Cardano platform is written in Haskell too (Cardano).
Named wins
- Facebook Sigma, an anti-abuse rule engine rewritten in Haskell, serving over one million requests per second source
- xmonad, a dynamically tiling X11 window manager written and configured in Haskell source
- Cardano, whose platform is written in Haskell source
- Pandoc, a document converter that is a Haskell library and a command-line tool source
Evolution
Reacts to: miranda, ml
Weigh it against: ocaml, scala, fsharp, Rust
Timeline
- 1987A meeting at FPCA in Portland, Oregon, decides that a committee should design one common language source
- 1990Haskell 1.0 report, dated 1 April 1990 source
- 1999Haskell 98 report published, a commitment to a stable language source
- 2007A History of Haskell is presented at HOPL III in San Diego source
- 2010Haskell 2010 Language Report is published source
- 2015Facebook rewrites Sigma in Haskell, replacing its in-house FXL language source
Links
website · repo · wikipedia · docs · PLDB
Sources
- https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf
- https://www.haskell.org/onlinereport/haskell2010/
- https://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/
- https://xmonad.org/
- https://docs.cardano.org/about-cardano/introduction
- https://github.com/jgm/pandoc
- https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html
- https://downloads.haskell.org/ghc/latest/docs/users_guide/codegens.html
- https://hackage-content.haskell.org/package/base-4.22.0.0/docs/Control-Concurrent.html
- https://pldb.io/concepts/haskell.html
- https://en.wikipedia.org/wiki/Haskell
Unverified draft, 2026-10-30.Edit the facts · edit the story · JSON · Markdown