“The decline of Stack Overflow” is now trending on Reddit, and I started this post as a comment in the thread, but it got too long.
I’m in the 0.01% (which means rank #34) but I haven’t contributed almost anything in the past four years. Why I stopped is maybe part of the explanation why “the decline of Stack Overflow” isn’t actually happening.
The mentioned article describes the experience of a new user as horrible – you can’t easily ask a question without having it downvoted, marked as duplicate, or commented on in a negative way. The overall opinion (of the article and the Reddit thread) seems to be that SO “the elite” (the moderators) has become too self-important and are acting on a whim for an alleged “purity” of the site.
But that’s not how I see it, even though I haven’t been active since “the good old days.” This Hacker news comment put it very well:
StackOverflow is a machine designed to do one thing: make it so that, for any given programming question, you will get a search engine hit on their site and find a good answer quickly. And see some ads.
That’s really it. Everything it does is geared toward that, and it does it quite well.
I have lots of SO points. A lot of them have come from answering common, basic questions. If you think points exist to prove merit, that’s bad. But if you think points exist to show “this person makes the kind of content that brings programmers to our site and makes them happy,” it’s good. The latter is their intent.
So, why I stopped contributing? There were too many repeating questions/themes, poorly-worded, too many “homework” questions, and too few meaningful, thought-provoking questions. I’ve always said that I answer Stack Overflow questions not because I know all the answers, but because I know a little more about the subject than the person asking. And those seemed to give way (in terms of percentage) to “null pointer exception”, “how to fix this [40 lines pasted] code”, and “Is it better to have X than Y [in a context that only I know and I’m not telling you]”. (And here’s why I don’t agree that “it’s too hard to provide an answer on time.” If it’s not one of the “obvious” questions, you have plenty of time to provide an answer.)
And if we get back to the HN quote – the purpose of the site is to provide answers to questions. If the questions are already answered (and practically all of the basic ones are), you should have found the answer, rather than asking it again. Because of that maybe someone's non-trivial questions get mistaken for “oh, not another null pointer exception”, in which cases I’ve been actively pointing out that this is the case and voting to reopen. But that’s rare. All the examples in the “the decline of Stack Overflow” article and in the Reddit thread are, I believe, edge cases (and one is a possible “homework question.”) Maybe these “edge cases” are now more prevalent than when I was active, but I think the majority of the new questions are still coming from people too lazy to Google one or two different wordings of their problem. Which is why I even summarized the basic steps for finding a problem before asking on SO.
So I wouldn’t say the moderators are self-made tyrants that are hostile to anyone new. They just have a knee-jerk reaction when they see yet-another-duplicate-or-homework-or-subjective question.
And that’s not simply for the sake of purity – the purpose of the site is to provide answers. If the same question exists in 15 variations, you may not find the best answer (it has happened to me – I find three questions that for some reason aren’t marked as duplicate – one contains just a few bad answers, and the other one has the solution. If Google happens to place the former on top, one may think it’s actually a hard question.)
There are always “the trolls” of course – I have been serially downvoted (so all questions about serial downvoting are duplicates), I have had even personal trolls that write comments on all my recent answers. But… that’s the internet. And those get filtered quickly, no need to get offended or think that “the community is too hostile.”
In the past week, I’ve been doing a Wordpress plugin as a side project. I haven’t programmed in PHP in 4 years and I’ve never written a Wordpress plugin. I had a lot of questions, but guess what – all of them were already answered, either on SO, or in the documentation, or in some blog post. We shouldn’t assume our question is unique and rush to asking it.
On the other hand, even the simplest questions are not closed just because they are simple. One of my favorite examples is the question whether you need a null check before calling an instanceof. My answer is number two, with a sarcastic comment that this could be tested in an IDE for a minute. And a very good comment points out that it takes less than that to get the answer on SO.
It may seem that most of the questions are already answered now. And that’s probably true for the general questions, for the popular technologies. Fortunately, our industry is not static and there are new things all the time, so StackOverflow is going to serve those.
It’s probably a good idea to have different rules/thresholds for popular tags (technologies) and less popular ones. If there’s a way to differentiate trivial from non-trivial questions, answers to the non-trivial ones could be rewarded with more reputation. But I don’t think radical changes are needed. It is inevitable that after a certain “saturation point” there will be fewer contributors and more readers.
- I stopped contributing because it wasn’t that challenging anymore and there are too many similar, easy questions.
- StackOverflow is not declining, it is serving its purpose quite well.
- Mods are not evil jerks that just hate you for not knowing something.
- StackOverflow is a little more boring for contributors now than it was before (which is why I gradually stopped answering), simply because most of the general questions have already been answered. The niche ones and the ones about new technologies remain, though.