3

20 years ago, the Functional Programming world was all about Lisp and Scheme. When I went to college in 2001, my Fall Semester Freshman CS 101 course was taught in OCaml.

However, these days the people that talk about FP always seem to be talking about Haskell.

What is it about Haskell that has led to it's rise in popularity among experts in the FP world? What does it have that gives it an advantage?

Related but not duplicates:

durron597
  • 7,590
  • 9
  • 37
  • 67
  • 1
    related (possible duplicate): [Scheme vs Haskell for an Introduction to Functional Programming?](http://programmers.stackexchange.com/q/69697/31260) See also [Haskell AND Lisp vs. Haskell OR Lisp](http://programmers.stackexchange.com/q/18838/31260) – gnat May 07 '15 at 21:50
  • 3
    I think this might be confirmation bias. [Tiobe](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html) (a decent indicator of what languages people are "talking about"), puts F#, ML, Scala, Scheme, and Erlang ahead of Haskell among functional languages. – Karl Bielefeldt May 07 '15 at 22:12
  • 3
    What's not to like? Haskell takes a rigorous mathematical approach to programming that attempts to improve the language's ability to prove your program's correctness. Its type system is designed to catch many more errors than a typical "strongly-typed" language. – Robert Harvey May 07 '15 at 22:34
  • 1
    Twenty years ago, Haskell was only five years old and the design was still being iterated on. The first standard that remained active for a long time was "Haskell 98", which is only 17 years old (as the name indicates). Serious original research based on Haskell, which is responsible for many of the really cool features, probably hadn't even really started back then. (I'm nitpicking, the question remains valid when you dock it down from twenty to fifteen or ten years.) –  May 07 '15 at 22:38

1 Answers1

9

What is it about Haskell that has led to it's rise in popularity among experts in the FP world?

There's a few of different things I've seen:

  • It's novel. As much as FP enthusiasts poo-poo all of the fads in imperative and OO programming, they're still human. Lisp has been around since the 60's. ML since the 70's. A lot of people have spent a lot of time playing with them, extending them, exploring them. Haskell provides new opportunities for research and exploration.
  • It's pure. I don't think it's controversial to say that FP enthusiasts are by-and-large not the most practical of sorts. They value elegance and abhor the sort of compromises (side effects, type system limitations) made by other functional languages in the name of practicality. By being pure and usable, Haskell has affirmed all of their arguments over the years that FP could be awesome if done right.
  • It's deep. Haskell's main feature is its type system. Since much of its target audience are more academic sorts looking to implement weird academic things in the language, that type system is vital since it provides a playground for those users. It's the key differentiator for the language for those sorts of users.
  • It works. Haskell has a solid compiler. It has decent library support for a functional language. Once you get to the fringes of popularity, having good compiler support isn't a given. Having a compiler that produces fairly performant code is a luxury, and GHC is pretty good.
Telastyn
  • 108,850
  • 29
  • 239
  • 365