The Stack Overflow Age
joelonsoftware.comSO is definitely a force, but I feel its usefulness has faded from inattention to the user experience and use cases. For example:
#1. There's a huge "homework problem" (narrow, specific questions that aren't broadly useful). Consider flagging homework as homework (and excluding it from searches), trying to divert questioners to other resources before their question is posted ("this looks like homework..."), and more thinking about ways to codify the use case. I'd gladly help with homework if there were tools focused on that (e.g. ability to comment on specific lines of code -- Gooogle Docs for posted source code, etc.)
#2. There are oddly subjective editorial decisions, such as closing my question about an API for generating USPS priority mail labels as "off topic": https://stackoverflow.com/questions/5690713/how-to-programma...
(My view: "is there any API for doing X" is no different than "is there any method/function for doing X", it's a question of existence, not opinion. But even then, opinions are often very useful!)
#3. The best answer is often buried under the "accepted" answer. Over time, highly upvoted answers should drift to the top.
#4. There should be explicit UI support for flagging stale/out-of-date information. SO has a long tail of information now, and much of it is dated. It should be super easy to note and see that.
[2] isn't an example of "subjective editorial decisions"; your question was off-topic because 'recommendation' questions are prohibited. For that tho, there's a Stack Exchange sister site:
- [Software Recommendations Stack Exchange](https://softwarerecs.stackexchange.com/)
I don't like that 'decision', i.e. to not allow recommendations, but I understand the reasoning behind it, that recommendation questions are basically polls. [But isn't everything on which people can vote basically a poll too? Obviously yes in my opinion.]
I never understood it, either. By that reasoning, almost any technical question is an "opinion" question asking for a "recommendation".
For example, pretty much any question about C string handling has many possible answers, e.g., [1] admits that comparing two strings is "rather broad" and the various answers there recommend looping over each index and comparing chars with ==, sscanf, strncmp, regexes, and PEGs. Opinions galore!
But if you want to know the difference between AWS EC2 and EB [2], even though there's one pretty clear answer, somehow the admins unanimously find the question to be "primarily opinion-based".
[1]: https://stackoverflow.com/questions/16013031 [2]: https://stackoverflow.com/questions/25956193
My hunch is that due to the desire for longevity of content, there's a large unspoken bias in favor of questions about simple programs, and against questions about remote services (which are more likely to disappear or change, even though that's not likely to happen with major AWS services), and that the question closure explanations like "primarily opinion-based" are just a smokescreen.
Also there seems to be no problem with users who submit opinions instead of answers.
Q: How do I do X extremely specific thing that I need because I have an unusual case that needs this specific thing.
A (top voted): Why would you want to do X? You shouldn't do that. I clearly know more about your problem than you do because I assume everyone on here is a college student and not a developer working with a large mostly static codebase. You should do Y instead. It is much better.
I find this disingenuous. It is a very common scenario that a new user knows of some way to solve some part of their question (or just thinks they do), and assumes the best/easiest/fastest/safest/whatever answer involves using that technique. This is exactly the scenario that Alex Papadimoulis referred to in his blog post[1] that I have to believe was the inspiration for his site The Daily WTF[2]:
> "A client has asked me to build and install a custom shelving system. I'm at the point where I need to nail it, but I'm not sure what to use to pound the nails in. Should I use an old shoe or a glass bottle?" >...[potential answers] >b) There is something fundamentally wrong with the way you are building; you need to use real tools.
The answerer is often telling the person, what you are trying to do sounds like a really bad/inefficient/ineffective/whatever solution. The common way to solve this is Y because of reasons A, B, and C. Are you doing something where those reasons are not a concern?
[1] https://weblogs.asp.net/alex_papadimoulis/408925 [2] http://thedailywtf.com
I have no problem with alternate solutions, but for gods sake, at least answer the original question as well.
This seems to be a common thing across all online support communities, even ones where the software company has outsourced support to their community. I'd love to see a solution to it, as it makes discussions incredibly frustrating to read.
I have a solution. If a user repeatedly does that without also providing a solution to the original question then ban them.
In the world of “stack overflow is unfriendly to new users”, banning a person providing an answer that other people have found helpful seems to be a suggestion that would take SO in the direction of yahoo answers.
Stack Overflow’s approach appears to be all answers are acceptable. This isn’t just for the person who asked the question but everyone else too.
If a person is not providing good answers and people are down voting those poor answers, there is an automatic answer ban in place... but that requires people to down vote poor answers.
No. SO absolutely can be opinionated about what constitutes a good and a bad answer. SO's job is to get to the right and most helpful answer fast. You can't always rely on the community to root out bad actors.
The mechanism that SO uses for sorting answers is community votes. That poor or incorrect answers get up votes is a problem. SO only has its community to do that sorting. The corporate and diamond mods have specifically stepped away from doing this except in the most egregious and disruptive cases.
Be the change you want to see in the world. Downvote bad answers. Upvote good ones.
I get what you're saying about their 'decision' to prohibit 'recommendation' questions, but my point is that it doesn't make any sense. It's a distinction without a difference, as many, many questions on the site are 'recommendations' or 'how do I':
https://stackoverflow.com/questions/1942298/wrapping-a-c-lib...
https://stackoverflow.com/questions/127803/how-to-parse-an-i...
https://stackoverflow.com/questions/1006289/how-to-find-out-...
..etc..
I don't understand why "how to generate a USPS label" (my question) is different than any of the above examples.
Do you have any examples of such questions asked in the past... let’s say four years?
The problem with recommendation questions is that they are very time consuming to keep curated and useful. You’ll inevitably have 50 answers of which 20 are duplicates and difficult to delete because of up votes on them.
The community moderation for “just close them quickly” is much less than the community moderation necessary to curate them.
Anyways, https://www.slant.co is set up to do recommendations better than stack overflow could conceivably do. Not all questions are best asked on stack overflow.
Examples of questions about the existence of API and library functionality in the past four years? (with recommendation answers) Sure:
https://stackoverflow.com/questions/46718944/facebook-graph-...
https://stackoverflow.com/questions/7120806/skype-python-api
https://stackoverflow.com/questions/34010978/elasticsearch-h...
https://stackoverflow.com/questions/26305704/python-mixed-in...
https://stackoverflow.com/questions/49524937/fast-bipartite-...
... etc ...
I get the idea of avoiding "what's the best programming language?"-type questions, but to the point of my original comment, the application of the policy feels very uneven and therefore "oddly subjective".
The application of the policy depends on people with moderation abilities seeing it. The first link for example has only been seen about 50 times a month for the past 5 months.
The Skype question is a bit older Its actually 6 years older and has only been seen on average 100 times a month. The answer is "yes, look at [broken link], and [obsolete python library at source forge]". It needs some curation. Are you up to doing it? The other answer says that the answer was action in 2011... and compares it to using IE5.
The fourth link (python mixed integer linear programming) is interesting in that its three and a half years old, has only one answer and has been updated in the past 5 days. The author of that answer has done almost 20 revisions keeping it up to date since then. This is the work that needs to be done on posts to keep it useful and relevant.
Compare with the second answer to Elasticsearch HTTP API or python API:
> You may also try elasticsearch_dsl it is a high level wraper of elasticsearch.
Thats it. A lot more work is going to need to be done to that post to make it useful. That said, this isn't a "does this exist" question its a "Which technique is better for my occasion? The elasticsearch RESTful API or the python API for elastic search (elasticsearch-py)?"
The Fast bipartite matching actually matches that criteria.
The point I'm trying to make is that it takes a lot of work to keep the good questions of this sort good and useful. Otherwise, they end up like the Skype question and become worse than useless in that they make it harder to find the answer on other sources.
The entire Stackexchange network, in my opinion, suffers badly from fragmentation into hyper-specific Q&A sites. Why software recommendations do not fall under the Superuser purview is beyond me.
Super user has difficulty with recommendations too. The effort upon the community to curate the content on a large site takes a very dedicated team. Past efforts to have such failed and the curation of the question dropped off along with its quality.
Moving software recommendations to its own site allowed a community to form there that was engaged with that curation.
That said, I believe the SO engine fails spectacularly with recommendations. I find https://slant.co to be a better resource that has its engine dedicated to recommendations (rather than Q&A).
I have never heard of Software Recommendations Stack Exchange, and I've been frustrated for years by how many useful recommendation questions I come across that are closed. They should put a link to Software Recommendations Stack Exchange on questions that are closed for that reason.
Software recommendations has a very small community. If even a small fraction of the questions that get closed as recommendation each day re-asked their question there the 9 questions a day they currently get would get lost in noise. Give [this meta post](https://softwarerecs.meta.stackexchange.com/a/762) a read.
Thank you for showing me where this had been discussed before!
On #3 and #4 I had what I believed to be some reasonable conceptions to formulate parameters for a discussion, here: https://meta.stackexchange.com/questions/71522
Basically I suggest dividing the questions into categories of:
1. Timeless: Questions with a timeless best answer, which is unlikely to be improved or updated in the future;
2. Revolving: Questions with a "best answer" today but in the future there will be a "better answer"; and
3. Wiki: Questions that are constantly being improved and updated.
Among a few other notions.
Insofar as it was a problem of interest when I wrote it in 2010, it's only become a more prominent issue since.
Questions should never be closed on a site that has a voting system. Completely defeats the purpose of both options. There is nothing wrong with asking a similar question to another or posting answers that are similar to others. People learn in different manners, sometimes it might take a person to read the same question (but a little different) a few different times before they can grasp the concept. It's meant to be a forum to help people, not rewrite the manual on a programming language. If there was only one way people should literally just RTM.
'Closing' isn't a big deal really. There isn't anything wrong with asking a similar question, but if it's effectively a duplicate then it's helpful to consolidate the answers in 'one place' (one question).
> It's meant to be a forum to help people, not rewrite the manual on a programming language. If there was only one way people should literally just RTM.
Actually, it's not meant to be a forum. It's meant to be more like a manual, the manual that no one has written (because the SO manual [potentially] covers everything, not just one product or package or library).
> Actually, it's not meant to be a forum. It's meant to be more like a manual
It's meant to be a question and answers site, if they want it to be a reproduction of the manual they should just link to the actual manuals. I feel it completely defeats the purpose of having a community to help others if it's not meant to be forum-esque.
if it's effectively a duplicate then it's helpful to consolidate the answers in 'one place'
To do this, they've already got the tech to identify similar questions. They should just leave all the variations of the question open, and have a prominent "Similar Questions" list displayed for all of them. That would encourage question titles that express what makes them distinct from similar questions, and give people the option of finding the most appropriate variant and getting an answer for that specific variant.
The existing system, a question that is closed as a duplicate automatically redirects users who aren't logged in (most users are anonymous google users) to the question that is the duplicate target. All of the questions that target that duplicate or mention it in another post are listed in the 'linked questions' on the sidebar.
If it truly is not a duplicate question, then it should not be closed as a duplicate. However, many people asking new questions either don't search or are unaware that their question actually is that other question.
Leaving a question open doesn't help any of the google users and instead makes it harder to find the canonical answer to the question as little tidbits of information are scattered around.
If the canonical duplicate target is insufficient in answering the question, add an answer to it that does a better job than the other answers.
This is covered by multiple answers to the same question and being able to ask for clarification.
Duplicates actually make it harder to find answers, now I have to go to 10 pages to find the different answers instead of the different answers to the same question all being on one page.
If the questions are significantly different enough they'll end up having their own page. SO isn't meant to be used like other forums, and if you need more help to figure out what you don't know you can jump in the Stack Overflow chat or go to another site like Quora or other forums.
I disagree. A user who does not understand an answer to a question they have can easily ask for clarification without reposting the same question again (even if reworded). If they see a question they do not understand, they can ask for clarification in order to determine if the question they found is similar to the one they have. These are basic skills that prove useful in a variety of situations where you may want to seek assistance.
By encouraging post duplication, you will quickly burn out folks who want to be helpful. I certainly would not want to answer 1000 questions that are essentially 1 question reworded 1000 times, would you?
> A user who does not understand an answer to a question they have can easily ask for clarification without reposting the same question again
Often times people just starting to learn or are new to a subject matter dont know what they dont know. So they might simply not have the capacity to realize they are asking a similar question or that an answer to another question will suit their needs. I feel its more beneficial to allow these people to ask their questions with the limited expanse of knowledge they have and use it to learn. Hopefully as a result will one day return the favor. The system now shuns these people and they never return or help and end up disliking the community.
>By encouraging post duplication, you will quickly burn out folks who want to be helpful
This is what the voting system is for. Any system that places a ranking level on votes should filter this out easily. There is nothing that says you have to answer a question just because you know the answer. Just vote and move on to keep yourself from burning out.
I also noticed that simple questions somehow get higher popularity. If you ask something very specific to your problem, chances are this question won't be answered and also will be downvoted. So people rather answer "how to find an object in JS array" rather than "I have this weird error in X library, how to fix it?". But in my opinion, basic stuff is not what you face with in everyday job. It's all these unexpected errors, bugs and lack of documentation, what makes you Google it. In this sense, GitHub Issues does a better job than SO.
I have never seen GitHub Issues in a search result. It seems like it is for bug reporting in personal projects. Why would it help with other people's errors?
Did you ever find a solution for USPS labels?
I used to use Endicia.
Stack Overflow is useful at times, and frustrating at others.
If you have basically no idea what you're doing, or just want an example for something, it can be great.
On the other hand, if you try to find an answer about something you're really knowledgeable about, the result is often unsatisfactory:
Like trying to find the reference documentation to answer some specific question, and the documentation is buried under a lot of SO questions (that usually don't answer that question).[1]
Or you find someone who asked exactly the question you're looking for an answer to, but it either: has no answer, despite being very old, or has been closed due to being "not constructive" or "off topic".
[1]: While I generally prefer the in-language documentation, e.g. Python's integrated documentation is often missing notices (deprecation notices, warnings about illogical behaviour, ...) that exist in the web version.
Yes, once you start asking _really_ difficult questions that require in-depth knowledge of a niche topic to answer SO becomes less useful, since the pool of people who know enough to actually answer your question is too small.
In cases like that I usually just end up answering my own question later, after I've figured it out by other means.
This is actually one of the use cases I really like. I'll often deliberately add a question with an answer if I think it is something I'll use again in future and is not found somewhere else obvious on the web.
You can often find the people more knowledgable on a particular subject in one of the other stack exchange sites. (For example, a problem with OpenGL or Unity might be better asked on gamedev.stackexchange.com, or computergraphics.stackexchange.com.)
The really in depth stuff tends to be blogged about - SO should really have a team of sockpuppet writers who pose questions and then also post summary answers with links back to the blog posts.
> Or you find someone who asked exactly the question you're looking for an answer to, but it either: has no answer, despite being very old
“Who were you, DenverCoder9? What did you see?!”
You should really link to the actual cartoon page instead of just the image. Not only do you get links to the rest of the site but the hover text is almost always worth seeing.
It's interesting to see all the negative comments about the SO culture here. I just hadn't really noticed it but maybe it is a problem for beginners. I generally find what I'm looking for and when I post a question I try to research first to avoid spam. Isn't that how it's supposed to work?
I cannot help but read "beginners" in a derogatory tone. Or at the very least a way to hand-wave away the unhealthy atmosphere that has formed at SO.
It is definitely a problem for people with low SO Reputation since others can come along and edit their posts completely changing the context and meaning, and seem more brave to bully low rep users (e.g. delete/dup their posts).
I have fairly high SO Rep from way-back-when, and all I seem to use that for is undoing others abusive mod actions (like de-dupping something that points to a completely different programming language or framework). But it isn't a community I care to take part in much these days, too toxic.
Back in my day SO existed exactly to help beginners. Now they want to be "the Wikipedia of programming questions." So be it, but none of us have to stick around to help form their little out of date empire of desert.
> the Wikipedia of programming questions
That's a pretty good way of putting it. But... wasn't that what it was always about? The original article says:
> So we decided to optimize everything to be useful for the thousands, not the individual. We literally have 1000 visitors for every person who asks a question. That’s why we sort the answers by votes. It’s also why we optimize for questions and answers that will be helpful to other people, later.
StackOverflow isn't optimized for the people asking questions, it's optimized for the thousands of people arriving at the question later from Google.
For my last two jobs, I've created a new SO account for that job. I'm a pretty experienced user with decent reputation on my main account. I think I'm a pretty good question writer. I do my research beforehand, pay attention to niceties like formatting and grammar, and try to provide the right amount of context.
My first couple questions almost immediately get downvoted without explanation. Comparable questions from my main account rarely if ever face this prejudice. If I sign in on my main account and reverse the mystery downvotes, I'm usually good from that point on.
I feel a little dirty doing it. Other the hand, WTF is wrong with some of these SO users?
I work with few young developers and students who have reported similar issues. On my teams, I often encourage devs to share their questions once their posted just so we can counter this kind of crap and, if they're new, they can actually scrounge enough reputation to do basic stuff like upvote questions and answers.
That said, I'm a huge fan of the site and all the thought that has gone into the interface. And it looks like admins are doing they're best to deal with this issue. It seems like one of those eternal struggles against human nature.
> If I sign in on my main account and reverse the mystery downvotes, I'm usually good from that point on.
That’s the type of thing that will get that account deleted for vote fraud and sock puppetry. At that point, all of the votes it cast will be invalidated and all of the people you’ve tried to help by casting upvotes on their questions in the effort to be nice will lose those votes and that rep.
That will leave a sour taste for many developers and will probably turn many of them away.
Great experiment, that helps further the discussion and I hope Joel and Jeff see this. What you're finding is a real concern and of course we see it in discussion forums in general but I was hoping the SO community would be better.
So uh would you mind quantifying what "decent" rep means to you? This feels like something that is quite subjective. 5k, 10k, 50k?
Beginner was not meant derogatory, I just meant that as the phase of starting to learn something. The types of questions are different at that stage. Also, after learning a few different languages or libraries it's probably easier to ask questions that don't get moderated out even if someone is a beginner in that new language. I don't know much Java but a lot of C# and C++ so I can probably ask a Java question that doesn't displease attention of overzealous moderators.
Your point about how SO has changed is good, the early days definitely felt different but making the huge amount of questions usable does call for a slightly different approach.
Glad to hear some high-rep users are trying to balance out the modding behavior, thanks for that.
I spent about 3 days contributing answers to SO before encountering some real pricks who live on that site and are on the offensive to get every reputation point they can. Snide comments and downvotes from these assholes has caused me to avoid contributing to the site even though I sometimes end up there occasionally for answers.
Also I've found that as I've become a better programmer, I spend way less time on sites like SO and more time reading actual documentation.
The problem is, helping beginners can be dangerous to an online community. New users are the main vector for spreading the Eternal September effect, while they're necessary to the life of a community, they also inevitably hasten its intellectual and cultural demise. At some point, if a community wants to maintain a high standard of quality, it has to start being hostile to newcomers. Sometimes you have to tell them to GTFO and RTFM.
> when I post a question I try to research first to avoid spam. Isn't that how it's supposed to work?
That's exactly how it's supposed to work. Demonstrating some effort to solve your problem goes a heck of a long way.
It absolutely is. I've always had positive experiences research and asking questions in SO. You just need to put a little bit of effort into the question and it will be fine
If everyone did that then some of these problems wouldn't be an issue. Unfortunately ...
>Instead of putting all the Java programmers in one little forum and all the C++ programmers in another, we dumped everyone together and just let them tag their questions
And yet for some reason the site can't handle off-topic and pure "answerable by fact" questions on one site? So often I search for something and the top post is an closed off-topic post on SO. I've never even had one of my own SO questions closed as off-topic so it's not a personal grudge - I just think the site is very stubborn about this. So many questions and organic search results is a huge signal that they are ignoring.
It's not like they're running a forum were the first page would be polluted with off topic stuff if they allowed it. Their fear of becoming yahoo Q&A has prevented them from filling a need that is there. Often I just want to people's opinions on stuff - that's mostly why I read HN.
> In the early days of the Internet, before the Web, there was a system called Usenet which created primitive online discussion forums.
I wouldn't call Usenet groups 'primitive online discussion forums'; indeed, I rather strongly believe that in most respects Usenet was better & more advanced than current technologies.
It was fast. How fast? Really, really fast: every article was already sitting on your local system, so there was no network lag (or just LAN lag, if your local system was on a network). Articles were plain ASCII text: no ads, no images, no JavaScript. The combination of local articles & small articles wins over web pages every day of the week.
It was easy to find stuff. While the system was distributed across the world, there was a nice, neat hierarchy. This wins over the Web, which needs a service like Google to be usable. If one wanted to, one could perform full-text search over the entire newsfeed in realtime (James 'Kibo" Parry was famous for this). Imagine being able to grep the Internet!
It was decentralised: you could get multiple newsfeeds from multiple sources. You could have site-local newsgroups if you wanted to, or just share certain groups with your peers.
It had killfiles. It's hard to express, nowadays, how valuable these were. And you were in control, not some unaccountable moderator.
A 21st-century version of Usenet, with encryption, authentication & Unicode, and capable of scaling up to 7 billion people, would be just awesome.
Web forums are a primitive version of Usenet.
It was "fast" in the sense you refer to as because it was batshit: every ISP and Usenet provider was forced to keep a copy of every public message everybody was reading. In its heyday, running a market-competitive Usenet server strained commercial storage technology (running an actually-competitive Usenet server required custom software engineering), and that was with a userbase a fraction of the size of Reddit.
Of course, it was incredibly slow in a more important sense: the latency with which you'd see responses to your messages. Your reply had to propagate through the network of Usenet peering relationships before your counterparty could see it. Contrast that to "primitive" web message boards, where that propagation is instantaneous.
But, most importantly: because everyone was keeping a replicated log of everything anyone had ever sent, almost nobody had archives. The only way to read old forum messages was to... wait for it... go to a web application like DejaNews.
Software piracy killed Usenet --- binaries made it impossible for a typical provider (of any sort) to provide full-feed Usenet, which is what customers demanded, and so everyone gradually migrated to centralized providers. But even if that hadn't happened, Reddit would have killed Usenet eventually.
(I ran a Freenix-ranked Usenet server in the 1990s for a mid-sized regional ISP, in part by independently inventing the INN history cache; my love for NNTP is deep and real.)
I think there's some rose-coloured reviewing going on here.
> It was fast [...] easy [...] you were in control [etc.]
Not that I recall. It was slow, and could take from hours (local organisation or same city) to days (rest of the world) for an article to be propagated on Usenet. Yes, it was all cached locally, but often systems would download new articles only once a day, often at night when bandwidth (scarce and expensive, costing 'hundreds, if not thousands of dollars' as the rn warning went) was available. Conversations didn't take place in anything near real-time, but over days.
It didn't have history, or archives, either. Binary newsgroups would be kept for days only (due to their size) while the 'alt' hierarchy was kept for longer and the 'big 7' longest (eventually multiple years, but originally only months, causing the loss of many early Usenet postings that were never archived.)
As for moderation and accountability, moderated newsgroups were controlled by people who could choose whether or not to accept articles, and the creation of a new group, even in the 'alt' hierarchy was at the whim of some news administrator, while the 'big 7' required the 'Usenet Cabal' to agree, after a voting process that while democratic was complex and confusing.
Actually getting access to a group required your local news administrator to decide whether it was worth the disk space and bandwidth, so there was no guarantee that you would see every group or message.
As for full-text search over the entire newsfeed, Kibo was famous for this because it was rare. Searching news was difficult and time and compute resource hungry; most people did not have the resources to accomplish this.
The Web is a "version of Usenet, with encryption, authentication & Unicode, and capable of scaling up to 7 billion people" plus interactivity, colour, images, video, hypertext, programmable extensibility, you name it...
Usenet was lightyears ahead of any web forum I have seen so far! Decentralized, independent, and offering reader software that still has no match in the world of WWW forums. I have downloaded news batches at 1200 baud and would still want to do this to get those advantages back!
Since the web forums have taken over, I have no place to go any longer, except for HN, but even this feels like a drag compared to the elegance of Usenet.
Good to see Joel is blogging a bit more these days. I know a lot of people disagree with a lot of what he says, but he always has points of view worth discussing, in my opinion.
I think it's really weird that right now both Joel Spolsky and Steve Yegge started blogging again. Maybe we're about to hit the apocalypse
It's too bad the culture of SO turned out the way it did. I was eager and happy to use it early on but was quickly disillusioned and it's my last resort to turn to if I have questions these days.
From a "lurker" perspective who often stumbles on SO after a web search it's really a great resource.
On the other hand I never actually contributed anything to the website... because it won't let me. One day I stumbled upon a question regarding some problem I had, the accepted answer had a C code snippet that contained an error. I thought I'd be a good netizen and decided to create an account to submit a correction. It turns out that it wouldn't let me make an edit that was less than 6 character long (why? It was just a one character typo). So I decided to add a comment pointing it out, hoping that somebody would be able to fix it for me. You can't comment without a certain reputation threshold.
So basically if I get it right if you have a new account you can only ask questions or answer them. Except if like me you only end up on SO from your search engine and generally end up on already-answered questions (or questions you don't know the answer to since you're looking for them) then there's nothing for you to do. I'm sure they must have done a lot of testing to end up with this system but it basically means that I'll probably never contribute anything to their website.
> I'm sure they must have done a lot of testing to end up with this system but it basically means that I'll probably never contribute anything to their website.
I think it's really more that it just ended-up like that. It is sad that everyone 'can't' contribute, but that's okay really. Not everyone should be contributing.
But I suspect you could contribute. You mention finding questions to which you don't know the answer. Surely, for some of those questions at least, you later found an answer elsewhere. When you do, go back to the question and add an answer based on what you learned.
It's also perfectly acceptable (and commendable) to just add an answer that's a little bit better than the existing answers. Hell, just combining two or more answers into a single (comprehensible) answer is a relatively easy way to contribute (and help others).
If I recall, there are actually a number of things you can do to get rep besides questions and answers. You can edit a post (with more than 6 characters), you can do a review, you can flag a post for moderator attention, and I think even your first up-vote gives you a point or two. (Some of those might award badges instead - it's been a long time and the rules sometimes change.)
I feel like SO can't win no matter what it does. It has some limits, like requiring at least 6 characters before an edit is deemed useful to stop it from becoming a breeding ground for "grammar nazis" and other similar types. If they didn't do that, people would complain it's overrun with grammar nazis who don't focus on the actual code being posted. Damned if they do, damned if they don't.
Neither review, flag, nor vote give reputation.
The only ways to get reputation is to create content that gets up votes or do edits that improve the post.
This has been an exact summary of my experience with SO. Extremely useful when searching for things. Difficult to get started contributing to.
The thresholds for unlocking privileges are there to filter out offensive trolls and other drains on the community. This can be a bit annoying since it applies separately to every subdomain and I can't be bothered to build up rep in every place that I might want to make an occasional comment.
Once you have sufficient rep on one site, you get 100 rep on all sites which is enough to comment everywhere.
The +100 that you get for signing up on a new subdomain is supposed to get you over that hump. But I don't remember how much rep you need to get the signup bonus.
This is why I always vote in moderator elections for those who make a point of being kind to new people, or are still new themselves. Not the rookies who have nothing to say in the "why me" section and don't even have access to the moderator tools which you get at 10k rep, but a balance.
Most of the community seems to be aware of the issue when prompted, but most times when I see moderation happening, it's not as friendly as one might hope... I always try to provide helpful pointers and comments for the author, if I happen to notice it in time.
Unfriendly/ rude moderation is what happens when the tools in place to try to keep the site’s content in alignment with the person’s vision fail.
Not enough votes. Not enough time. Poor filters. Too low a barrier to post a new question.
People then turn to social tools. Rudeness ensues.
An open question is what is the vision of the site... and there are probably many of them.
The perception of a culture problem on SO seems quite strong with a few people here. I'm sure bad things happen but it always seemed a) fairly rare and b) a price worth paying.... Without it, it would be like the Qlikview forums in no time! ;-)
This is the thing. The vast majority of (sane) users likely get on just fine without complaint. It's usually a noisy minority of folks who vocalise their grievances, especially when the rules of the site won't fit their world view of how they think the site should work.
I've been a user on the site (and once upon a time a diamond mod) since the closed beta (userid < 500). Sure I've had my ups and downs and haven't always agreed with the way some things work. But at the end of the day I still think SO and the SE network is hugely useful for getting answers to questions on stuff I'm pottering about with.
It is more an issue of who people think the site is for.
There's two big camps, those who feel that SO is for everyone, and those who think they're creating a reference encyclopedia. The encyclopedia crowd won the war, and those of us who just wanted SO as a place anyone and everyone could go and ask a question without getting bludgeoned to death by high karma users have moved on.
This has resulted in a lot of questions going unasked and SO is gradually getting stale, and a general toxic element gaining more and more power within the community. It used to be that you had to take part in SO to understand how unhealthy it was, now that is leaking onto Google results.
"No question is silly" on SO is "All questions are silly."
I always wonder if people that complain about SO being nasty missed out on the shitshow that was programming forums before the current era. I recall some monumental flamewars back in the day on various sites I used to frequent.
Oh yeah, definitely. Especially on Usenet. You'd get flamed for asking a "stupid" question. You'd get flamed for using a "stupid" technology. You'd get flamed for doing things the way you did them, even if they worked just fine. I recall it mostly being constant flaming and hazing.
But at least on Usenet you had the chance to ask 'stupid’ questions, and repeatedly, compared to having them close as off-topic or belonging on obscure-niche.stackoverflow.com
What's so bad about the culture? I've never had any problem there.
Please note that I've answered a bunch of question, but only on a tag with not a lot of frequentation.
On some of the high traffic tags (Java, C++, Python) there are a few high rep users that will swoop in on any basic-level question within seconds and close as duplicate/off-topic/too-broad, etc. So on the one hand it is not very newbie or tutorial friendly, but on the other hand, it clears away those kinds of questions to make room for more difficult questions that may not have a good answer on SO yet.
Even still, most newbie questions do get some degree of help from empathetic users in the comments.
Thanks for noticing. Even when I vote to close a question, I try to leave something helpful behind.
Ok. Since, as I've said I'm not following high traffic tags, I've never experienced that.
Same, and the problem is that the "mods" enforce that culture instead of fighting it, making it worse and worse over time.
I am in this same frame of mind. When I started out in development I quickly found how unwelcome my questions were. The thing these mods and many other higher rep users are forgetting about is that to the new person these not a dumb duplicate questions. If a clearly new dev(and if you are not new yourself you can tell a new dev from a mid or senior level) asks a question that is truly a duplicate in every way, a little good faith that they do not know what they do not know to the level that they did not realize I think is not to much to ask. Apparently for some of these higher rep people it is.
Further if it is actually a duplicate what harm is there to leaving it open with a link to another question that has an answer? How many times have you looked at multiple SO questions and answers to piece together something that fits your very specific use case? For me it happens that way more often then not.
A few months ago I wanted to learn jq really well but unfortunately I didn't really know where to start and couldn't find much of what I would call well written documentation so I decided to train myself by contributing an answer to every reasonable jq question on StackOverflow.
I found many of the newbie restrictions off-putting and if I wasn't there with the specific goal in mind to improve my own skills by helping others with their real problems I probably would have just left immediately like I'm sure many others have. Getting involved in the pettiness of the self-appointed there isn't worth the time.
I stopped contributing when my free time evaporated after changing jobs. I might go back to StackOverflow when things settle down but I feel like I know jq well enough now, my experiment has run its course and for me to learn more I'm going to have to spend some time working on the jq internals and going into deeper questions then SO can handle.
And, also: we’re just a few weeks away from launching Stack Overflow Teams, the biggest upgrade to Stack Overflow ever, so that’s going to be really cool.
Ah that explains firing up the old blog editor again content marketing ftw!
Reading this thread makes it feel like stackoverflow has become the new PHP. You can't even say something positive about it before hell breaks loose.
It is really really useful. Actually it is indispensable. It got so many things right, just think about the world before Stackoverflow.
But the few things it gets wrong, people make it seems like it breaks everything else. Yes, it sucks. Most of the time I can't find an answer, I am frustrated. When i ask on Stackoverflow and the question gets closed or just marked as duplicate, i get even more frustrated.
Does it mean it sucks as a whole? Hell no. We gotta be grateful for the good part, and help fix the bad parts.
SO sucks for the most part. I've certainly given up on it. It's certainly not that I think I could do a better job. Managing such a large community is more than likely a losing game. It's only going to get worse, I suspect, because of the growing inequality between the old-timers (who don't actually seem that interested in answering questions but in excessive moderation) and the newbies. The only hope of SO is devolution: spin out the communities that can be saved and give them more autonomy. But this will never happen. This means the site is going to die. There are powerful negative forces aligned against it. Eventually, even the old timers who've amassed these enormous reps, are going to start wondering why they devote so much time and energy to making Joel rich. Wikipedia, at least, is a non-profit foundation.
The interesting thing will be what comes after SO. I'm always struck by the Ubuntu community which does a much better job providing fast, relevant answers and support to the community than SO ever did. (The Stack Exchange, https://askubuntu.com/, is dead. All the exciting stuff happens elsewhere.) There's also something much more organic; you've got blogs, wikis, Q&A, chat, and various reddit forums all working together to serve the community. This seems to me be the future and should scale better than SO at the end of the day.
> One of the biggest such forums was called Experts Exchange.
By what metric? I don’t know anybody who was actually subscribed there (although they must have existed). Instead, people were using various other forums that were free. Some of these forums were absolutely huge, both in terms of number of users, and by the number of questions/discussions.
Experts Exchange started dominating Google search results, true. But I always thought this was merely due to SEO trickery, not because they were actually widely used.
Truth be told, I would be hard pressed to even call it a “forum” — typical forums (bulletin boards) functioned very differently.
I would guess that the metric he's using here is Google search result popularity. I definitely remember the exact experience he describes regarding EE and Google search results.
>> One of the biggest such forums was called Experts Exchange.
> By what metric? I don’t know anybody who was actually subscribed there (although they must have existed). Instead, people were using various other forums that were free.
Or just used workarounds. I remember always going to the Google Cache versions, because that was what the GoogleBot saw, so it had the answers.
I wouldn't be surprised if their SEO trickery made it one of the biggest single Q&A sites of the time, since people will go where search takes them.
I remember that too, there was a brief time between the comp.lang.xyz usenet groups and SO where the google cache for EE was a great resource for me.
I don't know a lot of people who subscribe to stackoverflow either. Use it? yes. Subscribe? no.
In order to view an answer on Experts Exchange, you had to subscribe.
I used to change my user agent to be that of a Google Bot
Did you? I always just scrolled past the fold.
I think they changed it once SO started becoming popular (I may be misremembering the timeline, but I definitely remember being very frustrated about not being able to view the answers at one point)
I think they may have had a google-wall: if you came from google you could scroll down to the content, but if you were just browsing the forum you couldn't see the answers.
Experts Exchange used to cost money to use. (a subscription)
Remember when the url made it look like Expert Sexchange? :)
Worth noting:
I always just scrolled to the very bottom of the page to see the answers on EE.
This might not have worked in the start (I don't know) but as far as I can remember it worked.
I think they did this intentionally because google would ban them otherwise.
IIRC they changed their approach several times and I think for a while you wouldn't have access to the answer at all until they changed it to what you describe (answer buried at the bottom of the page). I assume they settled on that format for the reason you mention, Google would have ended up removing them from their results if they kept cheating.
I think you could also click to view the cached version of the page.
Yes, scrolling down was what I recall too.
Once in a while it wouldn't work and I ditched EE pretty much as soon as SE got going
It definitely featured near the top of google results for many questions. I remember being annoyed at the paywall many a time.
The Pedant Police make Stack Overflow very difficult to use.
Rules/purity oriented folks (what you call "The Pedant Police") do make it harder to use . . . for askers and a little bit for answerers. But they make it a lot easier to use for people who want to find already-written answers to their questions. As Jeff says in TFA, that's the tradeoff they want to make:
> Most importantly, we realized that each question is asked by one person but the answers are seen by thousands of people who found it through a search. So we decided to optimize everything to be useful for the thousands, not the individual. We literally have 1000 visitors for every person who asks a question. That’s why we sort the answers by votes. It’s also why we optimize for questions and answers that will be helpful to other people, later.
And that's great if you want a collection of uncontroversial answers to common questions.
But if you want to go off the beaten track a bit it leads to problems.
And any expert is going to ask questions off the beaten track.
So...they are limiting SO to relatively inexperienced developers looking for answers to common questions.
Considering that they make money by selling the talent that uses the site I'm not sure if it is wise to make that trade-off as rigidly as they do.
This is a pretty good example of a probably pretty common phenomenon whereby different people have drastically different experiences about what's, nominally at least, 'the same thing'.
I've definitely noticed what you described and I've spent some not-entirely-insignificant amount of time fighting it on the meta site.
But I've also had a pretty nice experience with other portions (e.g. tags) of the site.
It's the old problem that the people who are best at answering questions are not best at moderating. Two completely distinct skill sets that SO conflates, so they don't have to bother with either moderating it themselves (which would probably be impossible) or find a better working mechanism. It's the same problem Wikipedia has, which makes them loose new editors all the time.
I haven't found that to be the case if I do my due diligence. Even if I get down votes, people in the comments are generally helpful. I recently asked a question about int64_t -> double casting collisions, and even though I was initially downvoted because I didn't articulate my question well, after I demonstrated the problem with a few edits they magically turned into upvotes.
I don’t think so. They try to keep it a question and answer site, not a question and opinion site.
I have tried to ask questions two times in the last few months and the responses were pretty much "if you don't know what you are doing you should hire an expert" or "why would would anyone do such a thing?". I definitely didn't feel very welcome and will stop posting there. It seems most questions that get answers are very simple and straightforward ones. Difficult stuff doesn't get discussed.
I've had mixed results. 75% of the time I get good responses, 25% I get berated. I really, really try to form good, formatted questions though.
But the site has been flooded by newbies and ESL people who just will not or cannot format and state their posts correctly. Or people that really shouldn't be programming in the first place, or at least--should learn how to use other documentation first. So there's a lot of chaff, in their defense.
Perhaps in the first case the question you asked was too broad compared to the standard expected for SO questions? Or too precise to be of use to anyone else?
The question was pretty broad but I think discussing it would have been very valuable for quite a few people. What bothered me were the snide responses. At minimum they should have stayed quiet or explained that SO doesn't deal with this kind of question.
Closed for using the D word! Stack Overflow is not for discussion! </SO mod>
> discussing
SO is not for discussion!
Until it is.
Ironically most of the more helpful SO google results are helpful exactly because of the discussion/updates that took place in the comment chain under an answer from ten years earlier.
> Guys how do I filter an array in JavaScript?!
>> Use XYZ
>>> XYZ works, but it doesn't work in IE5
>>>> If you're on IE10 or above you can use ABC instead of XYZ, it is cleaner!
>>>>> Hey guys, change this {} to this {}, makes it faster on mobile!
Ideally, those 'discussions' would be incorporated into an answer, if only a new answer. Even-more-ideally, a single (most-upvoted) answer would incorporate all of the info from other answers and subsequent comments. That, of course, doesn't happen that often.
Every Wikipedia article has a talk page. But that doesn't mean that the purpose of the site is discussion. I think the same thing applies to SO.
The indents there suggest a threaded discussion that looks more like a 1 on 1 chat or threaded discussion board.
Wouldn’t one of those resources be a better place to hold such a discussion?
In the best (and rarest) examples of SO, those comments percolate into the accepted answer as edits (and marked as such).
If SO not for discussion is there a forum where you can discuss broad software architecture? Something with a spirit like HN where not everything is on topic but usually discussions are respectful and interesting.
I think that one of the other site of the stackexchage network, https://softwareengineering.stackexchange.com/, does that
That site is still not for discussions. It is however a site for Q&A on the software development process and architecture which tends to softer questions.
Still, discussions are for chat.
Cool. I will have to check that out.
This implies a clearer distinction between answer and opinion than exists in actual reality. There's a second assumption here, which is that there exists one ideal answer for each possible question, which is also wrong.
I think Stack Overflow is great and it's helped me a lot in the past, but I'm not sure how useful it'll be in the future. I've been learning Elm the past few weeks and have noticed a lack of good SO questions and answers on it. It's a smaller community, but I also think many people go to the Elm Slack channel to ask their questions, which they get in realtime.
Not sure if that's just an Elm thing. A language specific Slack is useful in the moment (probably moreso than SO) because you get a real time answer and can ask follow ups etc, but I can't help but think there's a ton of knowledge/people asking similar questions that is just disappearing into the ether. Makes picking things up harder for more people long term.
That's the problem with platforms like slack, the question is decoupled from the answer and it usually isn't archived in a searchable way. The next person googling that question will have to ask it again instead of just looking up the answer.
Sounds like an opportunity for someone to pick up some SO karma. Just try not to spend it all in one place.
Stack Overflow (and the Stackexchange network as a whole) is the second most important website on the internet (after Wikipedia). Thank you Joel for this.
Ah yes, old expert sexchange and scrolling to the bottom for answers....