We joke about "Copying & Pasting from Stack Overflow". We commiserate with the countless hordes who have been shunned by the high-rep elites for...whatever reason. And yet, I'll guess that most of us visit Stack Overflow on a daily basis. It's become an ubiquitous part of the programmer's workflow.
I've been a member of Stack Overflow for years, once being an active reviewer, and in the top 5% of answerers for some popular tags. But now, Stack Overflow has all but vanished from my workflow. It's become something few anticipated, and fewer want.
It wasn't always like this. What happened?
We've Run Out of "Good" Questions!
I stopped answering questions on Stack Overflow a couple of years ago for two reasons, the most pressing being that there weren't any questions to answer.
That may sound absurd, when thousands of new questions are posted every single day, but most of them fall into one of three categories in the eyes of the core community:
If anything even remotely similar has ever been asked, the question is quickly downvoted and closed as a "duplicate". Unfortunately, quite a number of "dupe-flagged" questions are false positives, but there are seldom second chances at Stack Overflow.
Even if a question manages to escape the dupe hammers, if it deals with anything that isn't puzzling to an expert, it's fairly likely to get dumped on, a la "how dare you ask why you can't cast a string to a double, you snivelling plebeian." Oh sure, the new community rules have reduced this sort of talk in the comments, or at least driven it to be more passive-aggressive in nature, but it hasn't prevented harassment downvoting.
Most of the remainder of the questions tend to be cerebrally domain-specific which, while not bad, are seldom reusable.
EDIT: This doesn't count the "questions" that need to be flagged and closed for being spam, "giv me da codez!!1!", or entirely off-topic. I'm talking about actual questions.
This hasn't always been the case, of course, but that's largely because in Stack Overflow's early days, most questions hadn't been asked yet. Segfaults and syntax errors were still worthy of discussion. Those days are long gone. At least in part, Stack Overflow's ubiquity is its downfall.
"Just buck the system, then," one might think. "Answer everything worthy of an answer, whether the community likes it or not." That would be great if it worked, but unfortunately, one of the greatest crimes in the eyes of the core community is to answer a question they deem unworthy. Not only do they not want to play with the unpopular kids on the playground, but you'd better not either! The popular kids have downvote buttons, and they relish the opportunity to use them.
That's the second reason I stopped answering. I was sick of getting punished for it.
Answers Are Popularity Contests
Even once there's a good question being asked, there isn't much hope for good answers.
The first reason is well-known by the community, who refer to it as the "fastest gun in the west effect": the first answer often becomes the upvoted and accepted favorite, even if it's altogether wrong. The reputation system was supposed to be a check-and-balance on this, but it often only serves to amplify this phenomenon.
There's only one way in which reputation works against the "fastest gun" effect, and it's not a good way. In each major tag, there seems to be an elite crowd of people who have tens of thousands of rep points. Those badges seem to evoke a knee-jerk response by everyone else: "If this high-rep user says it, it must be so!" Yet I've lost count of the number of times the high-rep user gave an answer which was partially, or even entirely, incorrect!
I've had to cease relying on Stack Overflow altogether in researching "Dead Simple Python". It's seldom accurate, an unfortunate fact that has led to most of the #python
(Freenode IRC) community dismissing Stack Overflow as dangerously misleading.
The reverse is also true: while the high-rep users get automatic upvotes, the newer or lower-rep users often get ignored, or downvoted outright, because they dared to compete with the high-rep user.
I've unfortunately been on the receiving end of this more than once. Although my answer was technically accurate, and fully fit the question, I was attacked in comments or downvoted, simply because another high-rep user had already answered, or wanted to answer. I don't have enough reputation to gain admission into the elite, and the elite don't seem to like expanding their ranks.
The gamification of Stack Overflow is out of control. Votes are no longer related to accuracy and usefulness. Reputation has become the object in-and-of-itself! And when it comes to rep, the rich get richer, the poor get poorer, and it becomes quickly apparent to newcomers that Stack Overflow is a losing game for them.
Past the Expiration Date
When you combine the discouragement of both new questions and new answers, you wind up with a site that is rapidly becoming out of date. The last several dozen times I tried to use Stack Overflow to find information, I discovered the top answers were often woefully outdated.
Programming is a fast-moving field, so the best answer to a question today may be completely different than best answer to that same question in a year. We need new content, even if it might be "duplicate" content, to keep the conversation alive and recent.
Don't Read The Comments
Do I really need to say much about this? The comments sections on Stack Overflow is nothing short of a trash can fire half the time. Mutual respect, patience, and compassion regularly go out the window.
"But didn't they fix that with their new community policy?" you ask.
If only! A Code of Conduct only works if enforced by fair, polite individuals who care about the entire community. Stack Overflow is effectively run by people who have earned their moderator powers through sufficient reputation points, with the top mods being elected. It's like any other oligarchic democracy: the elite run the show by default.
Unfortunately, the only thing the Code of Conduct seems to have done is to encourage the offenders to get more passive aggressive in their attacks.
Moderator Tool Abuses
As I said, the high-rep users get automatic access to most moderator tools, and they often use them to their advantage. Questions are inappropriately closed as duplicates. Otherwise good content from the unwashed masses is flagged and closed as "low quality". Actual bad behavior from the elites is overlooked, since it's the elites who clear the flag queues.
I wish I were making this stuff up, but I have many of those moderator abilities on Stack Overflow, by sheer merit of the 4K+ rep points I've managed to scrape up over the years. I used to try to push back against these abuses, but majority rules...and the majority of active "trusted users" like it this way.
It's Our Playground, Go Home
I don't like what I've seen Stack Overflow turn into. Downvotes have been weaponized, and all suggestions to implement basic accountability into their usage have been summarily shot down, to the cry of "I can anonymously downvote who I want to! It's my right!" Many good, honest questions are shut down. Bad answers are praised on the sheer merit of the poster's existing reputation, while many good answers get downvoted so as to not outshine the Chosen Ones. Moderator tools have become yet one more means of keeping the "unwashed masses" in their place. Unpopular people are roasted for the slightest perceived offence, while gross misconduct is overlooked, and even rewarded, among the elites.
In short, Stack Overflow has become a temple to ego and elitism.
What Now?
DEV has had a #help
tag for a while, and I look forward to seeing that grow. Our site's compassionate moderator team, lack of gamification, and avoidance of a public "downvote", have all contributed to a healthy, supportive community. But we can't rest on our laurels; we must work together to keep it that way!
If I could find where I parked my TARDIS, go back in time, and pre-empt Stack Overflow with a community of my own design, here's what I'd do:
No downvotes. In the end, these only serve as a means of anonymized harassment. Upvotes are usually more than sufficient. (Actually, I'd like to see how ranked-choice upvoting would work in a Q&A setting.)
No "duplicate question". Every question is different, and even the slightest variation can radically alter the answer. What's further, solutions are continually evolving, so the right answer today may be completely wrong in five years. Instead, allow linking related questions.
Avoid gamification. When users "earn" reputation from upvotes on their questions and answers, the focus becomes competition instead of knowledge sharing. This is detrimental to a community.
Moderators are selected for their conduct, not their popularity. Put moderator tools in the hands of the people whose behavior proves they can be trusted. If they abuse those powers, especially after initial warnings, remove their moderation abilities.
Encourage learning. Don't allow the community to punish people for not knowing basic facts. Help them learn how to learn! That's one of the reasons DEV is so incredible; tags like
#explainlikeimfive
and#beginners
create a safe environment for greenhorns to ask questions that would be deemed "stupid" elsewhere.
Stack Overflow was a nice experiment, but I think the results are clear. We need a new solution.
Top comments (96)
Regardless that I've got down votes on valid questions like this, this, and this
Marking duplicate questions is a good thing (the idea itself).
Down voting questions that are literally asking for nothing but "do my work for me" is a good thing too.
Commenting on questions to get more info before answering is another good thing.
The problem is not in these features, maybe the problem is merely with people abusing those features.
I certainly agree with all three of those points, at least for the most part.
I don't think commenting should go away.
I think flagging a duplicate needs to NOT close the question. Often, further conversation or additional answers are justified.
Downvoting can be useful in theory, but again, there's no accountability. We should have flags for things that are provably bad, and simply withhold upvotes for the rest.
The problem with downvotes is basically...
They're anonymous signs of disapproval, which tend to bring out the worst in people. (Mob mentality)
They have no attached explanation, so no one can learn from them. (Accompanying comments are not required, and are even vehemently discouraged by some elite factions on StackOverflow.)
There is no way to implement accountability. They can be habitually misused, and nothing can be done.
A flag, on the other hand, is not anonymous, has full accountability (it can be rejected), and has accompanying helpful explanation.
As for the duplicate question thing. If questions could be merged somehow into some kind of subject umbrella that would help.
I hate having a question marked duplicate and go the the linked question and it doesn't have the answer needed.
So do you follow the advice on SO for that circumstance? Which is to ask a new question, in which you can explain that the duplicate to your previous question didn't provide an answer because...
Unfortunately, sometimes that's when your new question is marked as a dupe of your previous question, and you get flagged for spam.
Not making it up.
Those 3 question have only upvotes.. just saying :)
...which begs the question, were the downvoters removed from the network? I know they're always having to break up illegal voting rings.
So, this is a good thing that SO takes care about unfair downvotes, right? Or am I missing you?
It's a good, but it's not enough. The only time they care about downvotes is when there is a provably organized effort by a group of people to attack (or support) targeted individuals through voting. The daily, individual abuses of the system have always been altogether ignored.
BTW, this is just the aurora of DEV community... Meaning the upvotes came from here since I posted the links here.
So...we've become an accidental voting ring? o.O
(JK)
Yeah 😆
One thing that SO desperately needs is a way to "update" an answer. The correct (or best-practice) way to center a
<div>
10 years ago is not the best way to do it now. An easy way to accomplish this would be to weigh upvotes based on how recent they are. More recent = more weight. An answer that's been receiving more votes lately should appear nearer the top than an old answer that received more votes a long time ago.They already had that feature. Just some questions were only valid at that time, so that the answer doesn't need to update, just leave them there as a historical reference. Some other questions, if you found an other answer recently, be nice and give your answer. If the question's author is still active, he will update the answer flag. Otherwise, users will upvote your answer when they find it useful for them and moderator will base on that to update the answer flag.
That's why, when searching SO for answers, I always look at the dates, and take that into account. A mechanism automatically downgrading outdated answers will be either very sophisticated, or very inaccurate.
And, regrettably, sometimes we have to keep the code compatible with MSIE...
That's what I've always believed, but that exact proposal was shot down multiple times by the Meta community, to the tune of "We have the RIGHT [waving angry fist] to downvote whomever we want, whenever we want, without having to give an accounting for it." Someone said almost exactly that to me in one such conversation on Meta, minus the angry fist. He got a lot of upvotes on that response, too. That's when I concluded the core SO community actually values downvoting as a harassment tool, and doesn't want to lose that power. Any other use of DVs would fit in nicely with some simple accountability.
As someone whose job description is CEO (as in "responsibilities", not "paycheck), it's not as easy as it sounds. People think management is the easiest thing in the world: like you said, "just hear people," but the difficulty comes when everyone has different views, and they're all shouting over each other...which is exactly what StackOverflow Meta is most of the time.
Running something as big as StackOverflow takes a solid understanding of programmer culture, human psychology and sociology, and communication. None of those subjects are particularly cut-and-dry. You try things, discover they don't work, and then adjust your approach. Over and over.
DEV is amazing, and I've been incredibly blessed to have been involved pretty deeply as a member somewhat early on. I was invited to be one of the first community moderators (an honor I still haven't wrapped my head around), so I've been a part of a number of discussions about site policies. It isn't simple. The tremendous amount of discussion, consideration, and experimentation that has gone into getting DEV to this point is mind-boggling. I have massive respect for @ben, @jess, and @michaeltharrington! Their jobs are not easy.
With all that said, I think the fact StackOverflow got this bad shows that Spolsky and the rest of the leadership missed some major red flags. I don't know why, nor will I try to guess. But I can understand why Spolsky stepped down. He has no idea how to dig them out of the hole they're in, and in fact, doing so may be utterly impossible at this point.
Seems like you and me are using different StackOverflows. I don't see the community "dumping on" questions that "aren't puzzling to an expert". Questions where the greatest puzzle is what the author is actually asking, however, or the "do me homework for me" kind, however... well, that's a different story. Your observation on the comments being "nothing but trash can fire half the time", can be reconciled with my own experience of SO only by introducing the auxiliary theorem: "the Python community is waaay more vicious than the JS community".
As for downvoting - it isn't free (at least on the answers). When I downvote your answer, we both lose rep points. That mechanism in itself discourages downvoting on a whim. I don't get downvotes often, but when I do, it's a rare occurence when I have reasons to think "It's a perfectly valid solution and someone's being a jerk".
Upvoting of the "elite" and downvoting of the "peons" even if their answers are correct? Again, not my observation. I see, however, technically correct answers with negative votes when they're third or fifth copy of the same exact solution. If you're about to post an answer to a question that already has one, yours should bring something original - otherwise, what's the point?
Many a time I saw someone post exactly what I was about to post (and what I'd even started typing) - a little frustrating, yes, but the reasonable thing to do was to click on "Discard", upvote their answer, and move on.
As I said to another commenter, I'm glad you've had a different experience. This is based on about ten years of being a part of that community, as well as the experiences of many people I've mentored and worked with.
As someone who spent a lot of time in the review queues, I regularly flagged to close those sorts of questions. I'm not even remotely referring to those. I'm talking about good, well-structured questions that some of the "cool kids" decided was just "too obvious" (to them) to be worthy of existing, and so they attacked by all means possible. You'll notice in the comments on this article, I'm not the only one who has seen that.
As I already mentioned in another comment, JS is indeed different, partially because you haven't "run out of questions" in that ecosystem yet, and TMTOWTDI is unavoidable. Yet, interestingly, the Python community as a whole all but disavows StackOverflow, both for the rampant inaccuracy and the unhealthy social dynamics.
Meanwhile, I've encountered the same first-hand in relation to C++, C, and ActionScript, not counting the typical patterns of behavior I observed in many other tags through my helping to clear the review queues. At one point, I was spending 1-3 hours a day in the queues. I was actually watching these behaviors become a norm.
When you have tens of thousands of reputation points,
-1
means absolutely nothing. So, in effect, it is free if you're an elite. It only costs something if you have little reputation to spend.Downvoting questions, of course, is always free, so it provides a convenient, anonymous way to harass newcomers. And yes, it happens regularly. I lost count of the "first post" instances I encountered in the queues which were fully qualified as good questions (well structured, clear, not a duplicate), but it was downvoted heavily anyway.
Agreed, but again, not what I'm talking about. What's further, sometimes the non-popular user posts first, but when the elite user comes along and posts the same content, the less-popular user is downvoted. This was something I, again, saw happening more and more via my work in the review queues. That phenomenon was half of the reason I stopped ever trying to answer anything.
So, I'm glad your experience has been better. StackOverflow is a big place, and as I said in my other comment, it's perfectly possible not to notice the bullies on the jungle gym from the swings.
As I agree with part of this, I think you are only complaining and alternative is a joke. I cannot find anything literally on dev.to even now. Amount of questions in the stack overflow is so humongous that it is not even possible that such tool like dev.to can be any alternative. For the argument that you cannot just start on StackOverflow because you loose as a new user is also a false statement. I had start to play with it about 3 years ago, and I just pushed hard on the beginning ( like 3k in the first year), now I have 8k+, not a big thing, but for sure it proves that you can start there and literally help a lot of devs. Also never felt that there are votes for users with better reputation.
Next point, no duplicated questions - this is a problem, but I dont see a way to maintain 1000+ questions like - how to convert number to string in JS.
No Down votes - this is a good point, and I agree, I had this situation few times, that for no reason I was knocked out by some minuses.
Stack has many problems, but they are social not technical ones. Yes, people answer mostly because of gamification, because they want to have nice scores. But this is normal, human are like that, they need some reward for the effort. Sorry I don't believe system without gamification will have any engagement from the community.
You should check out this website called DEV.to. Somehow they have regular engagement from the community without any form of a gamification. :P
(Excuse the sarcasm...that was too hilarious to pass up. You have to admit it's an ironic statement considering.)
I think you're exaggerating quite a bit. While all you describe happens to some extent as expected (many people on the internet are impolite d**** and the SO community is big enough to make matters worse), in my perception it's not as bad, as you describe it to be.
What I personally don't like is that they don't allow for opinion based questions about best practises (e.g. what's the best approach to ...) even though many of those still existing are very popular. I think this is an area, despite all the flaws of a voting system used by humans introduces, the system could really shine.
I'm just describing my own decade of experiences on the platform, combined with the experiences of people I've mentored and helped over the years. It hasn't been pretty, no exaggeration.
Maybe for someone frequenting different tags than I did, it would look different? StackOverflow is certainly big enough that one can't necessarily see all the bullies on the jungle gym from the swings. ;)
You make an interesting point. I mostly spend my time with JavaScript/TypeScript. Maybe it's less bad for those?
You know, that would actually make sense! JavaScript is a very wibbly-wobbly language (so many subtleties), and the frameworks are constantly shifting around, so y'all haven't run out of questions yet. And maybe y'all never will! There's also likely to be more respect for alternative solutions, since There's More Than One Way To Do It (because everyone is using a different stack).
I spent a lot of time in C++, C, Python, and ActionScript 3.0, among others. The problem definitely seems more acute over there.
A troll is someone who breaks site rules habitually, often just for the sheer thrill of doing so. A sockpuppet is a fake account created with the express purpose of bypassing a ban or performing malicious actions repeatedly. Serious trolls often create multiple sockpuppet accounts.
Also, a greenhorn is a newbie.
You forget, Spolsky and Atwood were having fun too. They didn't want war, they wanted a healthy, fun, vibrant community. But they failed to recognize that if they automatically linked "smart" and "powerful" in this industry, they'd wind up with all the antisocial egotists having the moderator tools. They forgot everything Weinberg ever taught us!
You can have fun, but that doesn't nullify the fact you're still doing hard work. It's not a matter of complaining. Coding is hard, but I love it. Making a decent apple pie is hard, but I love it (just made one this afternoon). To pretend it's easy doesn't help anyone. Everything is easy to the person who isn't doing it.
I think @ben and @jess would say that, yes, running DEV is hard work. Nothing saying it isn't fun most of the time.
reputation is a tool trying to address low quality inputs
but most of time it also punishes hard newbies to same levels as grieffers
in the end, creating some kind of closed "circle-jerking" communities
for that aspect, it is not specific to stackoverflow
but that sad because thoses issues are 20 years old... ^
One might argue that's a major reason why Reddit is what it is.
That's why I'd like to see ranked-choice upvoting instead of typical upvote/downvote. You can pick one best answer, one second best, etc, and anything that isn't correct or useful, you just don't vote on at all! (And then use flags for objectively bad content.)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.