-- found the very first (most relevant) link to be to StackOverflow
-- jumped to it
-- found that some other programmer had also asked the same question
-- found that other SO members had given the question and its answers hundreds of bonus points (useful!)
-- and found that the SO mod-nazis had shut it down as "Not considered a good, on-topic question"
An example might be, what are the differences between git and mercurial, where the answer is not a line of code but may include informed judgments by the people whose judgments I'm most interested in. As a developer, I have to make a lot of decisions, and not all of them are about which characters to type.
So I have to live with whatever answers well-informed SO members managed to sneak onto the page before they were chased away and the gate was locked.
Does it seem to anyone else as though there might be something wrong when this happens over and over again?
+1 for providing an example, but "Git vs. Mercurial" belongs on someone's blog, or on Wikipedia as a comparison matrix.
Now if you have a specific question about some aspect of Git compared to Mercurial, that can work on SE. But as a broad kitchen sink, catch-all, "compare these two giant things kthx", you'd end up with Gorilla vs. Shark.
Asked and answered by your number 1 user, John Skeet. Basically he had specific detailed information to share, and he did it by asking and answering his own question. Something encouraged by Joel on the old podcasts if I remember correctly. Hugely upvoted, so the community thought it was great, but one of your moderators closed it as "not constructive". This is endemic at Stackoverflow. As SiVal points out, the best material on the site is routinely shut down. How does this make any sense? I have 2k8 rep points and used to visit often, but I find the excessive moderation hugely off-putting and I now rarely visit.
Now if you have a specific question about some aspect of Git compared to Mercurial...
So, when trying to get your bearings in a new area or get an idea of what the issues are, asking experienced developers what they think you should know is bad behavior that can't be allowed. The risk is just too high that between the useful answers there might be some that you couldn't use. Better to have no answers than to have that.
StackOverflow should not be about using experienced people as advisors; it should be about using them as documentation.
Getting started in a new area is what tutorials are for, not a Q&A site. I generally don't like deletionism, but in this case I understand the decision.
Would that be the git tutorial or the mercurial tutorial that is a better source than experienced developers for advice on how the two end up differing in practice?
Eh. Wikipedia comparison matrices don't actually explain anything, and blog posts are only equally useful if they form part of a community-curated collection of similar posts (or are written by people with really high credibility).
It is certainly possible to replace SO in this capacity, but it's far from trivial. Of course, whether or not SO should be focusing on foundational education is up to you & company.
This reminds me of Wikipedia deletionism, as if either Wikipedia or Stack Overflow will run out of space and they'll have to move into a new building if they don't clear out these topics. Why not just keep them and keep getting the Google ranking and free advertising?
Joel recently tweeted something to the extent "You think you should have the right to ask anything. The fact that we don't allow that is why your happy when SO shows up in your google search."
I do not think that is a valid argument. If I gave you a house a hundred times the size of your current house, and then dumped the equivalent of ninety house contents of junk in it, would you be happy?
(Almost) every bit of knowledge that is on StackOverflow can be found elsewhere on the net, too. People go there not because it has knowledge, but because of its density.
I disagree, as long as there is knowledge to be gained it's helpful to all of us. If a community loves the questions why delete them? I especially like reading this kind of posts because seeing lots of different opinions as to what is better in what situation can help me make the right choice. And it has some entertaining value much like the "new programmer jargon thread" or this one http://stackoverflow.com/questions/58640/great-programming-q... which, of course, I can't see anymore. I myself like to read these quotes because they often contain simple and elegant truths.
You make the following points for why they shouldn't appear on SO
- Nobody needs to know the answer to this question.
-> There will always be someone looking for the answer in question. Surely a lot of people would like to know it still. I googled "Git vs Mercurial" and it has 965.000 results. I suppose at least few people thought it was worth discussing.
- It’s not nearly specific enough.
-> A or B. Seems specific enough to me. And the difference in the opinions and experience of the those who answer will bring a depth and specificity that can not be found on Wikipedia or a blog post. If all the answers in life were as easy as A or B, life would be a lot easier.
- It is difficult to learn from these questions.
-> This is where I disagree the most with you. A person who hasn't used one of both will surely gain some insights why or why not to use A or B
- It drives away experts.
-> I only see it attracting people as there are lots of votes. Of course that doesn't disproof your claim. But perhaps you can show us the numbers? Do you see a disproportionate larger amount of votes from people with less points?
What I think are good reasons are:
- Perhaps you want the site to remain clean Q&A not Q&O(pinion)
- You want to avoid opinion battles as they can get out of hand
As for the opinion battles. I can understand. But I still value the opinions. And whether an opinion is constructive should be measured by it's upvotes.
But the clean just Q&A. As I said earlier. There isn't always a clean cut answer to a question. Life would be a lot easier if it was.
And to answer the Gorilla vs Shark question the answer is obvious. If you're on land the Gorilla will win. If you're in the water the Shark will win. And that's what you can learn from such a question. That's what someone is looking for if he's Googling for "Gorilla vs Shark"
Can you be better about deleting these things or at least getting them out of Google? If you're going to shut down conversation, it seems rude to keep your spot high in the rankings.
At risk of being banned forever, yes, this has been my experience with the site since its inception. Judgement is one quality of a solid developer and SO fails to impart The additive judgement of its participants.
Though I found the git vs. mercurial question useful, a question's popularity does not in general indicate it belongs on SO. Look at the front page of Reddit to see what popularity can do. I'm glad SO doesn't move in that direction.
SO has a narrow purpose. There are many good questions that don't belong there. The git vs. mercurial question (and most similar questions) would be a better fit for programmers.se (and it is almost exactly the need quora is looking to fill).
For Christ's sake, we have this discussion every day. The StackOverflow thing was a MacGuffin, and now practically the whole thread is discussing the MacGuffin instead of the actual content.
Every time when people get to rule their own kingdom and get to decide what's Right(TM) and Wrong(TM) this is what happens.
It doesn't matter if it's informative, useful or, oh horror of horrors, entertaining, all that matters is that it is Right(TM) or Wrong(TM) in the eyes of those high on their power trip, and there is no point in debating it.
And no Jeff, most communities don't just tend towards increased strictness over time, they tend towards death and abandonment, no matter how big they were at the height of their popularity. Stifling the natural development of a community because it doesn't match your "vision" rarely works out well, both online and IRL.
Such a strange post. Jeff spend the first half arguing that the qualify of the second half somehow decrease the quality of Stack Overflow. I liked the second half better.
I've never understood why Jeff and Joel felt these kinds of questions should be anathema on Stack Overflow. Most of the information on Stack Overflow exists in some form or other elsewhere. The value-add that Stack Overflow provides is community-based filtering and maintenance. Not only are these questions entertaining in their own right, but their very existence enhances the feeling of community on the site.
Also, it wasn't as though they were using some off-the-shelf software to run the site. They could have provided an outlet for this kind of thing, which all communities want to do, within the context of the site.
I still think StackOverflow is one of the best sites out there for programming and development information, but I am increasingly finding that the posts that attracted me to StackOverflow in the first place are closed as not constructive by SO mods. These posts, almost inevitably have a significant number of replies and discussion.
I actually think that it is rude and disrespectful to your community to shut a topic down that has nothing blatantly wrong with it (like flaming/cussing/banality) just because it isn't the correct "fit" and might (shocker) involve an opinion.
I can't help wondering that if SO continues in this vein, how relevant it is going to be in the near future.
Oh boy Jeff, I love your work, but you are so way off beam with this one. The over zealous moderation of StackOverflow is insane and it's killing the site. Seriously. If the community votes up questions and/or the answers to those questions, then that is all the indication you need that the material has real value and should not be shut down. You've just proved it yourself. There's a ton of educational value in the material you've reposted. The fact that there's comedic and entertainment value also is just a lovely bonus. And you think deleting this is the right thing to do ? Really ? Please rethink this before it's too late.
I disagree. Seeing that someone uses "banana banana banana" as a comment placeholder, or that they refer to clueless programmers as "Jimmy"... is not illuminating my day to day work at all.
I guess it depends on the use case. I never "hang out" on StackOverflow (though maybe I should). I find it through Google, so I never see the non-sequitur posts. I had no idea that content like that even existed there. Knowing that you guys have posts like that is so great for the brand.
No, but seeing that they take the time to say, 'what would someone not fammilar with this do?' is very useful. The question of new jargon could be viewed as what novel things do you do that are so common for you, but uncommon for most people, that you had to create your own word.
I'm with you on this one, please keep at it. How many times have you seen a (for want of a better phrase) Reddit-esque comment on HN that contributed nothing, had plenty of upvotes, and was then followed up with "This isn't how we do things on HN" comments? There is nothing wrong at all with wanting to keep your site on-topic and /focused/.
I don't have a particularly strong opinion on this one way or another, but I lean towards the side of less strict moderation, and I think that very metaphor fits my reason why:
For me, one of the biggest advantages of the college classroom over the high school one was that digressions, side topics, and open-ended discussion occured far more frequently in my college classrooms than in my high school classrooms. Think of it as the difference between being taught to a test and just learning things. There still needs to be some moderation so that things stay focused overall, but often those side trails spark some really interesting, useful discussions. Education doesn't have to be narrow.
I think your analogy perfectly fits why I like strict moderation in SO. I hate hearing my CS classmates demonstrate their "intelligence" in the form of questions they already know the answer to, and I hate when the class gets sidetracked by hypothetical situations that will never pertain to me. I want to learn things and move on to the next class. Same with SO: I want my answer so I can get back to the project at hand.
"Same with SO: I want my answer so I can get back to the project at hand."
The problem there is, where does the motivation for people to provide you with "your answer" come from?
Do you really think there's pool of people out there who think "Maybe RegEx has a problem at work today, I'll just go check StackOverflow to see if I can answer todays question for him."?
Or do you think it's more likely there are a bunch of people interested in various coding topics, who enjoy discussing problems and solutions? How long do you supposed that second group of people will hang around if "strict moderation" starts deleting any "interesting discussion", because questioners are complaining "I just want my damned answer!"?
Sure, StackOverflow reputation points are one source of motivation, but if I had the choice between getting my questions answered by people wishing to maximise their StackOverflow reputation, and getting my questions discussed by people who're interested and engaged experts in the field - I'd join the second discussion every time.
Discussion is the operative word. We only tolerate the minimum amount of discussion necessary to generate a better question and better answers (ideally in the form of edits, not an endless stream of back and forth bickering that nobody will ever read), and no more.
If you're looking for a system that is designed to solicit discussion, Stack Exchange is not that. Not by a long shot. It's kind of the ... opposite of that.
Hi Jeff! I really don't understand your posts regarding stack exchange here. Now and in many previous threads, you defend stack exchange by explaining the model, as if we didn't understand it. Everyone here complaining about the stack exchange network understands the model perfectly. We don't buy it! We don't like it! We don't believe in it. We complain about it because we believe stack exchange would be a better place if things were done differently. Reiterating the same old story over and over again accomplishes nothing.
hmm then wouldn't it make sense to create a new stack-exchange site just for programming discussion and these type of questions that don't qualify for stack-overflow and move them there? stack-discussions or something?
That way there would be a place for people to have these discussions while keeping it separate from stack-overflow?
You're far exaggerating the scope of my comment, and you somehow boiled it down to a false dichotomy of "Do you want people motivated by points, or people who are experts?"
Discussions over the best solutions happen frequently on SO. Poor solutions are criticized, good solutions are expanded upon.
> The problem there is, where does the motivation for people to provide you with "your answer" come from?
Easy. Some people just love to educate. I love to educate - I write tutorials frequently. Some people use SO to educate, while others use forums.
Part of the beauty of SO compared to an actual classroom is that the more open-ended discussion going on in a different question wouldn't keep your question from getting its straightforward answer. It would be read just by the people who found it interesting, instead of taking up shared class time.
I don't think the jargon question example from the article here is well suited for even a looser SO, as it's more entertainment than education, but there are lots of productive questions that don't have black and white answers that I've still enjoyed seeing SO discuss.
But these kinds of posts don't interfere with learning.
I actually learnt a bunch from those jargon examples - I'll certainly start using some of them at work. Jargon exists to make communication more efficient - I just learned a bunch of new ways to communicate about my craft.
If Stack Overflow is the classroom, frat row would be more like My Little Pony discussions. Questions like "What programming terms have you coined?" would be more for the breakroom or the cafeteria...you don't want them to get mixed in with the proper instructional material, but at the same time you don't put them all the way across a major thoroughfare.
What we are complaining about is the killing of discussion that promotes learning.
You have to ignore your users sometimes, and maybe this is one of those times. But if you are getting a consistent message from your users that they're unhappy, I hope you're at least listening.
Characterizing the people who want more reasonable^H^H^H^H^H lenient moderation on SO as wanting a frat house atmosphere makes me think you're not really listening.
Over where? Seriously, I can't find the frat house.
Is there a sanctioned place for people to post this sort of meta-programmer stuff? You find little scraps of it from time to time, is there a stack exchange site that can be used for fun stuff?
I think the real question is why hide things to people unless they have a certain reputation. I understand locking a question, but I don't understand making a question with answers inaccessible. Does this serve some purpose I'm unaware of?
Not if a moderator locked and deleted it - a 10k user can then only view the question and vote to re-open it. Sometimes the moderators act extra viciously by editing each answer before deleting the answers as well. That way the user can't recover their own answers in order.
Suppose you we're in charge of a q&a site whose quality was going downhill. How would you go about fixing it if not for locking and deleting questions?
I don't think there's any evidence that these extremely popular, "fun" questions have any effect on the day-to-day programming queries submitted to StackOverflow. I haven't seen any presented.
Some people have an intuition that the presence of these historical bits contributes to a reduction in quality. I think that intuition is mistaken. Who knows who is right or even if that's a meaningful thing to ask. We're just discussing preferences.
/r/programming should be enough of a cautionary note.
The mob is always happy to stoop to lower levels of discourse. It cannot be trusted to govern itself as a site grows. And most of the Internet is more than willing to cater to this out of fear of losing visitors. I say bravo. Let the 'gregarious' go elsewhere and live in the land of forum signatures, endless bike shedding, and editor wars once again.
Yeah, because edit wars are surely better than editor wars, and what we're doing now (with Jeff here!) is not bikeshedding.
The only questions on SO are the trivial questions that could be answered by reading some documentation. If questions are broad or open ended, the value lies in the discussion, not in any particular answer. I also found that many accepted answers are blatantly wrong. For me, SO has no value. /r/programming doesn't have any value either, but that doesn't make SO better.
SO wishes to remain a Q&A site, rather than a discussion site. They're intentionally limiting its scope. This is a very good thing.
There is a huge opportunity for a quality, ruthlessly moderated programming-centric discussion site. I'd argue that an aggregator is suboptimal over the long term due to the economic structure of the Internet favoring eyeballs over quality content.
I do agree that SO quality sucks at times, though.
So what would you do instead? Ignoring stack overflow (which I think is doing fine). How do you improve a community who's quality is declining? Do you just let it run its course for better or worse?
Personally, I think that unless you foster a community that'll self-police the quality, nothing else those "in charge" can do will help much in the long term.
I deny the charge that it was "going downhill" before all the deletions started. If the "quality" is declining, then it is due to the vast quantities of new questions being asked, and the inability of regular users to find questions that they can answer.
Yogi Berra described the situation as "Nobody goes there anymore. Its too crowded".
Since the men get Mad Girlfriend and Hooker Code, I'd like to add 'Old Boys Club': libraries that you will never for the life of you get to work on modern operating systems and force you to stay on Python 2.4.
An author who has the bad taste and poor judgement to publicise concepts like the "Mad Girlfriend Bug" doesn't have the right to legislate good taste and good judgement anywhere, even on a website he runs. It's automatic disqualification, no appeal.
NADS - Non-Authoritative Data Source - a condition where there are multiple sources for the same piece of data, usually manifesting itself via the same data existing in 2 Access files and 3 different Excel files continually emailed around between people over years.
"Yoda Conditions" takes the cake. It's pretty interesting how a commutative operation such as `==` still has certain conventions. Then again, `==` isn't guaranteed to be commutative in Ruby, since it can be overridden (which I'm not a big fan of).
Of course, this applies to most languages where the concept of "equality" can be extended, from C++ to Haskell. You just have to rely on the implementer of the interface to obey the appropriate laws.
This is part of why dependent typing (as seen in Idris and co.) is so interesting: you can actually require, for example, that implementations of the equality interface are commutative, and this will be statically checked by the compiler.
They were invented to defend against a (mis)feature of C and some other programming languages, where you can use '=' in an expression when you meant to use '==', getting an assignment instead of a comparison. If there's a constant on the left, then this would be an error. However, most compilers now generate warnings in all of the cases where Yoda conditions would've helped, but conventions tend to outlast their purpose.
If you make a habit of making the left side of == immutable, the compiler will let you know when you type = instead. Of course, gcc throws a warning unless you type
if((x = 3)) if you genuinely want to do the assignment inside the if, which works just as well but requires tool support.
What tool support does it require? I certainly hope there are no tools generating assignments in conditional expressions, and the only other tools that need to support it clearly understand parentheses.
The warning itself is dependent on your compiler squawking when it sees "if(x = 5)". The C spec doesn't require this. On the other hand, "if(5 = x)" will be thrown out by any C compiler.
I rubber duck A LOT. But instead of talking to a rubber duck, I talk to my girlfriend (we both work at home). It's an amazingly useful technique.
This also reminds me of a House M.D. episode where House is on a plane without his team, so he has to get a regular person to talk to, to finally solve the case.
Interesting fact about "rubberducking": orignally a Hollywood slang for explaining a character's psychological background as an alibi for everything it does ("Someone took his rubber duck when he was little, so now he kills people"). There's a good explanation in Sidney Lumet's Making Movies.
I am not a native English speaker, can someone explain what "Counterbug (a bug you present when presented with a bug caused by the person presenting the bug)" means?
I am a native English speaker and I'm having considerable trouble parsing that :-)
I think the idea is: you report a bug in code that I wrote, and I (childishly) retaliate by reporting a bug in code that you wrote (the bug I report is then a 'Counterbug')
One from my workplace is "potato" as in "extremely low hanging fruit", features so easy and cheap to implement it's just like picking them up off the ground.
Pokemon exceptions - our level editor embraces them :)
The result is, if something goes wrong, all you get is grayness, what follows is run Visual Studio, reproduce the bug, make sure that now catches exceptions before you, and hope it's not a heisenbug...
The big problem is there isn't any place to have a legit open discussion about IT things. Ever since Joel closed the old JoS board (due to him demanding everyone sign up), there isn't a place to shoot the shit. Half the questions that used to be asked on JoS aren't allowed on SO, and their black and white attitude towards what the site is and isn't makes it feel very unfriendly if you ask something that isn't on-topic, you get it closed without even being pointed to a better site, it's literally just telling you to GTFO and slamming the door in your face.
I wanted to forward this to someone non-technical (a product manager, actually the CEO of this tiny startup I help with) and found myself explaining the yoda conditional, and then I wrote stuff about spectacular versus subtle failure, and the whole thing turned into a small blog post:
http://www.thesatya.com/blog/2012/08/yoda_conditions.html
There are two parts. The meta part, which is "why is this deleted? should it have been deleted? can you reasonably expect anyone to learn from this question? what happens when a site is overrun with questions like this one?"
And then the content, which is a mirror of the deleted question.
I don't mean to imply that you didn't author anything of value in the post. The meta was certainly of interest. I'd just hesitate to call a few paragraphs of discussion of the reasons behind SO's moderation your "best post ever."
Come to think of it, I wouldn't call an array of proposed/observed novel jargon that either, regardless of its source.
Believe me, I have serious issues with the "top N funny things" sorts of content that rules the web, and that is reflected in the design of Stack Exchange.
At the same time, I am torn, because you can learn a little bit from content like this. And the audience loves it. If we didn't have any systems in place to tamp down on poll/survey/opinion questions, Stack Overflow would be virtually nothing but those kinds of question. They are INSANELY popular.
How about an extra core site that isn't required to follow the "every question only exists to educate those who end up finding it through Google" pattern of the rest of the StackExchange network, but simply serves as a StackExchange-powered community forum? Of course, It would only really make sense if whole topics could be pushed there with all their comments and votes intact; otherwise it would just be a ghetto to shove overly-gregarious users into.
The problem is when the question is closed and there isn't even any "Ask it here" type of answer it's just gtfo we don't want your kind. Ever since Joel shut down the old JoS board there has been NO good place just to discuss programming/IT things. The whole concept of SO is flawed because it encourages black and white answers, not discussion!
8. Heisenbug
Source: Unknown
A computer bug that disappears or alters its characteristics when an attempt is made to study it.
On the other note - I personally think most online communities tend to get more lenient overtime. I'd be interested in any further reading on that matter.
Cute name, but inaccurate. The property of things changing when you observe them is not the Heisenberg uncertainty principle, it's the observer effect. These often confused ideas are unrelated: http://en.wikipedia.org/wiki/Observer_effect_(physics)#Quant...
"Heisenbug" as a term has been around for a while. It's one of my favorites, too -- despite referring to possibly my least favorite part of programming.
Timing-related errors make the worst heisenbugs. I had one once where pausing through the code caused the code to work, so I cobbled together a quick debug logging facility for it, and that still caused the code to work just fine. Anything that altered the code by more than a few milliseconds of execution time caused it to work OK.
I stared at it for a while and then rewrote the entire block in disgust.
I know one multiplayer Flash service has a problem where their server clocks had drifted apart, and it caused all sorts of crazy issues. Took them a couple of weeks to figure it out and fix the problem. Not quite a Heisenbug maybe, but close. (http://playerio.com/forum/multiplayer/room-disappears-from-l...)
I've had bugs before that have seemed to come and go for absolutely no reason - I think they involved corrupted incremental compilations, but who knows.
Ran into one of these about a month ago. I was working with some sketch PHP that was resulting in a seg fault, when I attached xdebug and stepped through the code, it ran fine.
Just the other day, I was struggling to concisely explain the problem with a system I've been tasked with rewriting. (The question was why are we not reusing X, Y and Z?). If only I'd read about baklava code that day.
I'm not sure why SO feels the need to delete posts like this. I get that the "question" isn't keeping with their stated objectives, but I find the answers to be enlightening in some respects. I've learned about many new technologies and frameworks from the "What is the best X to use for Y" questions that get posted frequently. I don't see those as detrimental to the community like the SO mods apparently do.
Pedantry is inevitable when programmers are in charge ^^
Seriously though, there's not a good argument for deleting it. There are plenty of terrible, off-topic, garbage questions on there to be closed. Why focus the few that, while probably off-format, result in entertaining (and sometimes) enlightening results? Sure, if the site was flooded with posts like that, then maybe. Maybe.
But its not. Its just one group deciding to be pedantic. Nothing more.
Two reasons. 1) broken windows and 2) opportunity cost. It's like Kudzu: the more you allow, the more there will be, because it grows like a weed and it is insanely popular.
Clearly there is high demand for these kinds of questions. I've noticed a lot of the more general/meta but serious programming questions are flourishing on the Programmers SE site[1]. Is there one for fun programming questions yet? I'm kinda surprised there's not when clearly the community wants to engage in one.
-- had a programming question
-- googled it
-- found the very first (most relevant) link to be to StackOverflow
-- jumped to it
-- found that some other programmer had also asked the same question
-- found that other SO members had given the question and its answers hundreds of bonus points (useful!)
-- and found that the SO mod-nazis had shut it down as "Not considered a good, on-topic question"
An example might be, what are the differences between git and mercurial, where the answer is not a line of code but may include informed judgments by the people whose judgments I'm most interested in. As a developer, I have to make a lot of decisions, and not all of them are about which characters to type.
So I have to live with whatever answers well-informed SO members managed to sneak onto the page before they were chased away and the gate was locked.
Does it seem to anyone else as though there might be something wrong when this happens over and over again?