This is just an alternative for guidelines! It's like asking the developers what they really use in their daily code.
... I implemented so, that the title and the language are required, the description is not, so you can just have.
Use PascalCase for methods.
and added the C# tag, for example
Ok - but do you think that (continuing the example) the JavaScript entries do add up to something more than just what Lint says to do? Cos I can see it.
I do think there are benefits in more assistance for people with style and structure - I was just wondering if a longer format would suite the need better.
I think there is no right or wrong in writing code, it's a matter of style, so at CSG you have different alternatives and you can just pick what you think is most convenient for your code!
I dont understand what you mean by "if a longer format would suite the need better"
Surely "style" is more than "use === not ==". That's a tip - and perhaps not worth a lot as a tip if there is not a full explanation to back it up. "Why not?" and "What's wrong with that?"
Does not style devolve from structure? Hmn - maybe Structure devolves from Style. Tricky - thus I think that without a "long form" explanation of what you are trying to achieve and thus how each "tip" fits into the objectives then the contribution is lessened.
The original objective was to write "better" programs in a new language - a very worthy objective but without analyzing what "better" means and how any component contributes to "better" then I am not clear how you have advanced things.
I laud your objectives - and was just wondering about (grin) the style.
Not at all, Coding Style Guide is not a Q&A site. This is more of opinion. I just focused in guidelines (best/bad practices, conventions, standards, and so on...)
The idea is to make the code universally readable for anyone!
These are editable by anyone and people already on GitHub so it makes it easy.
I don't want to rain on your parade, I think the site is a great idea, just expressing what I think it would need to succeed. I was trying to go to about or sign up and it timed out, I'll be back later to check it out.
Yeah, you definitely don't want it wide open. Now that I got to the signup page I see you have github + twitter + facebook for signup options so it appears I was preaching to the choir :)
Having a wiki-page regarding a matter of contentious opinion just results in edit wars, because at any time only one point-of-view can be presented as the "accepted" one.
Whereas, on a Q&A-type site, you can have "idiomatic way to do X in Y" as the question, each person's point-of-view as a possible answer, and then the community can just vote the most popularly-agreed answer to the top, instead of editing a single answer back-and-forth.
Stackoverflow is mostly kind to newbie questions; Serverfault however however seems to be moderated by a bunch of stuck up assholes. I had a newbie question when I was setting up some dedicated servers for the first time: my newbie question, about networking/nas etc, got shutdown with bunch of snarky comment on the line of "hire a trained experienced networking guru". I have never gone back since then.
I've seen many noob questions on StackOverflow that go either way, and many on SF that also do the same. Every moderator is different -- there are plenty of overzealous ones on StackOverflow and plenty on ServerFault.
I obviously have no clue what your question was but I can understand this attitude to some degree. Let me explain.
I contributed a lot to StackOverflow in the early years. Most of the questions were interesting and not answered before. I almost stopped contributing in recent years because now there are so many trivial questions and questions that have been answered before. I see no value in explaining how to sort a list of peaches when there is already a question answering how to sort apples and one how to sort oranges. And I never understood StackOverflow as having the goal to teach programming but to help solving non-trivial problems. Now there seems to be a ton of question like how do I open a file in Python. More and more people seem to just ask everything on StackOverflow instead of reading a manual, a book, a tutorial or at least look if there is already an answer that can be adapted to their problem.
I can not quantify this, it is only my personal understanding of what questions should be on StackOverflow and what should better be looked up elsewhere, but I can to some extend understand that people get annoyed be some questions.
I personally like the "how to open file" questions. Even though I have been developing software for ~15 years, I often forget basic file I/O syntax when I need to switch languages which is rather common lately. I remember how file I/O works, how to make it efficient, etc. But the syntax? Yeah I forget that, and I find StackOverflow to be a great reference manual. Often the official manuals are verbose which isn't what I want in this case. I just want a quick example to remind myself of the syntax.
Yeah I agree with that. However Google usually does a good job of finding the "best" version of a particular question and making that the first or second result.
That is where we disagree - I don't think of StackOverflow as a reference manual. Admittedly I am mostly a C# developer and Microsoft does a really good job when it comes to documentation, at least in most cases. If you never saw it before and even if you hate Microsoft, have a look at their documentation. Here is the System.IO namespace http://msdn.microsoft.com/en-us/library/system.io.aspx and the reference manual part is just the tip of the iceberg.
This is actually a really great demonstration of your parent's point. I think the link you posted actually leads naturally to the question "ok, so how do I put all that together to actually open and read a file". Sure, you can figure it out by reading API documentation, and the more times you do it, the easier that becomes, but a resource where somebody has demonstrated how to actually use that API to open and read a file is valuable. There are lots of various "cookbook" books for this sort of thing, but the QA format also works really well for it because it publicizes problems that lots of people have had, not just the authors of a given book. Maybe SO isn't or doesn't want to be that kind of resource, but I think it is one valuable use case.
Find File.ReadAllLines() [1] or whatever fits your needs and scroll down to the example section. Java has similar documentation, too. jQuery documentation has thousands of examples. It's all there, no need to ask. And if you can not figure out how to put together 3, 5 or 10 library or API calls then get a book about the basics of your technology and read and learn it. Asking stuff that is already out there is just wasting the time of other people, time that is better spend answering questions without an existing answer.
Asking stuff that is already on StackOverflow I agree, otherwise I don't. On SO people vote, and the answers can be edited, so a very good answer among any documentation anywhere is often near the top of the SO question.
At least in my opinion it is not and it should not be the goal of StackOverflow to duplicate the documentation of programming languages, libraries or what ever - there is just no value in that. It is of course something different if there is no or only bad documentation but this is just not the case for a lot of questions asked. I have absolutely no sympathy for people that are to lazy to look at the documentation and instead make other people do it for them copying or restating the relevant parts on StackOverflow.
Presumably SO wants to maximize its readership. What I've seen is that they allow any programming question, even of trivial nature, as long as it's objective not subjective. I like that and think it's a good way to maximize readership for objective stuff, because I often google for trivial things. For example, Powershell if/else/elseif syntax, if I haven't used Powershell in a while. I just found the syntax on SO within 10 seconds, with an example I can copy/paste/modify. I bet a lot of other developers use SO like that too, and I bet it's largely the reason people put trivial questions on there. My motivation is efficiency. Being efficient can be construed as lazy I guess!
I do the same - if the first search result is on StackOverflow I will of course just look at that. But if the first result is not on StackOverflow I will read whatever is there and not ask a question on StackOverflow unless the answer to my problem is not or hard to find. So in essence I am uncomfortable if people don't try hard enough to find the answer in existing sources. How long hard enough takes obviously depends on the context. For something I am an expert in I can conclude after a few hours that I have to ask. If you for example start learning your first programming language I would expect you to try at least a day, probably even a couple of days to find the solution by reading manuals, tutorials and books before you ask a question.
I really don't understand your apparent point of view that redundancy in documentation is somehow a bad thing. It's great that you like good canonical API documentation, I do too. But it's also great that some people find easier solutions to common problems more quickly using the Q&A format of SO.
There is value in duplicating documentation even wholesale and unmodified, if different duplicates are easier for some people to find and use, but there's even more value in "duplicating" documentation by presenting it differently, which is what SO is doing, even for many questions that you believe to be trivial. The more the merrier, if you ask me.
Now, of course, it would suck if you felt lazy people with already-answered questions were wasting your time. Then I would understand your point of view. But the fact is that you just don't have to answer their questions. If somebody else does answer it, well then that person probably didn't feel like it was a waste of time.
It's great when you have time to spare, to learn every nuance of a thing. It's worse than alternatives when you quickly want an example to copy/paste, which is usually my case.
For instance, compare googling for "c# run sql query msdn" vs. "c# run sql query stackoverflow". The latter has the better example and it's closer to the top.
From that I assume that you are not a professional developer, right? I never thought about in from that perspective but I think we should actually discourage copying and adopting code. It will probably solve your current problem in shorter time but I am quite confident that really understanding what you and your code are doing will benefit you in the long term way more, for example when you have to fix bugs, make changes or solve a similar problem.
Agreed! Been developing for a looong time. I switch between languages and OS's a lot. Say I'm switching back to Powershell after a hiatus and I can't remember if it's "if (this) {" or "if this {". StackOverflow may be my fastest way to find the answer and also get an if/else/elseif block to copy/paste/modify. Non-trivial code I copy/paste gets understood thoroughly and often heavily modified!
I agree 100% for duplication questions. I don't have a problem with the asker getting a little spanking if they didn't bother to do any research or put in any effort whatsoever.
As for "simple" questions, to me it seems all just relative. Basically, as long as it isn't a dup then I don't mind it being there. In some ways stack exchange has evolved to become a code snippet library. I guess I can see why some people might not like it, but it has helped me many, many times.
> I see no value in explaining how to sort a list of peaches when there is already a question answering how to sort apples and one how to sort oranges.
Does this not mean that the answers to both 'how to sort apples' and 'how to sort oranges' are not written in a way that allows easy applicability to peaches? The user probably didn't understand how to use the answers for apples and oranges on peaches. This probably means that the answers could be improved by making it clear how to apply them.
The problem might be that older questions are locked even when their answers are not perfect?
> Does this not mean that the answers to both 'how to sort apples' and 'how to sort oranges' are not written in a way that allows easy applicability to peaches?
Not necessarily. It could just mean that the person asking the question hasn't bothered to look at what has already been asked and answered.
I've been contributing a lot of answers to Stack Overflow lately myself[1], and I agree that, after a while, I'm tired of trivial questions popping up all the time, because frankly, they aren't interesting to solve. Not only that, but if you have too many of those on the site (which I think is currently the case on SO), then it makes it harder for contributors to actually find good, interesting problems to help solve.
Not only that, but badly written questions that have to be edited to improve quality, or where you constantly have to ask the original poster for more information in order for the question to be solvable, are a huge time and energy suck. At times, I don't feel like participating in SO because of that.
However, those are not reasons to be rude, and if you're a newbie and someone is being rude to you, I think you might have the option of flagging a comment and bringing moderator attention to it (though I'm not sure if that's peer moderation, or moderation from one of the official moderators).
There is nothing more infuriating when you have (what you feel is) a good question that gets unceremoniously shut down. I do sometimes think they are throwing out the baby with the bathwater at times.
But it's a pretty undeniable source of great info and I don't think I would be able to cut myself off from the site. I try to just not take anything too personally there - especially the actions of just one or two rude people.
Can you point to any specific answer? I clicked through a couple of the highest voted and a couple of most recent answers and they all look fine to me.
For ex somebody askign "Best way to optimize site speed for a large traffic website?" and the comments:
- I took a look at the site before I commented. Dollars to donuts the code is a nightmare pile of spaghetti "written" by people who have never even heard of design patterns.
- Probably to scrap the whole thing and start over with a decent CMS.
Funny thing, besides the curtness, is that he's most likely not even technically correct, since performance issues on web sites are rarely due to the choice of CMS or in its code.
large traffic website and 500-1000 visits minimum a day don't match to begin with. I am not sure if visits means request or visitors but neither one request every 90 seconds nor one visitor every 90 seconds should do any harm to any server. I did not look into the page but I have no problem to imagine that this comments actually reflect the best option. I don't even consider the wording especially impolite. Sometimes reality is tough.
If we don't know what's really wrong with a website it's no good to answer "use another CMS", it can be wrong and it's not helpful at best, it would be better to give some pointers on where to start figuring out what's wrong.
Also the pompous "design patterns" comment; a lot (30% ?) of web sites in the Internet run on spaghetti code (Wordpress, Drupal) and many are fine, if I had to I'd bet the CMS and its code is not the problem.
He said in a comment that he looked at the code so I assume he really figured out that the thing is build on top of BoonEx Dolphin Smart Community Builder, probably a version from around 2007, and looked at it. But lets stop here, we are assuming way to much.
> Stackoverflow is mostly kind to newbie questions
Can you elaborate? It seems most newbie questions on stackoverflow are closed, they get scolded in the comments about asking their question wrong, or someone posts a vaguely related link and claims without explanation that it is a duplicate question. Whether or not the system is effective, I don't see how it can be described as "kind".
I disagree. Newbie questions are answered as fast as they are posted because they are the ripest source of reputation. Of course, unintelligible and/or unanswerable (usually due to lack of information) questions are closed, but "Segfault in C Linked List" and "Why does x = x++ + ++x Give the Wrong Result?" questions are asked and answered every day (every hour?)
Server Fault isn't meant for newbie questions; it's meant for career sysadmins. It's the wrong place to ask for help setting up your first dedicated server.
But visit each site without being logged in, and they both lead with "Anyone can ask a question."
Regardless, the heavy-handed moderation and negative feedback cycle actually means that Server Fault is only meant for seasoned career sysadmins who shouldn't need a Server Fault.
Not because that was the intent of Stack Exchange, but in my view that's the end result of the generally hostile culture at Server Fault.
Don't get me wrong - striving for excellence requires high standards. But in Meta, their best answer to the question, "How do I ask better questions?" is 1,780 words long.
Could you wrap the 'logo-pro' img tag in an anchor instead of using js to redirect? Using js to redirect breaks ctrl clicking to open in a new tab, and keeps me from staying on your cool blog post.
Hey, I totally failed your user registration captcha about 5 times in a row. I've never had that problem in all the time I've been on the web, but it has prevented me from using your service.
StackOverflow totally missed the boat, and I think your idea isn't much better (because coding standards is only ONE of the many opinion-based areas that we're all interested in).
StackOverflow could totally have had "poll your peers" questions, in addition to the fact-based Q&A that the moderators there prefer.
They could have politely shuffled opinion-based questions to another area, maybe even another StackExchange site.
In improv, you're always supposed to find creative ways to say "YES!"
Instead, the Stack Overflow response to enormously popular opinion surveys was, "You're not welcome here!"
Why do you always find a way to say "YES!" in improv?
Because it's engaging. It allows everyone to create new realities, and for other people to explore use-cases that the original creator never thought of.
I believe that kind of thinking belongs on sites like StackOverflow.
Right, I'm not saying the guys who run StackOverflow need to allow me and my opinion surveys on StackOverlfow...
But the StackExchange platform allowed them to create Programmers.StackExchange.com, where opinion polls are welcome. EDIT: slightly more welcome, sometimes, maybe.
If they had figured that out sooner, and had migrated questions from StackOverflow, they could have done a much better job at engaging users.
Saying "your question is closed as off-topic" is totally different from "your question has been migrated". I commend them for the second, and I condemn them for the first.
I think what the parent meant was that, in business, you have customers, and customers want things. You don't have to do exactly what your customers say--allowing opinion-based questions directly on StackOverflow would be dumb--but every demand does represents some kind of unmet need that you could profit by satisfying, whether by adding features to your current service, or by creating a new companion service.
Are you sure about that? One could argue that, by focusing on doing one thing well, they are more valuable to their customers, i.e., their intended audience.
I happen to think things have gone a bit too far on the moderating end over at SO, but at the same time, I wouldn't want it to be a free-for-all re: anything that has anything at all to do with programming.
They have other sites for that; programmers.se and codereview.se. programmers.se turned out to be a toxic cesspool filled with self important moderators and members, but codereview.se is pretty good.
Yeah, I have wondered why we can migrate questions to some .se sites, but not all (relevant) sites. For example, I can migrate to serverfault, but not codereview. I agree that SO can feel like a hostile place due to overly zealous users with close privileges.
Hi, I'm a Stack Overflow user with close privileges[1]. I've answered a lot of questions. I've also closed a fair number of questions. If you write a good question, it won't be closed.
A lot of questions that I end up closing are questions that don't have enough information to be answered, or that already have answers (i.e. are duplicates). Also, closed questions can be improved by the original poster by editing them, and then they can be re-opened.
Edit:
Regarding migrating questions, I've also wondered why it's not possible to migrate them to the appropriate Stack Exchange site. When you flag a question as being more appropriate for a different site, you're only given a few possible sites to migrate it to (I think it's currently only like 3 or 5 of the other SE sites). It's kind of annoying when you know that a question would be perfect for a different SE site, but you can't migrate it to there through the currently available tools.
I do know, however, that some questions won't be migrated because their quality is not high enough, even on the SE site where they would be a better fit.
Which SE site though? That question is totally open-ended, it could generate answers forever. One of the key philosophies of the Stack Exchange sites is to suppress extended discussion.
That reads like a question I'd see on Quora. It's open-ended, has virtually no right or wrong answer, and calls for people to evangelize their favorites and perhaps even their own blogs (I realize this sentence might sound like an unequivocal criticism of Quora, which was not intended).
I'm also an SO user with close privileges[1]. As long as we're linking profiles, I was a beta user, have been around pretty much since day 1, and am in the top 0.2% of users.
This statement is simply not true.
> If you write a good question, it won't be closed.
All of those questions have a massive amount of upvotes, i.e., the community thought they were interesting, well written, and, mots importantly, useful. All closed as "off-topic" or "not constructive." Give me a break.
This is the crap I'm talking about. A bunch of self-important people with nothing better to do than enforce the rules in as strict a manner as possible regardless of whether or not what they are doing is actually making the site a better place.
> All of those questions have a massive amount of upvotes, i.e., the community thought they were interesting, well written, and, mots importantly, useful. All closed as "off-topic" or "not constructive." Give me a break. This is the crap I'm talking about. A bunch of self-important people with nothing better to do than enforce the rules in as strict a manner as possible regardless of whether or not what they are doing is actually making the site a better place.
Don't have time to look through all of your examples, but I took a look at the first one. It's an open-ended question that doesn't have a single, definitive answer. It will generate discussion forever. That's the reason that it was closed (emphasis mine):
> As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit...polling, or extended discussion.
Joel Spolsky and Jeff Atwood have a very strict and specific philosophy/opinion regarding what kind of questions and answers make for a "good" Questions & Answers site. There are numerous blog and Meta StackOverflow posts talking about this philosophy. The idea behind suppressing extended discussion is that it makes it harder to find practical answers to actual, real-world problems when they're buried underneath a sea of un-focused discussion.
EDIT:
I think the generalization of community moderators on StackOverflow as "self-important" isn't entirely correct, nor am I convinced that it's even relevant either. Are there self-important people moderating StackOverflow? Probably, but that doesn't address the fact that people are following strict guidelines for usage of the site that were agreed upon over time by the site's founders, together with the most active participants of the site (or at least, those who most actively chose to participate in Meta).
These guidelines were put in place to "make the site better", at least in the opinion of the founders and the aforementioned participants of Meta. They weren't made up so that a bunch of "self-important" people could feel "self-important".
It's not quite the same as what you're saying, but there is a "programmers" Stack Exchange now, which has more of the opinion-based questions: http://programmers.stackexchange.com/
That site was started explicitly to take the questions rejected by StackOverflow. In an early incarnation, it was going to be called "Not Programming Related", from one of the popular close reasons on SO.
However, over time, it has been affected by the same ossification as StackOverflow. Quoting the 'about' page [1]:
Not all questions work well in our format. Avoid questions that are primarily opinion-based,
or that are likely to generate discussion rather than answers.
Don't ask about...
* general workplace issues, office politics, etc.
* implementation issues or programming tools
* Anything not directly related to software development
* Questions that are primarily opinion-based
* Questions with too many possible answers or that would require an extremely long answer
Fair enough on the office politics, and implementation issues and tools presumably belong on StackOverflow, but it's the peripheral subjects, opinions, and (gasp!) complex and open-ended issues that the site was originally created to handle. They are now forbidden there.
This official stackexchange site complements stackoverflow for the exact reasons mentioned by OP - it's concerned with more open-ended questions related to high level programming concepts.
I was aware of programmers.stackexchange but wasn't sure of the difference until now. Instead of closing questions on Stack Overflow with messages such as "This question exists because it has historical significance, but it is not considered a good, on-topic question for this site", it would be a lot more helpful to point people to a better home for such questions, such as programmers.stackexchange.
Programmers.stackexchange is a horrible experience. Over moderated to a fault and snarky filled. It's almost impossible to tell what the site is supposed to be used for. You'll have a better chance asking a question on Reddit than in Programmers.SE
I'm not seeing this as an improvement. I'm familiar with PHP coding, and over the past few years the community has come up with a set of standards in the form of the PSR documents (http://www.php-fig.org/psr/). This site doesn't many any allowance for pre-existing standards.
It seems that the idea behind this site is "let's make some software to enable the crowd-sourcing of the standardization process". That may be a good idea, but (1) I'm not sure that this is needed, and (2) I'm not sure who the target audience is.
Hi eykanal! The target audience of this site are people just like you. On Coding Style Guide (CSG) you can help other developers (maybe new in PHP) with your expertise. So maybe the next time you have to work on a new project with a new team with members from different backgrounds, you can just go to CSG and take what is useful for your project. That's my vision of CSG. It's just a collection of good quality content. One knows it is good quality, because the best ones have the best rating.
> "However, I noticed that there is not such a website, with a reasonable freedom (very different than google-styleguide), where everyone can add own guidelines, and it's also available for all programming languages out there... And believe me there are tons of developers asking for guidelines all the time. XKCD with Donald Knuth explain the task better:"
If the rules could be exported to some static code checker / linter it would be great.
Also the other way around would be good, ie referring someone's opinion in a standardized way to some rule in an existing style guideline. As someone else pointed out, most of the JavaScript guidelines are just copies from JsLint, their guidelines might contain more justification so an external reference would be nice. Now URLs in the comments aren't even clickable.
You know that really annoying problem where you can't think of a certain term, but doing a web search is fairly useless because you don't know what to look for (chicken and egg ?)...
Googled "binary search find nth node" ... first three results are from SO, third one down [0], go down the page to find the term that I was looking for: "order statistics tree" [1].
107 comments
[ 3.0 ms ] story [ 169 ms ] threadPerhaps the others are more helpful or perhaps (more likely) other languages do not have Lint.
I am sure there is more to it but does not require lengthier posts - perhaps essays?
... I implemented so, that the title and the language are required, the description is not, so you can just have. Use PascalCase for methods. and added the C# tag, for example
I do think there are benefits in more assistance for people with style and structure - I was just wondering if a longer format would suite the need better.
I dont understand what you mean by "if a longer format would suite the need better"
Does not style devolve from structure? Hmn - maybe Structure devolves from Style. Tricky - thus I think that without a "long form" explanation of what you are trying to achieve and thus how each "tip" fits into the objectives then the contribution is lessened.
The original objective was to write "better" programs in a new language - a very worthy objective but without analyzing what "better" means and how any component contributes to "better" then I am not clear how you have advanced things.
I laud your objectives - and was just wondering about (grin) the style.
For example,
- https://github.com/bbatsov/ruby-style-guide
- https://github.com/php-fig/fig-standards
These are editable by anyone and people already on GitHub so it makes it easy.
I don't want to rain on your parade, I think the site is a great idea, just expressing what I think it would need to succeed. I was trying to go to about or sign up and it timed out, I'll be back later to check it out.
Thank you very much for your feedback. Just for you to notice, the guidelines are totally editable, but you have to be a member.
I'll check it out!
Whereas, on a Q&A-type site, you can have "idiomatic way to do X in Y" as the question, each person's point-of-view as a possible answer, and then the community can just vote the most popularly-agreed answer to the top, instead of editing a single answer back-and-forth.
I've seen many noob questions on StackOverflow that go either way, and many on SF that also do the same. Every moderator is different -- there are plenty of overzealous ones on StackOverflow and plenty on ServerFault.
Same goes for any StackExchange site, really.
I contributed a lot to StackOverflow in the early years. Most of the questions were interesting and not answered before. I almost stopped contributing in recent years because now there are so many trivial questions and questions that have been answered before. I see no value in explaining how to sort a list of peaches when there is already a question answering how to sort apples and one how to sort oranges. And I never understood StackOverflow as having the goal to teach programming but to help solving non-trivial problems. Now there seems to be a ton of question like how do I open a file in Python. More and more people seem to just ask everything on StackOverflow instead of reading a manual, a book, a tutorial or at least look if there is already an answer that can be adapted to their problem.
I can not quantify this, it is only my personal understanding of what questions should be on StackOverflow and what should better be looked up elsewhere, but I can to some extend understand that people get annoyed be some questions.
Ya, that's not a way to make the site useless.
[1] http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx
Presumably SO wants to maximize its readership. What I've seen is that they allow any programming question, even of trivial nature, as long as it's objective not subjective. I like that and think it's a good way to maximize readership for objective stuff, because I often google for trivial things. For example, Powershell if/else/elseif syntax, if I haven't used Powershell in a while. I just found the syntax on SO within 10 seconds, with an example I can copy/paste/modify. I bet a lot of other developers use SO like that too, and I bet it's largely the reason people put trivial questions on there. My motivation is efficiency. Being efficient can be construed as lazy I guess!
There is value in duplicating documentation even wholesale and unmodified, if different duplicates are easier for some people to find and use, but there's even more value in "duplicating" documentation by presenting it differently, which is what SO is doing, even for many questions that you believe to be trivial. The more the merrier, if you ask me.
Now, of course, it would suck if you felt lazy people with already-answered questions were wasting your time. Then I would understand your point of view. But the fact is that you just don't have to answer their questions. If somebody else does answer it, well then that person probably didn't feel like it was a waste of time.
I too use StackOverflow as a reference manual. Often the #1 answer is the concise example I'm looking for. MS documentation is a last resort for me.
For instance, compare googling for "c# run sql query msdn" vs. "c# run sql query stackoverflow". The latter has the better example and it's closer to the top.
As for "simple" questions, to me it seems all just relative. Basically, as long as it isn't a dup then I don't mind it being there. In some ways stack exchange has evolved to become a code snippet library. I guess I can see why some people might not like it, but it has helped me many, many times.
Does this not mean that the answers to both 'how to sort apples' and 'how to sort oranges' are not written in a way that allows easy applicability to peaches? The user probably didn't understand how to use the answers for apples and oranges on peaches. This probably means that the answers could be improved by making it clear how to apply them.
The problem might be that older questions are locked even when their answers are not perfect?
Not necessarily. It could just mean that the person asking the question hasn't bothered to look at what has already been asked and answered.
Not only that, but badly written questions that have to be edited to improve quality, or where you constantly have to ask the original poster for more information in order for the question to be solvable, are a huge time and energy suck. At times, I don't feel like participating in SO because of that.
However, those are not reasons to be rude, and if you're a newbie and someone is being rude to you, I think you might have the option of flagging a comment and bringing moderator attention to it (though I'm not sure if that's peer moderation, or moderation from one of the official moderators).
[1]: http://stackoverflow.com/users/456814/cupcake
But it's a pretty undeniable source of great info and I don't think I would be able to cut myself off from the site. I try to just not take anything too personally there - especially the actions of just one or two rude people.
Funny thing, besides the curtness, is that he's most likely not even technically correct, since performance issues on web sites are rarely due to the choice of CMS or in its code.
Also the pompous "design patterns" comment; a lot (30% ?) of web sites in the Internet run on spaghetti code (Wordpress, Drupal) and many are fine, if I had to I'd bet the CMS and its code is not the problem.
Can you elaborate? It seems most newbie questions on stackoverflow are closed, they get scolded in the comments about asking their question wrong, or someone posts a vaguely related link and claims without explanation that it is a duplicate question. Whether or not the system is effective, I don't see how it can be described as "kind".
http://serverfault.com/tour
Server Fault is a question and answer site for professional system and network administrators.
Contrast this with...
Stack Overflow is a question and answer site for professional and enthusiast programmers.
Regardless, the heavy-handed moderation and negative feedback cycle actually means that Server Fault is only meant for seasoned career sysadmins who shouldn't need a Server Fault.
Don't get me wrong - striving for excellence requires high standards. But in Meta, their best answer to the question, "How do I ask better questions?" is 1,780 words long.
Please try again!
StackOverflow could totally have had "poll your peers" questions, in addition to the fact-based Q&A that the moderators there prefer.
They could have politely shuffled opinion-based questions to another area, maybe even another StackExchange site.
In improv, you're always supposed to find creative ways to say "YES!"
Instead, the Stack Overflow response to enormously popular opinion surveys was, "You're not welcome here!"
StackOverflow isn't improv theater.
Because it's engaging. It allows everyone to create new realities, and for other people to explore use-cases that the original creator never thought of.
I believe that kind of thinking belongs on sites like StackOverflow.
It might be a different kind of site that you would prefer to StackOverflow, but that's a different question.
But the StackExchange platform allowed them to create Programmers.StackExchange.com, where opinion polls are welcome. EDIT: slightly more welcome, sometimes, maybe.
If they had figured that out sooner, and had migrated questions from StackOverflow, they could have done a much better job at engaging users.
Saying "your question is closed as off-topic" is totally different from "your question has been migrated". I commend them for the second, and I condemn them for the first.
I happen to think things have gone a bit too far on the moderating end over at SO, but at the same time, I wouldn't want it to be a free-for-all re: anything that has anything at all to do with programming.
> They could have politely shuffled opinion-based questions to another area, maybe even another StackExchange site.
A lot of questions that I end up closing are questions that don't have enough information to be answered, or that already have answers (i.e. are duplicates). Also, closed questions can be improved by the original poster by editing them, and then they can be re-opened.
Edit:
Regarding migrating questions, I've also wondered why it's not possible to migrate them to the appropriate Stack Exchange site. When you flag a question as being more appropriate for a different site, you're only given a few possible sites to migrate it to (I think it's currently only like 3 or 5 of the other SE sites). It's kind of annoying when you know that a question would be perfect for a different SE site, but you can't migrate it to there through the currently available tools.
I do know, however, that some questions won't be migrated because their quality is not high enough, even on the SE site where they would be a better fit.
[1]: http://stackoverflow.com/users/456814/cupcake
That was "What Python blogs do you regularly follow?"
That's a good question. It wasn't just closed, it was redacted from existence.
Now, I happen to agree that it's not a good Stack Overflow question, but it could easily have been shuffled over to another Stack Exchange.
On cursory glance, a similar question actually is on Quora: http://www.quora.com/Computer-Programming/What-are-the-best-...
This statement is simply not true.
> If you write a good question, it won't be closed.
How about this one, with 1419 upvotes (and hey; I'm in the list too!): http://stackoverflow.com/questions/9033/hidden-features-of-c
Or this one: http://stackoverflow.com/questions/194812/list-of-freely-ava...
Or: http://stackoverflow.com/questions/2245196/c-urban-myths
Or perhaps: http://stackoverflow.com/questions/81584/what-ide-to-use-for...
Or, my favorite example, this insanely interesting question with an awesome, enlightening response: http://stackoverflow.com/questions/448673/how-do-emulators-w...
That question was closed as "Off Topic." What?! The implementation of an emulator is "off topic" on a programming QA site? WTF?
I can go on. Hell, here's an aggregated list of great questions, almost all of which are closed: http://www.quora.com/What-are-the-most-interesting-Stack-Ove...
All of those questions have a massive amount of upvotes, i.e., the community thought they were interesting, well written, and, mots importantly, useful. All closed as "off-topic" or "not constructive." Give me a break.
This is the crap I'm talking about. A bunch of self-important people with nothing better to do than enforce the rules in as strict a manner as possible regardless of whether or not what they are doing is actually making the site a better place.
[1]: http://stackoverflow.com/users/1053/ed-s
Don't have time to look through all of your examples, but I took a look at the first one. It's an open-ended question that doesn't have a single, definitive answer. It will generate discussion forever. That's the reason that it was closed (emphasis mine):
> As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit...polling, or extended discussion.
Joel Spolsky and Jeff Atwood have a very strict and specific philosophy/opinion regarding what kind of questions and answers make for a "good" Questions & Answers site. There are numerous blog and Meta StackOverflow posts talking about this philosophy. The idea behind suppressing extended discussion is that it makes it harder to find practical answers to actual, real-world problems when they're buried underneath a sea of un-focused discussion.
EDIT:
I think the generalization of community moderators on StackOverflow as "self-important" isn't entirely correct, nor am I convinced that it's even relevant either. Are there self-important people moderating StackOverflow? Probably, but that doesn't address the fact that people are following strict guidelines for usage of the site that were agreed upon over time by the site's founders, together with the most active participants of the site (or at least, those who most actively chose to participate in Meta).
These guidelines were put in place to "make the site better", at least in the opinion of the founders and the aforementioned participants of Meta. They weren't made up so that a bunch of "self-important" people could feel "self-important".
However, over time, it has been affected by the same ossification as StackOverflow. Quoting the 'about' page [1]:
Fair enough on the office politics, and implementation issues and tools presumably belong on StackOverflow, but it's the peripheral subjects, opinions, and (gasp!) complex and open-ended issues that the site was originally created to handle. They are now forbidden there.[1] http://programmers.stackexchange.com/about
It seems they finally have a website !
This official stackexchange site complements stackoverflow for the exact reasons mentioned by OP - it's concerned with more open-ended questions related to high level programming concepts.
Here's the rationale behind it in Jeff Atwood words (stackoverflow co-creator): http://blog.stackoverflow.com/2010/12/introducing-programmer...
It seems that the idea behind this site is "let's make some software to enable the crowd-sourcing of the standardization process". That may be a good idea, but (1) I'm not sure that this is needed, and (2) I'm not sure who the target audience is.
I guess the author never ran across http://codereview.stackexchange.com/
Also the other way around would be good, ie referring someone's opinion in a standardized way to some rule in an existing style guideline. As someone else pointed out, most of the JavaScript guidelines are just copies from JsLint, their guidelines might contain more justification so an external reference would be nice. Now URLs in the comments aren't even clickable.
Googled "binary search find nth node" ... first three results are from SO, third one down [0], go down the page to find the term that I was looking for: "order statistics tree" [1].
[0] http://stackoverflow.com/questions/2329171/find-kth-smallest...
[1] http://en.wikipedia.org/wiki/Order_statistic_tree