I'm happy to see Spolsky blogging again. Everyone should read his old stuff; most of it is spot on. I was young in my career when I found his blog; right around the dot bomb. His posts are very thoughtful and insigntful. They should be required reading for any programming manager, team lead, or developer.
Joel, if you are reading this, it's difficult to find your archives on your new site.
Agreed. Good greats for anybody; excellent for people newer to software development (including managers, leads, and other non-programmers). On his website https://www.joelonsoftware.com/ scroll down to "Reading Lists"; he has a link to his archives, as well as top reading lists by topic.
>, with this in mind, to read Jon Skeet’s checklist for writing the perfect question.[...] Sadly, not everybody finds his checklist. Maybe they found it and they don’t care. They’re having an urgent problem with code; they heard that Stack Overflow could help them; and they don’t have time to read some nerd’s complicated protocol for requesting help.
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?
This seems like an absolute no brainer great idea to me. I've often wondered why moderators don't do the same on subreddits....how often when you're doing a search do you see results with useless titles like "Need help!" or "What should I do here!!??".
SO has never quite cracked the "be nice" rule. You can still get some pretty nasty feedback on your questions, and I completely understand why some beginners would be put off.
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.
If the question is "marked as duplicate" then there is always a link to the duplicate, where the question is hopefully answered. I think it is a good thing that the same question has answers in a single place. But of course there is a grey zone when it is not exactly the same question.
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.
It often seems that the duplicate is different enough that they should remain separate. Or just as frustrating the duplicate relates to a previous release where the same question begs a different answer.
In my own experience ~7/10 times the duplicate question is something entirely different and I have to spend longer searching because of someone's ignorant pedantry.
If it happens 7/10 for you it should be easy to find and link to some blatant examples. Since I have the rep to vote for reopen, we might be able to improve the world together.
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.
I asked a specific question about text wrapping in Java SWT a couple months ago. It was quickly closed by a Java gold badge holder as a duplicate of a question asking what the best Java GUI framework is... which had nothing to do with my question. Thankfully, few hours later another Java gold badge holder reopened it, and answered it.
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.
HN included. I cringe every time I read some comment here saying something to the effect of “I’m sure almost everybody here was a gifted child, is super smart and makes a half million a year...”.
Literally every forum I’ve been on has some variant of this. Joel’s old forums had the same comments, slashdot, Kuro5hin, everything....
We are also now coming to understand the extent to which text-based forums prevent participants from witnessing the human reactions to their communications, both positive and negative.
What you're saying is true -- sarcasm, English as a second language, etc. can heavily influence meaning and interpretation of a message.
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.
Hacker News is the same way. Users here are extremely hostile to most questions.
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.
I frequent Super User, another Stack Exchange site. The problem with "unfriendly" or "uncomfortably direct" responses does exist. It cannot be helped though: They're mostly from non-native speakers. They simply don't know better.
Once you realize that, you'll feel offended or put off less frequently.
What I hate the most about StackOveflow is people continuously questioning the poster's motive instead of answering the question.
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."
It took two seconds to find an example in my stackoverflow browser history: [0]
> 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.
> I am using a CMS that only allows me to change the CSS
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).
After reading the exchange on SO, I agree: Questioning motives is the right thing to do. The problem isn't that people are questioning the motives. The problem is that we have to. The question is very reasonable within a certain context, and it is the responsibility of the person posing the question to point out that context.
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.
For the first question, there are 12 answers providing pure CSS solutions. One of them is marked as accepted by the OP, which indicates it solved their problem.
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's worth emphasizing that for the first example, the answer was provided free of charge within an hour. I don't think I agree with any assessment in which this is not an unqualified success.
> It shows -- the quality of the answer is quite poor.
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.
> Then there is a single comment (not an answer) which says "you are not supposed to do that", which have received a single upvote.
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?
I don't follow - are you saying you know of a better solution than the ones proposed in the thread? And you are angry that this better solution is not already posted?
To me, this is a feature, not a bug. In my experience, usually the questioning of motive is well-founded and the poster is really doing something that in a perfect programming world shouldn't be done. Then, if the poster is able to explain why they are forced to take this particular route, people will usually accept it and answer.
No, this is unacceptable. Ideally you should first answer the question, then explain why it shouldn't be done. If you don't have enough time, then drop the second part.
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.
The majority of people arriving via that search years later probably don't already know, and are less equipped than the experienced engineer to tell the difference.
This is horrible, and reminds me of the programmer mentality in general. I come as a human asking a question, and instead of answering like a normal person, they grill me until I've proven something to them.
>This is horrible, and reminds me of the programmer mentality in general. I come as a human asking a question, and instead of answering like a normal person, they grill me until I've proven something to them.
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.
Yeah this is common syndrome. An experienced software developer might sense something off in the question, and try to dig into what the actual problem is and find the solution for that. After all, the job of a developer is to solve problems.
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"?
>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.
The very assumption that there is a larger solution behind my question, and that I am really looking for a best practice with regard to this putative solution, is itself a hasty conclusion. I'm often searching a question because I want to know the answer to that question, so that I can use that knowledge in future solutions. In those cases, not only have you not properly imagined what I'm going to do with the answer, I haven't imagined it either.
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.
Exactly...that is why you ask clarifying questions. And if you post a question on SO is a great idea to include contextual information which helps clarify what you are trying to achieve.
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.
>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.
A typical example is "I want to keep my JavaScript code secret. How do I disable the 'View source' menu item in browsers?" This is a very frequently asked question. What would be the most helpful answer, if you imagine you are a newbie asking in good faith?
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?
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's highly presumptious to assume you know better than the person asking. You might, but you might not. The fact that SO serves as a collection of programming knowledge, you do not know better than everyone who will ever search for that question even if you do actually know better than the OP who actually asked the first time.
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.
It's highly presumptious to assume you know better than the person asking
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?
> it is in my view completely useless if it doesn't solve the problem.
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.
Yes I get your point, but again, in my opinion, if there's no Q/A yet for how to replace a lamp, the others seeking an answer should just ask that question specifically. The net result being both the original OP and the others are helped in a clear way. Unless of course someone comes up with an all-in-one answer to the original question laying out all possible reasons why there's no light. But that's the edge between way too broad vs specific question.
> It's highly presumptious to assume you know better than the person asking.
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.
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.
I think part of the point here is that you are not just answering OP's question, which may or may not be an example of an XY problem. You're also answering everyone who searches answers using similar terms to those the OP used.
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?"
That is a good point and not easily solvable. I think the best approach is the OP updating the question title and text to reflect the actual problem they need a solution for, eg. <Ubuntu will not boot after doing XYZ.>
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.
I don't agree with this line of thinking. Helping the user at hand means you help at least one person, and probably others which might have the same problem. This is the purpose of the site! The OP is supposed to select one of the answers as "accepted", if the answer solved their problem.
You suggest answering "the wrong question" would help more users in the future. I don't see why that would be likely.
Again, you're assuming the question is "wrong". But how likely is it that every single person who asks that question is wrong? With your line of thinking you help the OP and anyone who gets in the exact same situation as the OP but no one who actually needs the answer to the question that was asked.
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.
I should not have used the word "wrong", of course someone would nitpick that. I mean the Y in an XY question.
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.
>and then clarify the question title to reflect the problem they need help with.
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.
Good point. If they really asked what they want (it wasn't an XY question), I don't think "don't do that because it is bad" should be accepted as an answer, since it isn't, and it doesn't help.
It is the OP which decides what it the accepted answer though, but the community should not upvote unhelpful answers.
>In such cases where the OP and the community agrees, reformatting the question would avoid making a useless landing page.
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.
The issue is that while the OP might be wrong, someone searching for that exact problem might not and it's extremely infuriating to have those unhelpful comments cluttering your search results.
The problem with this, is that I often find myself reading SO answers after searching something on Google. To stretch the scenario a bit, I'm often stuck on a deserted island with only an old shoe and a glass bottle. In that context, it doesn't matter that a hammer is the right tool for the job.
It doesn't matter whether they're 'right'. Answer the question as asked. Chances are the answerer does not understand the context, but made an assumption. Then the answer will be unhelpful and vexing. Just answer the question.
"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
It's a sort of paradox: we all imagine questioning the motivation behind a question will reveal a simpler solution, but are always confident our own motives do not admit one, and would really like it if we don't have to explain ourselves in every quora.
What strikes me as a paradox is the premise that answerers do not have time to 'do my homework' or 'Google that for me' but they do have time to understand my complex real-world constraints in enough detail to make this judgment for me, before answering a question that is a minuscule detail in my overall solution.
Imagine yourself in the shoes of a person who chose to answer questions on SO in their spare time. What could be their motivation?
- 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?
The google query turns up unhelpful SO answers. I’ve noticed you seem to have a pretty fixed idea of the categories questions and answers fall into, and the overall rightness of the state of SO. There isn’t much I can say. You might even be right about the majority case, and maybe my whole experience is outlying. Except there are so many with the same complaints.
Yeah SO have been incredibly helpful to me many times, so I really appreciate it. But I recognize not everyone has a good experience and I'm trying to understand the issues so perhaps I can contribute back by improving the site a little.
(I don't post answers on SO at all, but I do on some of the sibling sites (DBA.SE, SF, SU), so my experience might not be exactly the same, but...)
> 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>".
This may seem off-putting at times, but I believe it is absolutely necessary. When colleagues come to me with questions (which they do a lot), I always ask about the background. And sometimes, I arrive at different conclusions that solve the actual problem with ease.
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.
SO has long been the butt of jokes about over-moderation. Any arbitrary SO link found in the wild is 90% likely to be closed for some reason or another, even though it probably solves the problemn you ended up on that page to solve.
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.
Anytime a question that has interesting or thoughtful replies is closed, it does a disservice to the community and content of the site. It's something moderators don't seem to agree with the users about.
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.
If posts don't fit on the site, it seems fair for moderators to close them. (It's called putting "on hold" now) Most of the questions that are put on hold are not put on hold by moderators, but just ordinary users.
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.
SO have a very well-defined purpose: To answer practical questions about software development - questions which have answers. The site is not a good fit for open-ended discussions - the UI is not designed for this. How would you select the "accepted answer" in a questions like "what is the worst language you have ever worked with?" What is the actual problem in search of a solution here? Upvote/downvote is supposed to indicate "helpful"/"not helpful" - how would you determine this for such a question?
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?
Users don't care about any of that. They look at the answers on those questions and think "wow this is great content!" then they get mad when mods shut down the discussion.
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.
Perhaps - and I don't se the benefit of all decisions, like pushing system admin and database admin questions to separate sites. But I do think the overall perceived value of the site would decrease if general discussions, joke threads and unfocused flamewars were allowed to run wild. The basic premise of SO is that "it answers your question", and I believe it does this extremely well. I remember a time before SO.
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?
There might be some users wanting joke threads on HN but there's a massive number of people who feel closed questions on SO are a problem. It's a very well known issue in our industry.
> 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.
Questions are closed by voting just as they can be reopened by voting. You do need a certain level of rep to vote either way. So the closing and reopening trends for better or worse reflects the community using SO, not just some cabal of mods.
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.
Another stack exchange site could be dedicated to this type of questions, let's call it InfiniteLoop.
Moderator would move questions from others sites there instead of closing it, and no answer could be accepted.
It may be enough to both maintain SO quality/focus and please those who like open ended questions ?
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.
Oh I also love those kind of questions. Would love to read the HN thread about "worst language you have ever used". SO format is just a really bad fit for such discussions since the UI is not designed for it.
So, that first one is "off topic" for one site, and wil get migrated to another site.
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.
You are absolutely correct. I'd guess nearly every time I google for a question and I find the answer on an SO link, the question has been marked closed.
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?
> To novices, the long bureaucratic rigmarole associated with asking your first question on Stack Overflow can feel either completely unnecessary, or just plain weird.
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.
Don't forget about the comments that read, basically, "why haven't you googled this, peon?" usually found in the first hit, often the first several hits, in Google.
SO is, if it ever gets around to listening to the recent outcry, and stops doubling down on the narrative they have going, which is something like, "Actually, the problem is you are a n00b, and we haven't communicated our godly ethos in a n00b-friendly way. So we'll solve the problem by explaining ourselves. And have we mentioned that only n00bs have this problem with us?"
I've had more luck with IRC in recent years. It's less crowded so it's more like the early years of SO. There's a billion channels so you can be as broad or specific as you want.
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.
I think, given that SO has become an encylopedia, it needs editors in addition to moderators. My one contribution to stack overflow was a comment on a question about a strange TLS problem, where I explained what was happening, and mentioned it was worked around in the latest OpenSSL and linked to the diff where my workaround had been accepted. Then a few weeks or so later I got a message that I needed to fix my comment because something. I was motivated to fix the problem in openssl, and to respond back to help any other people who run into this, but I'm not motivated enough to fix my comment to follow community rules.
There are editors. Any user with something like 2000 rep can edit any question or answer. I do it all the time. There's even a queue of questions that have been flagged in need of editing.
I find that a lot of askers on SO are really in need of a consultation with a tutor or technical mentor, not a singular answer. Maybe I'm overly optimistic, but to me, really poor SO questions often look like opportunities - what if the asker was open to a 30 minute chat with someone knowledgeable that could totally illuminate things and set them on the right path, but there's just no forum for accomplishing that (or they don't know about it)?
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).
Very good point. Best thing you can do on SO is starting a chat with the user I think, or sometimes you can give a 'teach a man how to fish'-style answer where you don't just give a code-only answer (i.e. how), or maybe don't even give a complete direct answer at all, but explain the bigger picture (i.e. why). Problem with the latter approach is that if the OP doesn't leave any comment you don't really know if it helped at all, whereas chat is more direct. But if you do get a 'well now I learned something' type of comment there's a good chance it actually helped the OP becoming more knowledgeable.
> Problem with the latter approach is that if the OP doesn't leave any comment you don't really know if it helped at all
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.
>> 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.
I notice a lot of people talking about moderation on SO. It reminds me of the moderation on HN. It's all focused on one of two things: being "nice", or being "interesting". Which is really bizarre. It's not reasonable to expect people to act in an artificial way. People are emotional, and usually not all that smart or interesting. We're monkeys with hats. Just because you can train a monkey to paint a picture does not mean it won't fling poo at you.
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")
This is why I quit stackoverflow. I'm a top 2% but there became a point where people seemed to care more about the correctness of the information repository than they did about helping people.
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.
> care more about the correctness of the information repository than they did about helping people
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.
and they haven't succeeded. Try finding something for Angular 5 without getting bogged down in previous Angular stuff or seeing questions about tech choices that are ridiculously out of date because they stopped allowing people to post those questions in roughly 2010.
there's a place for freenode/gitter/matrix.org's '#programming' room and there's a place for 'correctness of the information repository' that SO provides
you think there is no value in an open question with upsie/downsie on SO? On freenode the answers are very much dependent on the time the question is asked.
Those questions invite lengthy discussion, which SO is totally not optimized for. A software like Reddit (not necessarily Reddit itself) would be more appropriate, in my opinion.
Personally I don't see how Reddit really differs. They both have up/down they both support markdown. SO doesn't have a frontpage or specific subreddits (although it does have tags).
It seems clear that their efforts to optimize for future readers have had a lot of success. It's a big part of why they are so popular and valuable. But I'd also be the first to agree they are far from perfect. So I'd think you'd want to sharpen or reform the rules they use, rather than uniformly push them in any one direction. And so I wouldn't agree with blanket criticism of the idea of an information repository.
Complaints about SO remind me of the Louis CK bit about WiFi outage on airplanes. "Everything is AMAZING and no one is happy." SO is a miraculous effort that took a mob of people and harnessed the best aspects of their social nature to build the best Q&A site ever seen. But it's a little annoying sometimes to people with Copenhagen morality love to have on it. SO tram knows this of course and they make a lot of UI tricks to be very friendly and gamified. The site was designed by a world class product manager and it really shows. (It's one of the biggest and best Microsoft/ASP/.Net(!) sites on the internet, especially for non-Microsoft content!). The parts where they aren't perfect
(like the ego burn of getting a question closed) are highlighted by contrast to the rest of the experience.
My annoyance is when a question is closed that I've understood and am answering by someone who hasn't understood it and has poorly marked it. Also the group think of librarians winning without a healthy conversation about it.
There is also a tendency to try to mark something off-topic as quickly as possible... occasionally you see this in the Hot Question feed. A good question was initially voted to be off topic.
I saw this once with a question where some kid was asking about something wildly off-topic like how to make friends or meet a girl or something. Tons of people jumped in to answer. It was quickly closed, and rightfully so despite being interesting to the readers of the site, as it has nothing whatsoever to do with programming. Being a hot question doesn't suddenly make it on topic.
That kind of attitude is a recipe for stagnation. Sure, SO was better than everything else when it came out, but there's always room for improvement. And, as it shows, if they don't keep improving, then the quality and usefulness of the site goes down.
Don't get hung up about the rep, this mostly depends on how many people your answers are useful for, rather than how hard the question was to answer. I have answered some hard questions, but get 90% of my rep from a single answer which is the first Google hit for a commonly encountered .Net exception.
I think the problem comes from a similar place as Wikipedia's: someone who only changes things they understand will, all else being equal, change far fewer things than a megalomaniac with vastly inflated views of the quality of their own actions. Therefore the greatest fraction of all changes will be owed to the megalomaniac.
I wonder whether instead of closing topics as "off-topic", "duplicate" or "whatever", which can obviously be perceived as negative to someone, might it be a better alternative to do the opposite? Instead of blacklisting "bad" questions as "off-topic", how about whitelisting "good" questions?
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.
This is a really good point - people seem to get hung up about questions being closed, even though "closed as duplicate" is a win since it means somebody already answered your question. If you just called it "promoted to FAQ" or something...
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.
Yes it is hard to ask good questions, especially when you are just starting with a technology and lack the proper terminology and mental model - which is the phase where you need to ask the most questions!
Yeah - I don't mean to imply this is all Stack Overflow's problem! I think more could be done, but the 'unknown unknowns' situations is really hard to provide support for with anything short of sitting down one-on-one and working through the topic.
> If you just called it "promoted to FAQ" or something...
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.
Good point. I think there's real value in replacing even just the verbiage of "Closed as duplicate" with something like a "Related Questions" section. It would remove a lot of the hostility, intentional or not, felt by newcomers making their inevitable mistakes, which goes right to the heart of one of the major goals Joel mentioned in the article.
I'd take that a step further, in that adding a link to a related (or even duplicate) question shouldn't _close_ that question, it should be a potentially valid answer to this person's question.
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.
It does work like that to some extent, since closing as a duplicate require a certain number of votes. But this could probably be improved as per the suggestion, as it seems many people have experienced inappropriate "closed as duplicate". It seems to be one of the major complaints in this thread.
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.
They actually do that, too, at least for some period of time. I've searched for a particular question, had a SO result pop up as a result, then clicked on it to find it has a header that says, "This is a dupe of question xyz" with a link to the original. The dupe is still up and may still have answers. So it seems to me that they already do this.
Well if the question is a legitimate duplicate then it is clearly a win for everyone, not least the one asking the question, since now you have a link to answers to your problem which have already been written. Which means now your problem is solved.
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.
I'm in the top 3% and I've noticed another thing: it's enough to have 10k points to be in the top 3%. I haven't been answering anything for a couple of years, and I still get something like 200-400 points per week/month - it depends. So I think I will be in the top 1% next year doing absolutely nothing :)
Yeah I naturally rise off the basis of a few popular answers. Enjoyably one of these is a rant about the naming of different flavours of the MVC pattern (which I assert as pointless marketing).
Top 5% here. And yeah, I have not participated for the very same reasons:
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.
Have you experienced that your answers are removed by mods because they does not live up to standards? This is only supposed to happen if the answer is outright spam or offensive or totally unhelpful. Otherwise they are just downvoted.
Can you provide a link to an answer by you which was unjustly moderated? I can vote to re-open it.
I'm a top 2% rep user as well and I couldn't agree less.
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.)
at the time where the mods began to gain power there was a groupthink, a culture and no election since has been able to shift that default.
I don't like how the rules work but because I don't share the groupthink nobody cares. IIRC Whenever I tried to express these views on meta I got downvoted because "people are just blowing off steam, its a different culture here from SO".
It was ugly, I hated it. It felt like I was 13 years old again.
Same here. I stopped contributing years ago because my stellar answers were completly rewritten by the community for stylistic purpose, not content or typo. I didn't recognize my work anymore.
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.
They took all the joy out of my character too. First it was the swearwords because of corporate firewall, then it was the cutesy language, then the slang, the capitalisation and at that point I no longer existed as a person anymore.
It isn't just novices. I've been programming for 30 years, and I wouldn't dream of asking a question on SO, because I simply don't loathe myself that much. I've seen this before with Wikipedia. SO culture gives me the expectation that odds are asking my question will be a waste of my time.
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.
I do appreciate that SO does help beginners. This is part of an ongoing recent discussion that has been critical of where SO fails. I am far from convinced that SO's culture is really some deliberate Miyagi-style ruse intended to teach you that you had the power inside you all along.
This is simply not true. I often ask on SO and I don't need more than 5 minutes to produce a good question. I've read the faq and the guidelines though...
For anyone that clicked through to his 1988 question on comp.lang.c ... what was causing what he was happening? I'm assuming something with an old version of gcc, but I can't reprocue it- I get the correct result using both cc and gcc.
Every HN conversation about Stack Overflow is full of carping, so I feel obliged to say: I love Stack Overflow. It has saved me days of work, and I've really enjoyed helping people when I could. It was a revolution, and I would hate to return to the days of searching old phpbb forums for help (and if I was really desperate creating yet another account to ask something myself).
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!
> 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.
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.
Ask anything optimization or performance related and you get a string of "premature optimization", "let the compiler to it", or "use this library" comments.
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.
It's worth noting that Spolsky lost the "How do you move the turtle in LOGO" philosophical debate. [1] Atwood won and thus people get an excuse to treat people badly. Particularly relevant is that people get an excuse to treat new comers particularly badly. Sure, there's a scale at which aggressively closing questions is administratively necessary. [python] or [android] are at that scale. But the small corners of StackExchange are often dominated by Usenet behaviors because such behaviors are sanctioned from on high. Policies that encourage treating people badly are established by fix or sixteen votes on the related Meta site. And blessed in the moderator discussions as site wide policies based on the administrative needs of tags like [php] on StackOverflow.
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.
As Spolsky describes in the recent article, the question was seen as problematic by Atwood because it didn't reflect enough research. Atwood even deleted it in 2011.[1] A moderator later restored for historical relevance. But the site's policies reflect a lot more of Atwood's personality than Spolsky's...most unfortunately.
> we could improve the prompts we provide on the “Ask Question” page, and we could provide more tools for community moderation of comments where the snark currently runs unchecked.
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.
"And programming is hard enough; we should see our mission as making it easier."
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.
I see a lot of people complaining about SO because of duplicates, barriers, etc but it seems that none of those people actually read the article.
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.
196 comments
[ 4.5 ms ] story [ 242 ms ] threadJoel, if you are reading this, it's difficult to find your archives on your new site.
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.
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?
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?
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.
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")
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.
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 seems low, to be honest.
Seems suspiciously low to me, I suppose that's not counting page views.
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?
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.
That's the wrong question. (Hah!) A better one: What do you think about complicated, difficult questions?
Answer: apparently, not much.
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.
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
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.
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.
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.