Christopher Allan Webber

Haskell users' survey

Christopher Allan Webber at

Interesting survey results, specifically that it seems that:

  • users of the language are generally happy with it and its compiler
  • few are using Haskell at their work, but more would like to
  • package management is the thing that everyone is least happy with

Actually, going to quote that last one directly:

Package management with cabal is the single worst aspect of using Haskell. Asked if improvements to package management would make a difference to their future choice of Haskell for a project, 38% said it would be "crucial" and a further 29% said it would be "important". Comments connected cabal with words like hell, pain, awful, sucks, frustrating, and hideous. Only this topic showed such grave dissatisfaction.

I suspect those feelings with Cabal are hardly a Cabal-only situation, or even Cabal's fault. Other language packaging also seems bad, but there's clearly a void that language package managers are filling. But is language package management really the right way to fill that void?

Even more can be said on that subject, for another time. Still, interesting!

Tyng-Ruey Chuang, mnd, Mike Linksvayer likes this.

Show all 9 replies

Haskell libraries have some other problematic bits beyond the common issues with dependency management.

One is the diamond dependency issue; it's possible for two dependency chains to pull in conflicting versions of a library. I've seen this happen with C libraries as well, but it's less common there.

Another interesting thing is that due to strong static typing, it's common to make breaking changes in haskell libraries, where other libraries would go out of their way not to. This is often a good thing, it avoids bad choices being locked in. But, it means there's a constant level of churn to keep up with if you want to keep using current versions of libraries.

Curated sets of libraries seem like the only available solution to these problems so far. Either stackage, or nix, or debian have self-consistent sets of libraries, with varying levels of coverage and up-to-dateness.

joeyh at 2015-05-24T20:05:53Z

I don't think #4 is worthwhile, and it's certainly not achievable if you care about reproducibility.  Windows and OSX are hopeless.  We cannot build the entire dependency tree for either from a set of bootstrap binaries because they are proprietary.  Cross platform language package managers are really as good as you can hope for in this case.

David Thompson at 2015-05-25T00:10:26Z

I've seen you talking more and more about functions and monads and such… are you getting into Haskell really?

Aaron Wolf at 2015-05-25T00:45:24Z

@Aaron Wolf I'm actually getting more into Scheme, though I've taken small dips into Haskell mainly because all descriptions of how monads work reference Haskell (as well as more and more papers of interest to me).

Scheme has become a gateway drug into harder computer science stuff for me.

Christopher Allan Webber at 2015-05-25T01:43:32Z