This is just gold!
All the Haskellers I have met seem to be quite normal, helpful. Maybe this guy rubs them up the wrong way.
This is just gold!
All the Haskellers I have met seem to be quite normal, helpful. Maybe this guy rubs them up the wrong way.
- A Haskeller once said Haskell is just as easy as Go to learn. I mean, yeah, many moderately complex languages might be as complex as Haskell, but seriously, Go? It is designed to be as simple as possible. Hell, it even doesn't have generics, which is considered pretty essential in nowadays' statically typed languages. And this claim isn't an outcome of ignorance. He is the author of a very popular Haskell learning material.
- Another said: "Steep learning curve is an interesting expression, because what it actually means is that one is learning quickly." Ok, that's not my interpretation of "steep learning curve" of Haskell.
- "The average Java programmers are worse than the average Haskell programmers" thing. This sentiment even existed in one of the "how to spread Haskell to the industry" presentation. I'm pretty sure if Haskell does be accepted by the industry, it will have the exactly same dumb programmers using it. So, what's the point?
You must be lucky if you haven't met any of them in the Haskell community. Actually, their reputation outside of the community is quite terrible. This must be resolved if Haskell wants to succeed. (And yeah, please stop saying "avoid success at all cost". I know it can be interpreted as "avoid $ success at all cost", just stop it.)
That is technically correct in the original meaning of "learning curve".
Many technically inclined people totally disregard changes of language and cling to their perceived "pure" meaning.
But every language community has its toxic elements.
I think this is quite relevant.
https://gist.github.com/quchen/5280339
All communities of significant size will have good and bad apples. The Haskell community is no exception. But in my experience most of the community are fantastically patient and helpful people.
My suspicion is this: There are lots of ways to make people feel inferior, or at least make them feel like you think they're superior. Most of them are ones that people probably don't do on purpose. But when you do it, the person you do it to is going to think you're a smug jerk nonetheless. There are also a lot of people who are supremely self-confident and therefore largely immune to being made to feel inferior. Many of them have been like this all their lives, and are therefore oblivious to this social subtlety.
One easy social gaffe that doesn't get discussed much is having no sense of humility about your language's obtuse syntax. Yes, I know, it's a familiarity issue, all languages have obtuse syntax, etc. etc. Doesn't matter. What matters is, if your language's syntax is different enough from Java's or Pascal's then it's going to be widely perceived as being obtuse. And responding to that with anything along the lines of, "Huh, makes perfect sense to me," risks coming across as a smug jerk.
Using the M-word is another famously risky behavior. Ironically, at least in my experience using it is also actively harmful to any attempts to explain the underlying concept, because at this point that word is @$#@ loaded. You can take someone who is already implicitly comfortable with the concept and uses them all the time in practice, and reduce them to a confused heap just by mentioning the M-word. And at that point, any attempt to pursue your goals will also risk coming across as a smug jerk. No, trying to address this issue head-on by writing blog posts with titles like "You already understand. . ." does not help. It just makes you come across as a condescending smug jerk.
That's a property of all niche languages. Yes, if they get mainstream, they'll lose it, but until then it makes for an easy way to bias in a good way the set of people you could hire for a position.
If we assume companies do not filter well their hires, or that filtering them is costly (a huge "if"), it becomes a competitive advantage. And, as most competitive advantages, if enough people use it, it goes away.
This is actually what the rest of the world says about the tech industry.
(Yeah, I just finished pushing a commit or two in Haskell to my github. And I hang out with Ed Kmett once a month. Oy.)
This is the same kind of weak response you see from Rubyists whenever someone points out their community's well-documented asshole problem (eg: Steve Klabnik bringing a woman to tears by publicly ridiculing her project and offering only an insincere non-apology when called on it, any blog post ever by DHH or ZS, Felipe Contreras' tantrums on public mailing lists):
"Well, in my experience, everyone in my community is super nice and helpful, so you must be wrong."
Off the top of my head, I can easily recall several Haskellers on HN who've come across to me in the past as pricks, and on multiple occasion at that: dons, loup-vaillant, and coolsunglasses.
The Haskell community, like that of Ruby, is quickly getting the reputation it deserves.
I've experienced some cases where I've been spoken to a bit sharply, and some where people have come across a bit impatient when I haven't "got" something they understand. The thing is that I don't process it as people coming across as a dick, so my subjective experience is that the community is helpful. As to the three examples [1] you picked out of Haskellers coming across as pricks, I honestly, truely, completely don't see anything in any of these comments beyond forthright assertions of opinion. Would you be able to maybe break down what you find objectionable?
[1] As disclosure: I currently work with dons, and I also know willtim.
If you don't understand what's offensive about condescendingly spewing falsehoods like "if it compiles, it works" or saying that you can't respect a CS department that uses Python for its introductory CS courses instead of Haskell (and thus doesn't expect its freshmen to know what a Kleisli category is), you've obviously drank too much of the Haskell Kool-Aid to maintain objectivity.
The if it compiles works thing... That's unfortunately overblown and hyperbolic, but in my experience of the Haskell community in London, it's usually uttered as a tongue in cheek joke. I'm not sure I'd characterize it as condescendingly spewing falsehoods.
However, let me tell you about my first experience building a little thing while learning Haskell: As a total newbie, I wanted to pull some timeseries from a database and plot them on a UI. It took me days of grabbing some time here and there, learning which DB library I should use and how the diagrams package worked. I finally got it to compile without any errors. As a python programmer this was a completely new way of programming for me, and I now fully expected the real work of making it run to begin. The VERY first time I ran it - up popped a timeseries visualization. Mind. Blown!
So as you state it, "if it compiles it works" might be a falsehood, but there's more than a grain of truth there.
As for your other comment. What Tim actually said was:
> An institution that teaches Python under the banner of computer science, certainly loses prestige in my opinion
He didn't say that he "can't respect" it, nor did he say that CS should exclusively be taught in Haskell. He said, that teaching it in python lowers its prestige (and later clarifies that he means that as a vehicle for teaching CS rather than programming).
As I mentioned, I'm a self taught programmer, beginning with python. Since then I've worked at hedge funds and investment banks in python and built a startup on Haskell. My opinion is built on my own direct experience, and I find it somewhat disrespectful that you dismiss it as "drinking the Haskell Kool-Aid".
"The VERY first time I ran it - up popped a timeseries visualization. Mind. Blown!"
Almost every programmer using almost every language has experiences like this. That hardly justifies making such expansive claims, claims that even a dependently-typed language would have difficulty justifying.
"Since then I've worked at hedge funds and investment banks in python and built a startup on Haskell. My opinion is built on my own direct experience, and I find it somewhat disrespectful that you dismiss it as "drinking the Haskell Kool-Aid"
I am not trying to be disrespectful to you, but I think you are being far to charitable in your interpretation of the conduct of your peers in the Haskell community.
This is probably where the disconnect lies. It seems like boothead is operating under the principle of charity (https://en.wikipedia.org/wiki/Principle_of_charity). HN's guidelines don't specifically mention it but seem like they have this principle in mind. You have absolutely no evidence that dons actually "marshaled his supporters to spam" and accusations that he did are not very charitable (as you yourself admit). It's just as likely that some people got really excited about it and posted it to HN.
In both cases, I think it speaks to something important, and is obviously not true in any strict sense.
"If you write or edit <language>, with some reasonable practices and trying to get to a solution, the kinds of mistakes you will usually make will be usually caught by the type system."
In my experience, this is marginally more true of Haskell than OCaml, of which it is notably more true than C, of which it is notably more true than Python. With the caveat that much traditional/common practice in C does not satisfy the "reasonable practices" criterion.
Wow, I could not read that any more differently.
It's like arguing "I'm sorry, and feel terrible that I hurt your toe" is tantamount to saying "I'm sorry your toe hurts when it's stepped on". I find that notion a little strange.
> SK: i dont want people to think i'm saying "i got caught being an asshole so i'm saying sorry"
> SK: i want to say "I was accidentally being an asshole so i'm sorry"
> So, I'll just leave it at that. Twitter makes it so hard not to accidentally be an asshole.
He's admitting that he was "being an asshole" and is trying to empathize. "I'm sorry you were offended" means being offended was your choice. "I made someone feel terrible" means I did something bad to that person.
I'm not familiar with the JS community or Steve Klabnik in particular, but that's a pretty straightforward and sincere apology.
Seems a pretty clear apology to me.
By the same token, you could describe the community of Haskell as witty and friendly by taking SPJ as an example. In my experience, the Haskell community is fairly free of vitriol and of the drama which is fairly common in open-source communities.
Really 'valuable' thoughts from him are rare. 'Valuable' more for him. ;-)
This thread reminds me of Tortuous Convolvulus.