The Stack Overflow Age(joelonsoftware.com) |
The Stack Overflow Age(joelonsoftware.com) |
#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.
- [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.]
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.
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.
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.
> 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).
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.
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?
I used to use Endicia.
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.
In cases like that I usually just end up answering my own question later, after I've figured it out by other means.
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.
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.
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.
Ah that explains firing up the old blog editor again content marketing ftw!
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.
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.
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.
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.
“Who were you, DenverCoder9? What did you see?!”
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.
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.
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.
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.
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.
That's exactly how it's supposed to work. Demonstrating some effort to solve your problem goes a heck of a long way.
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.)
> 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...
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.
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 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).
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.
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.
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.
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.
Please note that I've answered a bunch of question, but only on a tag with not a lot of frequentation.
Even still, most newbie questions do get some degree of help from empathetic users in the comments.
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.
> 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 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.
Once in a while it wouldn't work and I ditched EE pretty much as soon as SE got going
> 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.
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.
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.
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).
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.
The only ways to get reputation is to create content that gets up votes or do edits that improve the post.
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 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.
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.
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.
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."
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.
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 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.
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.
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.
> "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
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.
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!
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.
Wouldn’t one of those resources be a better place to hold such a discussion?