Haskell on Stack Overflow: a plea

I don’t know if the Haskell SO community hang out here, but I need to get this off my chest.

I’m seeing a similar pattern repeat itself over and again. Somebody posts a [haskell] question to Stack Overflow. It’s not a question an experienced Haskeller would ask. It displays a lack of understanding of basic Haskell concepts, and displays what many Haskellers might consider muddled thinking. The questioner is very likely a newcomer, often with a rep of 1 or 11.

Within a short amount of time, this question has attracted a number of downvotes. And that’s how it sits, unanswered and un-commented, until it fades into oblivion.

I think a bit of understanding is warranted here. Haskell is a difficult advanced language. Beginners need help to grasp the basic concepts that more experienced user have a deep understanding of.

If you have the time and patience, try and look at the questioner’s problem through a beginner’s eyes, and draft an answer that will guide them to understanding what they are missing.

Otherwise, feel free to contine scrolling down to find the interesting questions about Servant type tetris, generaizing monads, and the performance impact of laziness. But keep the downvotes for questions that genuinely “do not show any research effort, are unclear, or not helpful.” There’s really no need to reinforce the impression that Haskell is a secret code for the initiated. Besides, it’s just not nice.

And give people the benefit of the doubt - I don’t think unclear should be judged to the same standard as, say, a JavaScript question. What’s helful to one novice will be helpful to another. At the very least, leave a comment with specifics on how the question could be improved, maybe pointing to a helpful resource.

Let’s try to treat newcomers to the community the way we would have liked to be treated when we where there, not so long ago. Or at the very least, don’t treat them the way we wouldn’t have wanted to be treated.

Happy Haskelling!

17 Likes

I too notice this and I also don’t like it.

On the other hand, there are many questions with poor spelling and seemingly no effort put into trying to actually explain their problem. Basic things such as an explicit question are often missing. Or there are clear rule violations like asking multiple questions in one question. Do such low-effort questions really deserve attention? Do we want more of such questions on stack overflow?

I can often see what the asker means and can see what is going wrong from very little information, but I also think that askers that don’t spend effort on formulating their questions probably also won’t spend much effort trying to understand my answers (I often feel like they just want to copy paste some code without understanding it). Additionally, these beginner issues are often very specific, so an answer will not be useful to many other people.

Additionally, stack overflow’s point system and strict rules are inherently problematic in my opinion, so perhaps the site should generally be avoided.

I don’t know what the best solution is. Until now I’ve tried to stay positive or at least ignore such questions, but I can understand why some people downvote them or write negative comments.

9 Likes

Very true.

I’m not saying ‘never downvote’ - it is often warranted, as in the circumstances you mentioned, except maybe the poor spelling. But confusion and misunderstanding of the basics is very legitimate in Haskell. We need to embrace that, not stigmatise it.

A similar-looking question, it can show a JavaScript progrsmmer being lazy, or a Haskell beginner at their wits’ end.

3 Likes

Maybe we should gather some examples? A quick browse yields these questions which seem okay, but are downvoted:

Here are some downvoted questions that I have answered:

Do you agree that these are some examples of your observations? Do you have some better examples?

2 Likes

Stack Exchange is a weird bunch of sites.

The Haskell tag on Stack Overflow is the nicest tag. Your question will get closed if you ask about subtyping in Java, or about communication via radio waves in Physics, or about the connexion between rôle and behaviour in Psychology, or about the politics of Stack Exchange in Politics. I tried all of these, either out of genuine interest or just to see what will happen, Some of these questions were re-opened after I battled for them. Others remain closed. This all after earning thousands of reputation in the Haskell tag. My profile, for reference.

I was deeply grieved by the state of the wider Stack Exchange community. So I went away. The stated goal of Stack Exchange is to crowd-source an exemplary collexion of questions and answers, not to help anyone in particular. Whenever these two goals are in conflict, concrete people will be thrown under the bus for the sake of the grand vision. Stack Exchange is inherently elitist. There is nothing we can do.

Ideally we should redirect people to /r/haskellquestions or to this here site — of course Stack Overflow will not let us do that easily.

2 Likes

I promise you that the vast majority of people downvoting and closing those questions are not regular Haskell community members, at least they are not the majority of people who answer beginner questions here and on the Haskell subreddit. I am sure there are some, but the majority of them are not, they are just the regular Stack Exchange community members who downvote and vote to close everything. This is just the nature of Stack Exchange, it has been like this for over a decade and it will continue to be for the next. I spent about three years being very active on one of the SE sites and I can tell you from first hand experience, unless you spend 100% of your time fighting and arguing with people to try and reopen questions, you either get sucked into the mindset of downvoting everything or you just leave.

If you look at the beginner questions that are asked here for example, I don’t think you’ll see any similarity with the kind of responses to the beginner questions on SE that you’re mentioning, so I honestly find most of your post very patronizing. The most common kind of critical response that I see here or on reddit is saying something along the lines of “Nobody is going to answer your question unless you provide the code so we can see what you’re doing” when a question is posted without anything concrete to answer.

The answer to this problem is what kindaro said, just don’t use SE. Direct effort to and improve other sites that are more directly influenced/moderated by the Haskell community. Let SE be what it is because believe me, you cannot change it. There are thousands of entrenched site users who spend their day trawling every question in every tag, downvoting and voting to close when they don’t think it fits their vision of what questions on the site should be, regardless of their experience with the subject. The problem is not with the Haskell community, it is with SE.

1 Like

Responses to some responses:

Thank you for that, this commentary definitely contributes to the discussion. I personally don’t feel it’s a productive avenue to start a debate over specific examples, at risk of losing the forest for the trees. I’ll suffice to say that I feel there’s a general trend, you seem to concur, and others can weigh in on whether or not they agree and where to draw the line between legitimate and illegitimate downvotes.

Stack Overflow, almost by definition, is a repository of redundant information, and this redundancy is vital for learning. The majority of information in SO answers can be found in documentation somewhere, but part of being a beginner often means that you don’t have sufficient conceptual grasp to know where to look, and that is very much a Stack Overflow use case (after having made a decent effort yourself). Some people learn by reading books, and others learn by trying things and getting stuck. Haskell’s concepts are more intrinsically difficult than almost any other mainstream language, so beginners will struggle with basics more than elsewhere. There’s no excuse to assume something is self-explanatory just because I understand it. “How to move the turtle in LOGO?” is not the same as “Why must fmap change both types?” (Although this does not excuse not putting in or showing effort.)

I appreciate this perspective, and I certainly applaud efforts to draw attention to and build up other forums that have a kinder and more accepting and beginner-friendly atmosphere. However, for me, right now, SO is where it’s at, and I prefer to work with it for all its flaws. It’s the largest and best-known site of it’s format. It’s where the recognition for the rep I earn is worth something, and its where beginners from outside of the community are likely to go.

This is very much part of my point - what’s confusing for one is very likely confusing for another, so clearing up this confusion, as presented by a real live user, is likely to be helpful to others too.

I certainly don’t mean to patronize or cause other offence, and I apologise if I came across that way. I’ve always felt very welcome in the Haskell community, both while having discussions on topics I know little about, or already have some advanced knowledge (and even when I make silly mistakes and should know better.) I’m happy to accept that the actions on SO that I object to don’t typify the Haskell community.

That said, I’m not sure I understand what exactly you’re objecting to. It seems widely accepted here that the behavior I’m objecting to is real. I’m happy to accept that the actions on SO don’t typify the Haskell community. I certainly am not saying I’ve seen it outside of SO. You may feel they go without saying for most of this audience - I prefer to err on the side of airing reasonable thoughts for discussion, rather than self-censoring because somebody may find it obvious.

5 Likes

Stack Exchange is a weird bunch of sites.

Yes, there’s huge variation between different tags/topic areas for what gets downvoted and why.

The Haskell tag on Stack Overflow is the nicest tag.

Yes, and frankly too nice. The idea behind SO is to create a ‘curated’ repository of model answers; that also needs curated questions. It’s not trying to be a free resource instead of a textbook or coursework. It is valuable for programming languages (especially research languages) that change faster than textbooks can keep up.

Repeating the same question this term because you’re doing the same course/same textbook as somebody last term doesn’t contribute anything; and you didn’t even search for prior answers before posting – then the q should get downvoted. But far too often the generous Haskellers post a repeat answer without linking back.

I’ve looked through @jaror’s examples. All of those deserve to get downvoted – indeed one has been deleted.

[P.S. I don’t downvote if a q already has what I think are enough downvotes. If I downvote I always post a comment explaining why. I frequently end up in a stoush with somebody (not nec. the O.P.) complaining about my explanation. For that reason, I guess, it seems to be SO policy not to explain why you’re downvoting. “weird” yes. Disrespectful, I say.]

@KripkesBeard the vast majority of people downvoting and closing those questions are not regular Haskell community members,

Not my experience. Why would a random stranger bother downvoting q’s on subjects they don’t know? It’s not as if they gain extra reputation for themselves by downvoting. I’d say the Haskell regulars on SO are the ones who downvote; the chief problem is they’re too reluctant to downvote. Consequently there’s too many repeat answers to wade through, making it too difficult to find if my q already has an answer.

Because there are other site incentives to do so and the site makes it incredibly easy. When you get to a certain reputation threshold, I don’t remember exactly but I think it is around 1000, maybe more, you get given access to a queue that pushes questions marked in any of the categories of low quality posts, suggested edits, close votes, reopen votes, first answers, first questions, and late answers directly to you for review. Every single question on the site that fits into any of those categories gets pushed to directly to you for your review. You can just interact with one and click next to immediately get sent to the next one. You may not get reputation points for doing things like edits, but you do get badges which are another of the site’s game-ish incentives to participate. You get badges for every x amount of posts you review, so people who are playing the site’s game sit and interact with the review queue all day. Again, I have seen this happen to other people and I spent years being a part of it as well. There’s a very easy way to check what I’m saying too, go to these closed and hugely downvoted Haskell questions and look at the people who voted to close them (when you get past another reputation threshold you can see the people who voted to close and what their individual reason for closing was, the reason that gets the simple majority becomes the stated reason). Check their profile and see if their top tags are Haskell related or not. Most of the time they won’t be. Note, I am not talking about the people who interact positively with the post. People who do answer, or try to help out in the comments in a positive way are not interacting negatively with the post. I am saying go to the closed questions or the questions which have active votes to close and check out those people. I promise you you will find that the majority of them are not regular Haskell posters unless the question itself was a bad question, which does sometimes happen.

I agree that on a site like Reddit or here it would be very strange if someone who has no interest in Haskell sat around all day and gave negative interaction to beginner questions, because that would mean they actively chose to come to a Haskell site. But SE is not a Haskell site, it is a site for programming and people from all different backgrounds are thrown into the mix. The review queue can be filtered by tags, but it isn’t automatically, and I promise you there are thousands of regular site users so just sift through the review queue and downvote any question they think isn’t well formed enough according to their interpretation of the sites question asking guideline. “I don’t believe this, I can’t see why a random stranger would choose to do this” is not an argument that it doesn’t happen and I’m telling you that I spent years watching it happen and you can reverse engineer evidence for the process happening by looking at peoples profiles on the site. This exact complaint is the main complaint people have with SE as a site, outside of the Monica issue, that’s echoed in every “I had a really bad interaction on SE” post across the internet.

What I am saying is that this is the exact behavior that the SE community has always exhibited. I tried to give evidence, further expounded on in this post, that the vast majority of the people who are having this negative impact on Haskell questions there are not regular Haskell community members who interact with beginner questions on other sites. They are regular SE users who do this to everyone. The behavior is real, and it is a problem. But it is not a problem that is reflected on this site, or on the Haskell Reddit, anywhere to the point that we could say it resembles what’s happening on SE. The issue are the regular SE users, not the Haskell community. I am not objecting to the fact that the behavior exists, I am objecting to the fact that this is a problem with the Haskell community itself and that there need to be directives given about how to interact with Haskell newcomers here. Your post wasn’t “Hey I noticed this problem, this isn’t good”, it was “you guys need to do better”, and I’m trying to explain how the people you’re addressing don’t actually exist.

1 Like

Let me say this.

I apologize for saying that you were being patronizing, of course you didn’t intend to be, and I am sorry that I made you feel like you needed to apologize for it because you really didn’t, I had a bad response to your post.

I agree with you that the Haskell situation on SE is bad, but we may disagree about why. Either way, we agree that it is bad. My thoughts on the situation, as someone who recently has actively tried to start helping out Haskell beginners online and who has a history with the internal politics of SE, are that we should not care about the SE situation, the site is bad in and of itself, and we should not devote any time or effort to improving it. We should make other internet resources like this site and Reddit better and actively help people ton them. SE will never change, and there will always be hugely downvoted questions that are perfectly good questions. We should focus our efforts elsewhere because it is a losing battle over a shared space that we have less than 1% of.

2 Likes

We won’t be able to control where beginners look for help. I see the problem (just today in fact, Confusing Error from type matching (I think) - Haskell - Stack Overflow) and hope we can improve things a bit. I’m really happy the community is large enough to support multiple locations of gathering so hopefully the better places become more prominent and we can funnel people as needed.

1 Like

There is something we can do. On Reddit, the haskell subreddit links to Stack Overflow. Maybe we can ask the moderators to remove that and instead direct people to the haskellquestions subreddit.

1 Like

This is also why, IMHO, the Haskell community needs to prioritize good documentation, with recommendations on how to get done common tasks such as interacting with JSON, reading/writing files, cli tools with args and env parsing, etc. Lacking that, we end up giving ourselves a lot more work than we have the capacity for.

IMHO, the main problem or blocker is that it’s not sexy work and there’s no authoritative group in the Haskell community that is willing to step up and see it through - I would guess mostly because this community is full of disagreements and is not the best at working well together, and that’s what is needed to come up with meaningful documentation newbs can use to navigate the pile of topics they’ll need to master.

2 Likes

I wonder if the activities like downvoting is done by ppl who look down on haskell. So that when they see haskell questions, they downvote because they dislike haskell altogerher.