Strange and maddening rules
joelonsoftware.com
joelonsoftware.com
It changed from a community vibe into a library and then mods started to stamp on some very good questions that people asked and closed them as duplicates (linking to a slightly different question) or as "too open-ended" or "off-topic". They gave those mods carte-blanche to enforce their way of viewing the site, of data and people and then meta.overflow adopted a hostile culture to shame people who questioned this world-view.
I really like that site but ended up hating it. My 2% rep is also a lie. I got so much from simple answers and so little from much more complicated ones.
Not whether you meant "useful" or "rule-abiding" when you say "correct". Optimizing for the future reader rather than the current asker is explicitly part of SO design.
* Ancient SO post
* Whoever is kicking around in freenode
* Marketing fluff pieces
Seems a lot of people could relate to one of the top comments:
> The same conversation, if it took place on 2014 StackOverflow:
> "Did you try RTFM Larry?"
> "Closed as being similar to <some other question that also covers Java>"
If Stackoverflow wants to build this library, let mods and enthusiasts decide whether a question is worth indexing, and let the questions that would otherwise be closed as duplicate or off-topic be as they are. Perhaps replace "duplicate" with "related to indexed question #XXXXXX"?
It would certainly take a while to restructure SO like this, but with enough effort and time, lower-quality questions simply won't show up in searches unless there really isn't a better related question available.
That's only a win if the duplicate is real. Sometimes questions are closed when they aren't really duplicates.
This is a substantial part of the fighting over the site, though - there are lengthy guides to picking up enough Stack Overflow rep to render the site usable.
I usually see this dismissed with "just help some people and ask some good questions, you'll be there in no time", but when I talk to friends who are getting a self-taught start with programming, I consistently hear a different story. They're getting questions closed as dupes, either because they aren't experienced enough to recognize duplicate questions with different terms or because mods are squelching their genuinely novel questions. And they're new, so they can't answer hard questions - and the easy ones don't produce rep because they're inevitably closed, removing all the payouts for answering them.
I understand the logic behind the rep gating system, it's not a bad idea. But it's just fuel on the fire when things go wrong, and they go wrong a lot in the form of wrongly closed questions.
In all but one of the cases where I've had questions closed as duplicates, I would have found this actively insulting. That's because all but one of those closures linked to non-duplicates, and in some cases to questions I had already singled out as not applying to my situation.
It's honestly a pretty hard to solve problem, because you're trapped by opposing forces. The sunnier the framing, the less it will sting the people asking the (numerous) duplicate questions - but the more it will irritate people who think (rightly or wrongly) that it's been done in error.
My SO experience seems to have been nonstandard, but it's always looked to me like changing labels and appearances is going to go bust because the rate of actual bad decisions and meanness by power users is too high to build trust.
If enough people upvote the link to the originally posted question, or even if it gets selected as the answer, then SO can simply _not index_ this question. But the poster doesn't feel rejected, and can in fact choose to continue engaging in his question in cases where it's subtly different.
Sometimes the duplicate is blatant, but in many case it is really a judgment call. In my experience I more often vote for "reopen" than for "close", so there are definitely different attitudes to what is considered a duplicate.
Alternatively, it could be the decision of the one asking the question. Just as they select the "accepted" answer, they could choose to accept or reject the duplicate as appropriate.
Here's something I've never really understood: What is the downside to leaving the question up, even if it is an actual duplicate? Instead of "closing as duplicate", just answer it with a link to what you feel is the question it duplicates. If that works, then the original will score higher on Google, and if it turns out it's not a duplicate, the asker is able to provide more information as to why that answer doesn't work for them.
The asker can edit the question to provide more information and the question can be nominated for reopening. It only requires 5 votes to reopen, IIRC.
Specifically what I found upsetting its that it stopped being possible to help people with bad English or those that struggled to express themselves. On numerous occasions I'd finally extract meaning from their mis-phrased question, tap out a considered response only to be prevented from posting it because the question was now closed.
That experience was exceptionally frustrating and a downgrade from newsgroups.
Fixing it would take such a change in direction and leadership that it looks unlikely to happen. It seems such a shame.
I simply do not have time to ensure my responses are in "tight enough" shape to stand up to what is quite honestly overzealous moderation for the pure sake of moderation.
TLDR: The community focus on the "meta" aspects of SO: How we ask questions, Answer etc - has killed it for me.
Can you provide a link to an answer by you which was unjustly moderated? I can vote to re-open it.
First, it's not that they "gave those mods carte-blanche to enforce their way of viewing the site." Any user can either vote to close a post if they think it's off-topic, or they can flag to let a mod know it should be closed if they have low-rep. So what you're seeing really is the entire community deciding on what goes on. Furthermore, mods are elected, so you could choose to run as a mod if you want to change it, or you could at least vote and canvas for mods who you think "get it".
Second, I think I've seen enough low-quality posts to understand why the rules are the way they are, and I think they make perfect sense. I personally really like how it works. I agree there are users who are sometimes rude to new users and I think more should be done to address that. However, I don't think the rules should be changed. I think the user interface could make it easier to understand the rules.
(BTW, the rules on this particular forum are hilariously anti-new-user. You can't use all caps to emphasize a word? That's a fairly well agreed-upon standard on literally ever other site in the world, but new users are shouted down when they dare do something like that here.)
It was ugly, I hated it. It felt like I was 13 years old again.
But i still get so much rep every day, passively. SO still sends me the top user goodies so i have mugs, tees, notebooks, and even jars of peanut butter.
I still go regularly to SO to read answers and i consider the site as a success, an invaluable knowledge base. I love what it does for me as a consummer, but it's unfriendly as a producer. And unfair. I should not have this rep.
Joel, if you are reading this, it's difficult to find your archives on your new site.
I just think of SO as being "read-only." It might as well be Encyclopedia Brittannica for all I know.
I also think of the errors I read in SO as being part of that immutable encyclopedia. The only alternative is to spend time trying to correct an error which led me down this rabbit hole:
1. Realize that the site makes you jump through all kinds of hoops just to respond to a (wrong) answer or comment on a question.
2. Spend a total of 45 minutes researching and emailing two people who already are SO members. Sending them a link to the SO page that has a clearly wrong statement, and politely asking them to add a comment or whatever to make it clear that the statement is wrong.
Ironically, that wrong statement was about one of the old string-handling functions in the C standard library. So while the old usenet might have gotten a cranky response from a C Jedi who knows all the answers, it is prohibitively expensive to even provide the right answer on SO.
Luckily SO has enough correct information on it that treating it like an immutable datastore still has great benefit.
Wading through that nonsense takes longer than finding and implementing a helpful solution. Sad really.
I'm in one channel where it'd be fine to say "I think I want a UI control that's sort of like ..., except more ... -- any suggestions?", and I'm in another channel where anything that isn't about compiler internals is strictly off-topic.
They're both useful channels, and have knowledgeable and helpful people, but both positions are much more extreme than are allowed on SO.
It took so much effort that I gave up. I seemed to be caught in a catch-22 where I didn't have enough reputation points to answer.
So I treat it as basically "read-only" now.
Is there any site/service out there that facilitates this? Paid, unpaid, whatever, I'm just curious if anyone in the HN community has done something like this, on either side (as either the tutor, or the tutored).
I have thought before that somehow responding to people's answers should be mandatory to get them, but I have yet to figure out a good scheme for this.
Is there any site that provides this?
As to the Jon Skeet checklist[1] that Spolsky linked, is there any reason why those questions can't be part of the UI when posting a question?
The data entry for those fields can even be optional instead of mandatory. The incentive for filling them out is to boost the likelihood of the question getting visibility and getting answered. An analogy is "SEO" Search Engine Optimization and "pagerank". If you want your question to bubble up to the top of the answerers' queue, boost the "effort score" by answering those Jon Skeet questions. Any drawbacks for this?
[1] https://codeblog.jonskeet.uk/2012/11/24/stack-overflow-quest...
Its also worth noting that the top result for a software question in Google often takes you to a SO question that is "closed as off-topic" or "marked as duplicate".
I have a lot of sympathy with Joel's view that you should mercilessly enforce standards, but some of the "SO approved" moderation and feedback is not just rude, its actually wrong and unhelpful in the wider scheme of things.
As for off-topic questions, this is annoying, but I also think it is necessary for any useful site to maintain a focus. For example, StackOverflow does not allow requests for software recommendations even though this a frequent kind of question. But it is not a good fit for the format of the site since you often cannot say a recommendation is the "correct" one.
IIRC this happened while other users seemed to be happily karma farming best-of questions.
I haven't seen so many lately but I've decided to start making bookmarks on them and here is one I found a few days ago: https://stackoverflow.com/questions/13202705/what-are-the-us...
Myself I've witnessed first hand a question about networking being shot down on networking because it was between company networks instead of inside company networks.
From my experience, the thing with online forums, whether they be about programming, photography, coffee or whatnot is that they seem to be dominated by people who think they are "the smartest guys in the room". Those people tend to be less nice to people who don't think like them. It's even worse when they wield a little power, like the ability to downvote.
Literally every forum I’ve been on has some variant of this. Joel’s old forums had the same comments, slashdot, Kuro5hin, everything....
Everybody wants to think they are above average.
Nearly everyone is worse online than in person.
On the other hand, there are plenty of negative opinionated commentary that is given under the guise of being expert advice that doesn't even attempt to be nuanced.
I'll avoid using an HN example, but on photography forums, it's not unusual for people to say stuff like "If it's not full-frame, it's not a real camera", or "Everyone needs a #mm fast prime" as though they are facts, not opinions.
I've seen questions here that are on topic, asked very politely, and in good faith downvoted to all hell. I can only assume that some people here are very upset by "easy" questions or ones that have "obvious" answers and think this place is only for "smart" people who already know everything. I upvote most questions that are asked nicely and in good faith, even if the "obvious" ones aren't grey yet, because they certainly will be soon. I don't believe that people deserve to be punished for asking question, asking questions furthers the discussion and I'm absolutely positive everyone has some "obvious" gap in their knowledge.
If you want a specific example that sticks out in my head someone said "blah blah blah remember 2008?" in a discussion about financial fraud. Someone else replied "What happened in 2008?" and it was downvoted to all hell. There are people on here that were children in 2008, it's entirely reasonable they are only vaguely familiar with a financial crisis that happened when they were 8 years old!! Especially if they live in or grew up in in a non-Western country.
Once you realize that, you'll feel offended or put off less frequently.
I don't have a rubber duck near me, but I (sometimes) find it helpful, when I code and hit a wall, to 'talk to myself' (out loud). For someone who's been coding 30 years (you), you have practiced this enough to be able to debug easily (and silently:).
For newbie coders (me)(not sarcastically) sometimes this helps.
Oh, and SO is a great tool/forum, a true gift with many-many positive and helpful people.
That often means that if the answer doesn't involve glittering golden code seeping perfection, people won't bother and will just answer: "Don't do that."
> Question: Hide Show content-list with only CSS, no javascript used
> Comment: Behavior is supposed to only exist in the realm of JavaScript.
But my favorite example is the following, which I sacrificed a couple of minutes looking for because the exchange was so instructive: [1]
> Question: How can I replace text with CSS?
> Comment 1: To be honest it might be best to use javascript for this.
> Comment 2: The question is how to do it with CSS. I am using a CMS that only allows me to change the CSS, which is why I arrived at this page while googling for the answer, and not a different one. That is why we answer the question that was asked instead of asking why the asker's situation isn't different.
The thing people forget is that the question is not just about the person asking it, but about people coming across the question e.g. through Google who have to waste their time sifting through idiotic non-answers. For better or worse, SO tends to be ranked highly on Google for development-related queries and I've come to subconsciously ignore it because of its uselessness, in general.
[0]: https://stackoverflow.com/questions/17731457/hide-show-conte...
[1]: https://stackoverflow.com/questions/7896402/how-can-i-replac...
The problem there is not the person commenting/answering being self-righteous, but the original poster not providing sufficient context for the question. People on the other side of the Internet are no more clairvoyant than anyone else, so aren't likely to guess that such a restriction is in play and currently unavoidable.
> That is why we answer the question that was asked instead of asking why the asker's situation isn't different.
Speaking of self-righteousness: when I see that sort of tone from someone asking for help I tend to walk away and go find someone else to assist (or something else to do entirely).
For me personally, it has happened a bunch of times that I Googled something, which led me to SO, where the answer was "Don't try to do it the way you're asking - the better way is X". I'm really glad I got those answers because I was educated about why what I was trying to do was bad and how to do it properly. The times where I really needed to do it the poor way are a small minority.
Then there is a single comment (not an answer) which says "you are not supposed to do that", which have received a single upvote.
You say "people won't bother", but in reality, 12 people have bothered and provided detailed solutions with code. What more could you want?
I don't really see the major problem here.
The second question has 23 answers, the top one having 186 upvotes. And then there is a single comment (not an answer), saying JS is more appropriate for this, and a reply from the OP explaining why it needs to be pure CSS.
Comments are for asking questions, request clarifications and providing information which does not constitute a regular answer. This seems to work exactly as intended. Several answers make it clear that the CSS solution is more fragile and worse supported than a JS solution, so I think it is pretty relevant to ask the OP (absent any information either way) if they couldn't use JS instead.
I really have a hard time seeing the problem here?
It shows -- the quality of the answer is quite poor.
> I don't think I agree with any assessment in which this is not an unqualified success.
This made me laugh. I guess the only assessment you considered is your own, which simplistically assumed time to answer is the most important factor.
And yet, not a single soul finding this question on Google cares if the answer took an hour or two days. Apart from you, I guess.
Are we talking about the same question? https://stackoverflow.com/questions/17731457/hide-show-conte... I'll admit that it's not always easy to judge if an answer is useful to someone else, but it looks to me like it answers the question, the user "accepted" it, and it has 23 points. What makes you say it's "poor"?
> I guess the only assessment you considered is your own
The only strike against it you cite is some push-back in a comment... What else do you have against it?
> which simplistically assumed time to answer is the most important factor.
On top of the user accepting it, it having 23 points, it answering the question, etc.
I mean, I think I would be pleased with the outcome if I were the OP. I think I would be pleased to find that answer if I came from a Google search. If you honestly think that this is an example of "people continuously questioning the poster's motive" and exemplifies what you don't like about SO, then yeah, I don't agree with your assessment. It's not an attack on you, chill out.
This comment should be deleted as it's blatantly off-topic and a waste of time. OK, let's forget about question one, since I found it in two seconds.
> Comments are for asking questions, request clarifications and providing information which does not constitute a regular answer.
> Several answers make it clear that the CSS solution is more fragile and worse supported than a JS solution
As you say here, the questioning ("clarification") of the question isn't limited to comments. It's easy to mentally ignore comments, but when you have to read through half an answer just to get past the BS... and besides, the CSS solutions in that thread certainly are fragile and bad, but that has nothing to do with CSS being appropriate or not and more because the answers are, well, terrible. CSS is perfectly capable of doing what the question asked for in a robust manner, and it avoids changing the page on-load which is a bad user experience (not that any web developers actually care...) and certainly no less fragile (assuming JS is even turned on in the user's browser).
The problem is people telling others what they should do, and I don't want random people trying to dictate what I should be doing -- especially not people giving answers like those. Actually, a couple of the answers are OK, and somewhat explanatory, but the rest are just BS that throw code at you, which is useless and a waste of everyone's time. To be fair, web development answers on SO are the lowest-quality generally speaking. I'm pretty satisfied with using SO for answers about e.g. Emacs.
> I really have a hard time seeing the problem here?
Uh, seriously?
And the reason is not about the OP, the OP is irrelevant in such a site. SO is a collection of programming knowledge. So the problem is that an experienced software engineer comes along years later, forced into doing something they already know is bad but have no choice for some reason (normally some silly job constrained that they simply cannot change), google search to see if anyone has done it and guess what comes up? The exact question on SO but with these useless answers. And since it has been "answered" no one else bothers any more. And I can't come in an clarify why I need it, it's not my question. If I ask again, my question will probably flagged as a duplicate.
If I could change only one thing on SO, it would be that anyone who answers "don't do that", in any form, without answering the question is banned from the site and their response removed.
And even then they probably don't know the answer, and you will have wasted your time and keystrokes. That's why I never attempt to justify myself to someone just because they want me to. If I anticipate that a question I'm about to ask will engender a lot of "why are you doing it that way?" responses, I'll usually address it when I ask the question, but long ago, I got wise to the people who seem to think that if they don't know the answer to a question, it's the wrong question.
E.g. a customer asks - can you make the button so you have to click it multiple times before it reacts? The less experienced (or more cynical) developer say sure, I'm on it. The more experienced developer (annoyingly) ask "what do you really want to achieve"?
That might be an appropriate response to someone in your own company. But when it's a stranger asking a specific question in a forum where such questions are asked, I give them the benefit of the doubt that they have good reasons for asking their question. If I can't answer it, I simply ignore it.
I realize that a lot of this comes down to asking hyper-logical pattern completers to stop being hyper-logical pattern completers. And that is in a sense one of the main motivations behind April Wensel's campaign to improve SO.
A bit of context like "I'm on an embedded platform, so I can't use heap allocation", or "the HTML is for an emai'l, so I cant use JavaScript" also goes a long way to avoid the annoying "why don't you just..." comments.
If you peruse SO you will notice quite a lot of questions simply does not make any literal sense because of misuse of terminology or just lack of understanding. Very often questions arise exactly because the person have a wrong mental model of how the system is supposed to work. Which means the question will reflect this misunderstanding in the way it is posed. Just answering the literal question is not helpful and in many cases simply not possible.
If you can't answer it, or don't want to answer it, then don't answer it. But please don't be the annoying, condescending know-it-all who is always there to provide an unsolicited lecture.
1) No answer
2) A technical explanation of how the 'view source' menu item can be suppressed (e.g. iframe, overriding right-click events and so on) which may at least work in some browsers some of the time.
3) An explanation why it is simply not technically possible to hide code sent over the wire to the client, and a suggestion to move sensitive code to the server if this is possible.
Clearly (2) is closest to the technically correct answer to the question... but it is it really helpful? Option (3) do offer unsolicited advice, which could be construed as condescending since this is not what was actually asked. But I will also argue this is the most useful response in 99% of cases.
But there might be some specific cases where (2) is actually relevant. E.g I'm building some kiosk-style console to provide an interactive quiz, and I don't want users to cheat by using view source to see the answers. In this controlled environment, it might be possible to completely disable "view source". So providing both (2) and (3) is the optimal answer, and should get the green checkmark.
But I simply fail to understand how giving no answer could be better for anybody?
> If you can't answer it, or don't want to answer it
Here is how I would rank answers from best to worst:
1. Give the correct answer to the technical question asked, and some background about when to think twice about using it
2. Give the correct answer to the technical question asked
3. Why you should rethink the approach
4. No answer
5. "Don't do it"
I've seen so many questions where the poster comes in and already 'solved' part of the problem by making false assumptions (note: this can be by accident, it's normal for novices and even more advanced programmers to have a lack of diagnostic insight) and then asks 'I want to do this, how do I do this?' which is at that point simply the wrong question.
Practical analogy to one particular style of questions: I have a lamp and a switch, and I don't see any light when I toggle the switch and I go to SO to ask how to replace the lamp. SO people could of course come up with a perfectly valid and acceptable answer and leave it as-is. But SO people might know better and realize such answer might not fix the actual problem, which could be a myriad of other things (no power, no wires, switch broken, I'm blind, ....).
It would be fine to help with all these other possibilites but part of your answer should... actually answer the question that was asked, as it was asked and not doing so should result in a servere punishement.
For me, questioning someone's question, asking more info, pointing out he/she might be doing the wrong thing, ... does not in any way involve me assuming knowing things better than the questioner or anyone. (e.g. for all I know, the asker is way more intelligent and wise and knowing than I am, but just temporarily confused - happens to me sometimes so can happen to others) Those two are orthogonal for me, it's just my nature to always question stuff. Including myself. And this certainly helps in finding solutions. And doesn't lead to me thinking I'm better. Perhaps different sometimes, yes.
your answer should... actually answer the question that was asked, as it was asked and not doing so should result in a servere punishement.
To stick with the enalogy: while the answer 'buy lamp, take ladder, unscrew old, screw in new' might perfectly answer the question, it is in my view completely useless if it doesn't solve the problem. So I'd leave a comment asking for more info. And if someone else would already have given that answer I'll probably leave a comment saying it's rather incomplete. Because it's imo the only way to actually help the OP. Why on earth should one get punished for that? Isn't it the right thing to do?
Well, this is exactly the problem I'm describing: you're trying to solve the problem for one user when the answer is for everyone who could ever ask something similar enough to come to the page from a search engine. So ignoring the question and solving the problem might help the OP but it doesn't help anyone else who actually needed to know how to replace a lamp. In fact it's hurt them because now "how to move a lamp" is considered solved by a lot of people but the actual page with the "solution" does not contain one.
But SO is a QA site - you are only supposed to answer if you indeed know better than the person asking!
I acknowledge there is a grey area with the so called XY question, where the questioner ask about one thing but actually want to achieve something different. But in such cases the correct approach is, in my opinion, to help the OP solve the actual problem they have, not lead them down the wrong path.
https://jdebp.eu/FGA/put-down-the-chocolate-covered-banana.h...
there is also the issue about the (missing) Standard Litany:
https://jdebp.eu/FGA/problem-report-standard-litany.html
particularly on a technical resource such as StackOverflow, lack of specifics are a problem (as they often don't allow for correct/effective answers), and in theory the OP asking should well know, being a technical person, the importance of providing background information when asking a question.
For example, let's say the title of the question is, "How do I reformat my hard drive on linux?" and the body of the question is "I accidentally screwed up my upgrade of Ubuntu by <doing XYZ> and now it won't boot. Can I reformat the hard drive and install again so I can boot?" If your answer is "Are you sure you need to reformat? Have you tried <solution to XYZ>?" then you may be solving OP's root problem but you will be making a useless landing page for anyone searching "How do I reformat a hard drive on linux?"
I don't think it is helpful to answer the literal question rather than the actual problem, since this is optimizing for a hypothetical future reader at the expense of the actual person having a problem. After all, the future reader might also have the same problem as the current user.
Which is fine because there are N potential future readers but only one OP.
You suggest answering "the wrong question" would help more users in the future. I don't see why that would be likely.
N could be less than 1
If you're worried about it then just answer exactly what was ask and follow your strategy. But please don't simply do your strategy because it's a real pain for those of us who end up having to move off the beaten path from time to time.
My point is just you should try help the person at hand with their actual problem, the X, and then clarify the question title to reflect the problem they need help with. It is easy to see if an answer have solved the actual problem - the OP selects the answer as "accepted".
If another person have a different problem which happen to be Y they will ask that as a question and get help for that. Everybody is happy.
I get really miffed when I see someone answering the literal question even when it is clear that the OP have a different problem and is just not knowledgeable enough to put it in the technically correct terms. I guess it is an effect of the education system when people think it is better to provide a useless but technically correct answer, than actually help people who have a problem.
Answering both X and Y is fine of course, and probably the preferred.
How many times have you seen that happen? Further that only occurs in an XY situation where the question was wrong. I've been hit by cases where the answer was "don't do that because it's bad". Well, I know that and I know why it's bad but I also know that I have to do it anyway. What now? You couldn't change the question in that case because they asked what they meant, they were just told that they were wrong (and they were).
>I get really miffed when I see someone answering the literal question even when it is clear that the OP have a different problem
And I get just as miffed when they don't because of all the times I get burned by people behaving as you want and then I can't get that same answer answered and have to go through even more pain (it was painful enough to be forced into the situation) to figure it out for myself. I have basically no karma on SO because when I get some I use it to vote down such people.
>Answering both X and Y is fine of course, and probably the preferred.
Here we can agree.
It is the OP which decides what it the accepted answer though, but the community should not upvote unhelpful answers.
Or the best answer follows the "here's how to do what you asked, HOWEVER: <detailed description of actual problem and solutions>"
And if the question is 10 years old the day I need to reformat my linux hard drive? The OP might not even still be alive. Certainly there will be resistance to rezzing a 10 year old thread to make the question more general.
If the question is "why do I get a segfault?" and we find out he's trying to write C code to title-case a string in-place, and he's passed in a string literal, we can edit the question to "Why do I get a segfault trying to modify a string literal?" or similar.
If the objection is that answering the real question will confuse people, then make the question match the correct answer.
"Some kind of help is the kind of help that helping is all about. And some kind of help is the kind of help we all can do without." -Shel Silverstein
- To get a sense of pride and accomplishment by helping people who have a problem. They want to dig into what the actual problem is, in order to help the person in the best way. The don't want to solve homework problems because they are not "real" problems.
- To get a sense of pride and accomplishes by answering technical questions as correctly as possible. This type of person might also solve homework problems posted on the site because they enjoy the challenge.
Both motivations exist, and they have different attitudes to the XY problem. You will se both attitudes in this thread.
But not many people will get a sense of pride and accomplishments by answering a question which could be found by a single google query. So why should they use their time on that?
> questioning the poster's motive
The motive can be important. Where there are multiple explanations and/or solutions this can filter out some that are not going to be relevant or practical for their current situation. Also where what they are asking seems impossible/impractical/misguided/other it can help in providing a better solution (i.e. trying to give them what they ultimately want even if it isn't what they are specifically asking for) or give context that might quieten your gut "don't do that" reaction.
The poster's motive is one of the most important bits of information: Where were you? What did you do? Why? What were you intending to happen? What happened instead?
> "Don't do that."
Sometimes "don't do that" or "you can't do that" is the only suitable answer though (such as where what they are trying to do is impossible, or just wildly impractical, or will open up a security nightmare, or there is a built-in method so they'd be reinventing a wheel, or one of many other reasons) with the important caveat that you don't answer with just "don't do that".
Better is "don't do that because <good explanation>" or "you can't do that because <good explanation>".
Even better still, if what is being asked it actually possible even if it is strongly recommended against: "You shouldn't do that because <explanation> but if you chose to ignore this recommendation you could try <method>".
If you expect a quality answer that actually solves the problem, explain everything. Provide clarification when asked to do so. Also, don't assume hostility and be friendly yourself.
It's hard to read from this blog post, but if fixing this is one of the forthcoming changes I think it's a good move.
Here are a few of many, many examples:
https://stackoverflow.com/questions/2847655/find-threads-run...
https://web.archive.org/web/20150404191857/http://stackoverf...
https://stackoverflow.com/questions/5574241/why-does-sun-mis...
https://stackoverflow.com/questions/961942/what-is-the-worst...
I'm sure mods can explain why those don't fit on the site but closing them makes people not want to use SO and develop a negative opinion of the moderation team.
Your 4 links go to a total of 3 distinct questions. By my estimation, 2 of those are just general open-ended discussion questions without specific correct technical answers. If users form a negative opinion of the site or moderation team for closing those, they probably never had a chance to like SO in the first place.
The users would have a chance to like SO by the simple action of keeping these questions they enjoy reading open.
Think of it in unix philosophy - a site which does one thing and does it well. If you need something different, use another site which does that thing well.
And what is lost by pushing general discussions to sites like HN or Reddit which is much more suited for such discussions?
It's important to remember that users don't care what SO's purpose is, they care about their experience with the service and for a lot of people that experience is extremely negative.
I think it would be in SO's best interest to actual listen to the complaints people have instead of just saying "you're not using the site right". People wanting to use a product is a privilege that is best not taken for granted. After all, the customer is always right.
But that is a decision for the owner of the site - Joel Spolsky I guess? Don't blame the mods for keeping the site at the intended focus.
There are also frequently users complaining about HN not allowing joke-threads. Clearly those users are not served well by HN and have a bad experience here - but would it improve the site to cater to them? Are all customers always right?
> Don't blame the mods for keeping the site at the intended focus.
For better or for worse, the users are going to blame the mods for this since they're the ones closing the questions.
A closed question only needs 5 votes to reopen, if I remember correctly. So if there are massive amounts of people who wants a question reopened it should be possible.
Not disputing some people are overzealously closing qestions, and this problem should be addressed - just saying it is just as easy to vote against closing.
By the way, I happen to like these open ended questions because they complete dispassionate theory by being opiniated. Maybe it just me, but I think both are needed for a broad understanding of any subject.
That's bad.
What's worse is when it's on-topic for the first site, but gets migrated to another site, and then migrated to a 3rd site, and then sent back to the first, where it gets closed.
This happens because there's overlap between linux, unix, super user, and the various distro-specific sites.
If you have a linux distribution on Apple hardware you're going to have a hard time on StackExchange.
Then I wonder is Google correcting SO's bad moderators? Do more people find the closed question useful than whatever duplicate, on-topic or whatever question the moderators must have preferred?
A lot of StackExchange is similar to comp.lang.c did in the Usenet era. As in the days of the Usenet, They tolerate and encourage those behaviors. I think there's a critical lower bound and a maximum upper bound for the number of users. The topic has to be big enough that there is a steady stream of new questions and small enough that regulars talking among themselves is a meaningful percentage of the activity.
[1]: The discussion from 2009 in SO Podcast #58 (under the old numbering system): https://stackoverflow.blog/2009/06/18/podcast-58/
[1]: https://stackoverflow.com/questions/1003841/how-do-i-move-th...
[1] See revision 16 https://stackoverflow.com/posts/1003841/revisions
https://groups.google.com/forum/#!searchin/comp.lang.c/spols...
Are you allowed to use getchar() twice? (seems like a silly question? read on!)
---------------------------------------------------- kangaroo% cat test.c #include <stdio.h>
main() { int c; c=getchar(); putchar(c); c=getchar(); putchar(c); putchar('\n'); } kangaroo% gcc test.c kangaroo% echo "Hi" | a.out H^@ kangaroo% cc test.c kangaroo% echo "Hi" | a.out Hi ---------------------------------- Anybody know what's going on?
Here's an idea: On the ask question page, have a checkbox for "Help me ask my question". Check that, and the question temporarily goes into a separate corral where helpers can edit or refine the question. These self-selected subset of the Stack Overflow community help get the question ready before it goes "public" to the larger SO world.
These questions feel like showing up on a medical website and saying something like “I think my kidney has been hurting. How can I remove it?”
While I laughed at this example for a few seconds, I also think this is a question that needs to be answered.
While we'd like to think that everyone who uses the Internet has a basic level of intelligence and a grasp of common sense, this is often not true.
Having a real expert answering this question properly (in simple, non-patronizing language) could prevent someone who may not be thinking rationally/logically from doing something incredibly stupid.
One of SO's biggest problems is the mod thinking they know better than the people asking and over-aggressively closing things down.
And given a number of ways to ask the same question, they will often get closed down in not in the exact right form:
- How do I do X in my programming language? - Is there a library to do X in my programming language? - What is the best library to do X in my programming language?
While the three questions are slightly different, they will result in about the same answers. I see no reason to close any of them down since they all imply each other.
Or the huge issues with decade old answers still coming up when they no longer apply to recent software versions.
Once seeing an interesting Java question answered by Gosling himself, I made a suggestion on Meta to highlight answers by notable people. I thought it would be very interesting. Wow! Was ever a bad idea. Meta is even worse and nastier than SO regular. It seemed like the mods were fighting to be the biggest on the site and didn't want anybody to outshine them.
Joel doesn't seem to want to understand the SO has large problems for many user types, and it needs more than just a little lipstick.
You have to go through all these hoops because you can't force your way through this learning process the same way as you can't have 9 women give birth to a baby in 1 month.
Contributing to SO is a journey and the milestone system is geared towards helping people through it.
You have to admit that nothing is perfect and complaining won't help.
Criticizing something is easy but I see close to zero suggestions for improvement.
Just ask yourself whether you can do better than Joel and the others or at least give some suggestions for improvement.
Disclaimer: I'm also one of those 2% people and I also see problems but I think that it is not that serious as some people claim it to be.
I've been on the site since the beginning, although my participation waxes and wanes. I often only check the "bounty" tab for tags I care about, since those tend to be better-asked questions. That's one way to engage off-and-on without much effort.
When I do look through the non-bounty questions, I find a lot of beginners. Some questions are so badly-asked I won't engage, but a lot of questions show someone trying who is just not yet knowledgeable enough to know the right approach, or even how to ask for help. I feel like those are the most fun to answer. I could probably mark them all as duplicates somehow, but where is the fun in that? I'd rather offer an answer tailored to their own situation, possibly with links to other SO answers that elaborate on relevant (not "duplicate") topics.
Joel's post here actually sounds less hard-line against duplicates than the Stack Overflow conventional wisdom. It sound like what he really cares about is whether the asker is trying. Personally I have never marked a question as a duplicate, because there is usually some room to explain how that other question applies to the asker's situation.
With Rust I've been on the other side of that exchange, too. That is really the only region of Stack Overflow where I've seen the pedantry and unhelpfulness that others complain about---mostly from one person actually. And I wonder how many people have given up on Rust because of bad experiences there.
What looks like a duplicate to an experienced developer may seem totally unrelated to a beginner. When your question is marked as a duplicate you get this sinking feeling of hopelessness, like someone is saying, "I can see the problem, but I won't tell you, and I'll make sure no one else sees your question either. Good bye!" Knowing what it feels like makes me even more inclined to answer every question in its uniqueness. And it is very rewarding to help someone out of their bind!
Another fun question is the "Something is failing and I don't know why" type. If you have a lot of experience with that tech, you might be able to recognize the problem or guess it from little information. These questions are like fun puzzles, and they let you show off a bit of "magic".
Anyway, every time I see a HN post about Stack Overflow, I want to write this comment. Joel, Jeff, and everyone else there: thank you so much for a huge gift to developers everywhere!
You're not wrong! I almost gave up on learning Rust when I saw all the belittling answers on Stack Overflow. It particularly seemed common to see SO pages of the form:
- Q: How do I do [thing X that Rust doesn't do well yet] in Rust?
- A: You're doing it wrong! Write better code! You're only trying to do X because you're sloppy.
And then thing X would actually become possible in Rust, because the language keeps getting better, but the SO page would remain, implying that only bad programmers do this thing that works in Rust and that you want to do.
Fortunately, I've realized that this guy on SO doesn't represent the Rust community. The community on Reddit is pretty good, and on the Gitter, there are people who are happy to answer even simple questions that have been asked before.
E.g.:
Q1: I'm trying to do x and it isn't working. A1: You're missing a comma in the list on line 7.
Q2: I'm trying to do x (and I've checked all of my commas), and it isn't working. A2: Closed as duplicate of Q1.
Programming is complicated enough, and we should see our mission as making it simpler. That would benefit everyone, not just newcomers.
I see the eventual harshness and gatekeeping in every forum (not just Usenet and SO) as the inevitable consequence of accidental complexity. We've got 173 layers between what we want to accomplish and what we have to type on on the keyboard today, and that naturally leads to ultra-specialization and Barton's "high priests".
I don't think I can describe the modern web stack with a straight face. It's become its own parody of software development. I no longer think I understand how to stay secure on the modern internet, except by mindlessly following "best practices" I've been told. Complexity has a real cost for everyone.
To change the background color on my C=64, you had to consult a memory map -- but there weren't dozens of other abstraction layers to think about, so even my parents weren't afraid to crack open the book and help. Abstraction is a necessary tool, but a lot of the layers we've got today are just plain bad, and exist mostly by historical accident.
You either have to study the archaeology of all your software and hardware, or you have to memorize bizarre cargo cult rituals and recite them back without understanding why. The root cause can't be solved with a Q&A website, no matter how much you tweak the phrasing of the form fields.
That seems low, to be honest.
That's the wrong question. (Hah!) A better one: What do you think about complicated, difficult questions?
Answer: apparently, not much.
Seems suspiciously low to me, I suppose that's not counting page views.
SO wants to keep some beginner questions, but also keep the really complicated questions, and you have to do some homework, but really most questions are okay, and you shouldn't ask a question again, and you have to be nice, ... These are so many subjective rules that serve to make everything "look" a certain way. It's almost like playing a game. Ah, you didn't say please and thank you! You lose five points. In a world where not everyone agrees with you or behaves the way you want, I wonder what the goal of this particular game is?
I guess what I'm driving at is how thinking you can just make up a list of rules of how humans should behave and expect it to go okay, is maybe not the best idea. It's like expecting that you can write some shell scripts that tell a computer how to work, and it will always work that way. Bad news: computers don't always follow simple rules, and neither do humans. Moderators are the equivalent of health checks that go around restarting things that died. That may be fine for your massively scaled enterprise application, but humans have something computer programs don't have: feelings.
Which brings up a completely unrelated question: In the future, when computers have emotions, will server automation be considered equivalent to chicken farms? Yes, we're killing all these living creatures after they have a meager existence in cramped spaces, but have you tasted this amazing chicken cordon bleu?
(Inb4 flagged for "incendiary topic: animal rights")