Is Haskell really the language of geniuses and academia? (2019)
1–10 of 83 posts
Re: Is Haskell really the language of geniuses and academia? (2019)
#2The whole avoid success at all costs looks more like a meme to me than actual strategy. There are functional languages (Clojure(Script), Elm) which made pragmatic decisions about the feature sets and have found commercial success. But with Haskell, it seems a reverse process was followed. It starts with some (questionable?) assumptions like lazy evaluation is good and then builds on top of it. For commercially viable software, the process is generally reverse. You start with specific problems and build a feature set from it.
The best way to understand this academic Vs. pragmatic approach is to look at Golang's relative success vs Haskell. No matter how much PL researcher snobs complain about golang, its creators started from real problems and chose some constraints carefully. The result is its widespread adoption in its niche (networked infrastructure code that can tolerate GC). Such cases are not documented for Haskell or are rare to find.
It is perfectly alright and better to say, look this was a research language to find out how far we can go with certain choices and assumptions. But constant evangelism about how it is elegant etc does not help.
Re: Is Haskell really the language of geniuses and academia? (2019)
#3With Haskell, one always finds articles explaining how great it is, how its features (pure functionality) lend to correct code. But, articles explaining the core use cases and how only this language enabled solving it are rare. I'd love to read someone's decision postmortem that goes something like 'Here is a problem we were looking to solve. And here is how specific features A/B/C of Haskell helped us solve it well.…
Re: Is Haskell really the language of geniuses and academia? (2019)
#4It has features you didn’t know you wanted or needed and eventually other languages will get there, and Haskell will seem average/harder to differentiate.
I’ve written a more practical post on why Haskell is worth using[0], excuse the clickbait title.
[0]: https://vadosware.io/post/how-and-why-haskell-is-better/
Re: Is Haskell really the language of geniuses and academia? (2019)
#5Re: Is Haskell really the language of geniuses and academia? (2019)
#6I really don't like the elitism coming off the title here. You don't need to be a genius or an academic to use languages like this. If people want to promote what the ML family can do they should concentrate on the problems that these languages solve and what tools the languages offer programmers.
Re: Is Haskell really the language of geniuses and academia? (2019)
#7Re: Is Haskell really the language of geniuses and academia? (2019)
#8I don't think it takes any special ability or particular intelligence to be drawn to a language like Haskell-- All you really need is real genuine curiosity, an inclination to learn something you don't already know, and that's something that "geniuses and academia" have a lot of.
Re: Is Haskell really the language of geniuses and academia? (2019)
#9Re: Is Haskell really the language of geniuses and academia? (2019)
#10With Haskell, one always finds articles explaining how great it is, how its features (pure functionality) lend to correct code. But, articles explaining the core use cases and how only this language enabled solving it are rare. I'd love to read someone's decision postmortem that goes something like 'Here is a problem we were looking to solve. And here is how specific features A/B/C of Haskell helped us solve it well.…
From my (limited) experience with Haskell, my impression is that it's strongest in domains that map _very_ well to formal mathematical models. Mathematical computation is an obvious example, but things like programming language parsers are also really intuitive to build in Haskell.
My experience trying to use Haskell for other stuff — mainly, building web backends, my bread and butter back then — was painful. Simple CRUD against a database is actually pretty decent thanks to there being decent Postgres drivers and libraries, but the moment you need to handle arbitrarily-nested data structures (like a JSON request/response with a nontrivial schema), you run up against a lot of awkwardness, to the point that for the longest time this was known in Haskell as the "records problem."
Lenses and similar tools have tried to solve this problem over the years, and maybe they have, but I moved on from the language when I saw how deep that rabbit hole went.
None of this is to say Haskell isn't fun or rewarding, but it definitely has its strengths and weaknesses.