Every time Haskell is discussed, lots of valid critiques show up as to why it's not more successful, and yet every single time, without fail, the conversation devolves heavily into "People aren't smart enough." The person I was responding to literally said that Haskell wouldn't catch on because most developers aren't smart enough, and then defined "smart" as those three things.
I am arguing a series of things. First, that being "smart" does not always mean those three things. Second, that being "smart" does not mean that you'd care to learn Haskell. Third, to suggest a tool isn't catching on because the members of the programming community aren't "smart" enough is so masturbatory it's actually insane. God forbid Haskell isn't catching on because of all the valid critiques that show up in every one of these threads and then gets dismissed under this same "Haskell smart" rhetoric.
Haskell will not catch on because the community thinks it is too smart to have to actually accommodate the programming community. Simple as that.
> The person I was responding to literally said that Haskell wouldn't catch on because most developers aren't smart enough, and then defined "smart" as those three things.
The person used "smart" in scare quotes, and defined that usage of smart as being those things. That seems like an explicit mark that they are not talking about all of the usual definition of the word.
> Second, that being "smart" does not mean that you'd care to learn Haskell.
That's irrelevant. If X is necessary for Y, lack of X is a good explanation for lack of Y even when X is not sufficient for Y.
> God forbid Haskell isn't catching on because of all the valid critiques that show up in every one of these threads and then gets dismissed under this same "Haskell smart" rhetoric.
If you're looking in from the outside, you may not be in a good place to distinguish between "all of these valid critiques" and "invalid complaints that arise because of misunderstanding, dated info, or outright FUD". There are absolutely valid critiques of Haskell. Most of my problems with it are things that are even more present in languages that have caught on, though, so they cannot stand alone as an explanation.
All of that said, "people aren't smart enough" isn't a claim I'd make, even with the reduced scope. I just don't think your argument is well formed.
It's weird, then, that the person that wrote the article that you and I are both commenting on has written a well regarded book using Haskell and their assertion is exactly the same as mine, no? It's also weird that the subject of this article is meant to be Rust, and yet here we are debating the idea that "Devs just aren't smart enough to understand haskell".
But, as always, I wouldn't expect a conversation about Haskell to really go anywhere. You can't comment unless you've drank the kool aid, and if you've drank the kool aid you're required to spout the same rhetoric.
... their assertion was that the problem was the exactly the same unspecified pile of "valid critiques that show up in every one of these threads"?
> I wouldn't expect a conversation about Haskell to really go anywhere.
Many conversations I've had about Haskell - pro and con - have gone really interesting places. But as your experience has differed, and you appear to think that's predictive, I'll take this opportunity to remove that common variable by wrapping up discussion here.
I don't think the author of the article has exactly the same experience as you. I think the article comes out of frustration of having had his favourite effect system "hierarchical free monads" looked on disfavourably in recent community discussion.
To a larger sense (the Haskell community being kind of exhausting and toxic), there are tons of examples. As cliche as it sounds, Reddit is an integral part of programming communities in 2020 and /r/haskell is a pretty toxic wasteland. The responses to this very article on /r/haskell are a great place to find what I'm talking about at a general level.
Specifically, though, this comment is a pretty good example of what this article (and I, now), am talking about:
> Certain problems, like working with databases in the principle Haskell way, are still open questions (e.g. see effect systems). But to call a mere difference in approach "arrogant" is extremely arrogant in itself
Which points to a problem very specific to haskell, brought up in the article, which is "How do I actually get things done?" Which, according to that comment (supposedly in support of Haskell) even points out that something as obvious and boring as "using a database" isn't clearly defined in Haskell. Most programmers want to use a programming language to solve a problem. The haskeller's argument, I guess, is that Haskell tries to do that while also applying very strict constraints on how problems are solved. Great, right? Except that those constraints are so strict that even problems that aren't significant or meaningful are difficult/not well defined (like using a database).
So if the answer to "How do I get things done?" isn't "Like this" but instead "Haskell doesn't work that way", most programmers will consider this a nonstarter.
> Which, according to that comment (supposedly in support of Haskell) even points out that something as obvious and boring as "using a database" isn't clearly defined in Haskell.
They are using a very high standard of clearly defined. Haskell has production ready ways of accessing databases and working with them today.
> problems that aren't significant or meaningful are difficult/not well defined (like using a database).
If you feel database work isn't meaningful, Haskell provides "write plain parameterized SQL, get back results" type libraries too.
I disagree database access and the realm of ORMs is simple, which is what they are talking about. You can tell by how they say "working with databases".
Other languages disagree about the best ways to work with databases. I'm sure you've seen the endless raw SQL vs ORM debates.
> ... /r/haskell is a pretty toxic wasteland. The responses to this very article on /r/haskell are a great place to find what I'm talking about at a general level.
If anyone wants to read through that thread to see exactly how toxic /r/haskell is they can find it here:
- having or showing quick intelligence or ready mental capability
They said "smart", I said "intelligence".