What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 134 Stack Exchange communities.

This is intended to be a canonical reference question that we can point people to. Maybe even a FAQ.

My question was closed for being a "shopping list question", even though it was absolutely on topic and programming related. Why?

share|improve this question
You want a list of reasons? –  Daniel Fischer Dec 15 '12 at 12:29
@Daniel YES YES YES (seriously though, I flagged this to be CW'ed so everyone who wants can edit) –  Pëkka Dec 15 '12 at 12:30
Given the volume of "Why was question closed, I was asking for a recommendation for <insert programming option here", should this or a similar question receive the faq tag? –  psubsee2003 Jun 21 '13 at 11:52
To make more explicit what Daniel implied, this question fails the test of its own premises. It IS a shopping list question, and one of the premises of the question is that such questions are bad. Maybe we should rethink those premises. –  iconoclast Apr 11 at 17:08

5 Answers 5

Questions that ask for a list of things, like "is there a tool that does x on platform y?" or "what is the best abc for my problem?" are usually regarded not a good fit on Stack Overflow, even if they are perfectly programming related.

Jeff Atwood has written a blog post on the topic that is regarded something of a canonical document on the issue.

The main arguments against "shopping list questions" are:

  • They are open-ended; there is never one perfect answer to them.

  • They outdate incredibly quickly. This was what turned me against shopping list questions: if you look around on Stack Overflow, you will find plenty of 2010 "what's the best xyz" questions whose answers are hideously outdated now.

  • They tend to attract a lot of spam and/or link only answers

share|improve this answer
Outdating quickly may be an issue for choices of hardware purchases, but is it really an issue on anywhere near the same scale for recommendations of either software applications or - to give the case where this issue most commonly appears on SO - programming libraries? –  Mark Amery Dec 15 '12 at 12:35
@Mark it is. Terribly. Look at the state of HTML5 answers, for example. I have to run but I may look up some examples later –  Pëkka Dec 15 '12 at 12:35
I will await your examples with interest and an open mind. Remember, though, that for this rule to make sense, it doesn't just need to be the case that HTML5 questions asking for library recommendations age quickly - they need to age significantly more quickly than HTML5 questions in general. –  Mark Amery Dec 15 '12 at 12:39
@Pekka Also: Shopping list questions tend to attract a lot of spam and/or link only answers. –  Yannis Dec 15 '12 at 16:16
Do the arguments against really outweigh the benefits? One of the main tenants of programming is to "not recreate the wheel". I know I've gotten a good bit of use from these questions. Who cares if a question is open ended? And you can easily date a response. How about this, if you don't like "shopping list questions" don't use them. –  JoshNaro May 13 '13 at 16:51
"There is never one perfect answer" - this is nonsense. I asked a question "Is there a javascript gesture library that works with the android?" and a perfect answer would be "Yes, use such and such." assuming such and such worked. I haven't actually received an answer yet, but somebody suggested it should be closed, citing this thread. I can understand closing a thread that has been answered, but answer aging can apply to any topic. –  Facebook Answers Jun 22 '13 at 10:55
@FacebookAnswers but then you end up with ten different answers, recommending a different such and such, usually with endorsements like "Try this its great" or "it worked for me". There will be at least one spam answer from a company who builds a such and such. Not saying those questions can't be useful occasionally, but the downsides really outweigh the benefits in general. –  Pëkka Jun 22 '13 at 11:00
@Pekka, well in my case I hadn't received a single answer, just a couple of comments. But lots of questions can have multiple, equally valid answers anyway. –  Facebook Answers Jun 22 '13 at 11:03
@Facebook but nowhere is it such an extremely strong (and, to many in the community, problematic) pattern as it is in shopping list questions. I'd really love to see a web site dedicated to shopping lists maintained and evaluated by experienced users (we all need them when we delve into something new and want to know the best tools), but SO isn't the right format for it. –  Pëkka Jun 22 '13 at 11:06
@Pekka, but surely the solution is to close the question after it has received an accepted answer, not before it has received any answers. I have a specific problem; I cannot get javascript gestures to work on my Samsung Galaxy Tab 10.1. They work fine on the ipad mini, but not the Samsung. I tried a number of libraries, but none of them worked, so I asked, does anybody know one that does work? Why is that not a valid question, and if it isn't valid, how should I rephrase it to make it valid? –  Facebook Answers Jun 22 '13 at 11:12
@Facebook Stack Overflow is aiming to be a repository of questions and answers for future generations, not a support forum for localized issues; waiting until a question has gathered answers and then closing it would send the wrong signal to answerers. Anyway, the question you describe sounds kinda valid. Can you provide a link to it? –  Pëkka Jun 22 '13 at 11:16
Edit: found it. I don't think that question is necessarily going to be closed; it looks specific enough not to be a typical shopping question (which are usually along the lines of "which is the best IDE for xyz?"). Note that it hasn't gathered any actual close votes yet. –  Pëkka Jun 22 '13 at 11:18
@Pekka, fair enough. –  Facebook Answers Jun 22 '13 at 11:36
I'm writing a compiler, just reached the machine code generation part, it can do naive suboptimal translation. But I wanted to improve it. So I once asked a question to get a list of techniques/ideas/tricks/pointers existing compilers use to optimize their output. It got closed as not constructive in 10 minutes because I asked for a list... pfff. I hope readers can see the difference between the "What's the best" questions and my example... I'm not asking for the best, I'm just want to learn what can I do. –  Calmarius Jul 14 '13 at 13:34
Then why don't you have a separate forum for shopping? –  user3314801 Mar 8 at 6:24

Irritatingly, the terms "shopping list question" (or "shopping question") and "recommendation question" are often thrown around without regard to what they originally meant. They're different, but since there is some overlap and very little care paid to how they're used, I'll attempt to define both here:

Price-shopping questions

These are the origin of the name, immortalized in Jeff's famous blog post and long the bane of Super User and similarly hardware-oriented sites. The basic template is this:

What is the best and cheapest Product of Type at this very moment?

Please list a specific make and model along with a link to whatever shop offers the best deals; I know there are 500 questions on this sort of product already, but a new one of these comes out every week so they're mostly out of date and I just plain don't trust the folks who answered the ones from earlier today.

P.S. In addition to its primary function, it also needs to make waffles and comfort me when I'm sad and be available for local pick-up in Ogallala, Nebraska.

The requirements alone make this sort of question extremely unlikely to ever help anyone else (or even be answerable in a useful fashion), but at least in theory they could.

The price requirement combines with the volatility of the marketplace to make them completely worthless though. You might as well set a timer and automatically delete them after a week - indeed, this solution was proposed at one point, because folks really wanted to use Super User for help building their computers.

I hasten to note that these are real problems; everyone has to do some price-shopping now and then, and some of us do so very often - but Stack Exchange is generally ill-equipped to handle these questions. Product review sites, some trade journals, forums and of course dedicated shopping sites like New Egg are generally far better suited for this purpose, tedious though it may be.

As soon as the question no longer asks about pricing, the question is arguably no longer a "shopping" question, though it may still fall into the category of...

Product recommendation questions

These are the first steps of a reformed shopper. They're no longer asking you to do the shopping for them, but they do still want you to tell them what to shop for. The most problematic form looks like this:

What is the best Product of Type?

There are probably 10,000 Products of Type on the market today, with many of them appearing to be of very high quality and sporting raving reviews on every site that sells them.
But which is the single best one, for every conceivable purpose, ever?

This is clearly subjective beyond all reason, so it is quickly replaced with,

What are all the Products of Type?

Just list them, please, and maybe include a short review; I'll choose the one that works for me.

Now we're hitting several different problems: this list is impossible to keep updated, it attracts spam like spilled soda attracts yellowjackets, and, oh yeah, it's an X-Y problem.

See, the asker actually does have specific requirements for that Product, because he does have an actual problem that he's trying to solve. This tends to come out after the question has been closed as a duplicate of a different (usually incomplete) list of Products, none of which work for him. What he wants to ask is this:

What Product of Type can I use to frob my widget?

My widget is a Mark III by Honeywell, manufactured in 1979; I've tried using standard Bosch frobbers, but they always break. Here's a picture of my widget, surrounded by broken Bosch machinery.

When I start frobbing, the temperature quickly rises to 10,000°F and destroys everything in the vicinity. What alternate Product can I use to avoid this outcome?

If he'd actually written that, this would've been an answerable question; indeed, some sites allow these sorts of questions without too many objections. But on larger sites like Stack Overflow or Super User they tend to attract spam:

You can use DaxterCo® Frobberific™ frobbers; they're awesome. Please see [link] for specific instructions on how to contact our sales staff who will proceed to string you along until you give up and buy something from us.

And because spammers are scandalous dastards and don't mind recommending their products in situations where they don't apply, there's absolutely no guarantee the products recommended will do anything to solve the specific problem described... And because strictly-speaking the question is still just asking for a list of Products of Type, getting rid of this spam is more work than it should be.

This brings us at last to,

How to ask for a product recommendation without actually asking for a product recommendation

At this point, we almost have a good question. The asker understands the problem, has described his situation and what he's tried so far to resolve it. We just need to get rid of that pesky technicality that allows for answers which don't actually do anything to provide a solution!

How can I frob my widget without causing it to massively overheat and burninate the villagers?

My widget is a Mark III by Honeywell, manufactured in 1979; I've tried using standard Bosch frobbers, but they always break. Here's a picture of my widget, surrounded by broken Bosch machinery.

When I start frobbing, the temperature quickly rises to 10,000°F and destroys everything in the vicinity. What can I do to successfully frob without these catastrophic results?

In other words,

  1. State the specific problem you're trying to solve.
  2. Describe what you've already tried, and why it hasn't worked.
  3. Ask for help solving the problem by laying out what you need to happen for it to be successful.

That's it. If it turns out there's a Product that can be used to answer this, great! If not, well, maybe there's another option; perhaps someone owns the Bosch frobber manual and can tell you how to solve it without buying anything. Either way, now you're asking for a solution and not a shopping list.

share|improve this answer

Shopping questions ask

  • What X should I use?
  • What is the best X?
  • What are the possibilities for X, and their advantages?
  • Which is better, X or Y?

They do not always literally involve shopping: the comparisons may be between several free things, or between intangible things such as "Which job offer should I take," "what programming language should I learn," or "what religion should I adhere to?"

The key to a shopping question is that it asks others "please make a subjective decision for me and explain it" or "please list all my possibilities with their strengths and weaknesses". This is very different from non shopping questions:

  • Can X handle foos of 100 MB or more?
  • Do all Montessori schools require children to be toilet trained?
  • How long does it take to travel by train from New York to Boston?
  • Why do lambdas make the STL algorithms more usable?

Some of these questions might invite opinions, or might attract lists of localized answers, but they are not asking anyone to make a decision for you.

When you plan to ask a shopping question, what you should do instead is:

  • Use a search engine to create a list of possible X that you will use, buy, support, or whatever
  • Search on the relevant Stack Exchange site (among other places) to learn more about these possibilities. (For example, to find sample code showing how usable a framework is, or to find pictures of a tourist attraction)
  • Rule out some possibilities after learning more about them
  • Establish a crisp, clear question that will let you decide which is right for you (for example how much does it weigh, how long does it take, is it multithreaded, is there a web API, etc.)
  • If there are several facts you need to know, formulate each one as a separate crisp and clear question. (Do not ask two or more questions in a single Stack Exchange question.) They need not be yes or no questions but they must be answerable. Don't ask "is X too heavy? should I really spend the extra money for Y instead?" Ask how much X weighs, or whether a reasonably fit adult could be OK carrying it on a long hike, or whatever it is you need to know.

After gathering the answers to your individual questions, you can make your shopping decision. You will leave behind factual and useful information for other people, who may use it during the second step (as listed above) of their own investigations. This is a feature of the site. Someone with entirely different priorities than you can still benefit from your fact-gathering questions, while they probably could not have benefited from the general "tell me what to choose" kind of question that we prefer not to have in the Stack Exchange network.

share|improve this answer

Basically, Stack Overflow prefers questions where there are only a handful of answers that "converge" to a single, definitive, and presumably correct answer.

It's like preferring an infinite series that has a single, rather than "divergent" limit points.

share|improve this answer

Well, similar to what we consider off-topic on Arqade, questions like this tend to be very broad, and as you probably already inferred, Stack Exchange prefers that you ask questions that receive only one answer. On Arqade, mod-recommendation questions, similar to shopping recommendation questions here, are off-topic because you could have a variety of mods, or things to buy.

Basically, shopping list questions are bad because they are subjective, and subjective questions receive lots of answers and those answers can be outdated, leaving future readers with nothing, unless some nice person comes back and changes his answer.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .