Often, there are questions asking for tools that solve a problem. When a user posts an answer that is "no" or "I don't think so," without a solid reference it's my opinion that these don't constitute answers. Example: 1

It's impossible to prove the absence of something, unless it can be proved that the problem is intractable. It's also difficult or impossible for the author of the question to verify that an "I don't think so" answer is correct. Given this, at best, I think these should be comments on the question.

A case where it would be acceptable to answer "no" is "Does [this complex tool] have [this feature]?" An acceptable no answer should point to either a reviewed support request from the vendor.

To clarify, after the below discussion in the comments, I am not talking about answers to bad questions that should be rephrased. For instance "Does a tool exist to solve the traveling salesman problem in linear time?" should be rephrased, "What is the lowest-order known solution to fully solve the TS problem?" Either way, the former question should remain unanswered, and comments should guide the author to edit it into a better-formed question.

I believe I've flagged "answers" like this before as "not an answer" and had the moderators reject the flag. Should there be a new flag to encourage removal of these types of answers? Or does the community find these types of answers acceptable?

  • 5
    These are valid answers. Sometimes the OP needs to know that what they are asking for does not exist or is impossible.
    – Oded
    Mar 12 '12 at 13:49
  • 5
    Do you also flag the questions as 'not a real question', since by your definition the only acceptable answer is yes?
    – forsvarir
    Mar 12 '12 at 13:50
  • 1
    @Oded how can someone possibly prove that no tool exists unless he or she is omniscient? I'm pretty sure even Jon Skeet doesn't fit the bill. Mar 12 '12 at 14:04
  • 3
    OK. Tell me this - I am looking for a software tool that will solve the travelling salesman problem in deterministic time. Does such a tool exist?
    – Oded
    Mar 12 '12 at 14:06
  • @forsvarir It's an acceptable question that should remain unanswered until someone finds or writes a tool to solve the problem (sometimes the author of the question becomes the author of the tool.) Anyone could write an "answer" to the question as "not that I know of..." Mar 12 '12 at 14:07
  • @Oded, the answer is yes, of course it has been done and in fact is quite trivial to implement the traveling salesman solution in deterministic time. It runs deterministically in exactly O(n!). Here's one such implementation in Lisp. Mar 12 '12 at 14:12
  • 1
    @glenviewjeff - OK, then, any that do that in polynomial time?
    – Oded
    Mar 12 '12 at 14:16
  • 1
    Independently of @Oded particular example, are you suggesting that if someone asks if something exists (as in now), and it doesn't, then we should not give an answer and wait until it exists?. Then the default answer should be, it will, why do we need to give such a bad answer?
    – Lamak
    Mar 12 '12 at 14:19
  • @Oded, I think given that question, it should be edited to read, "what is the slowest-growth known implementation for an exact solution of the traveling salesman problem?" Mar 12 '12 at 14:21
  • So, as @forsvarir commented, that such an answer is valid, points to a bad question.
    – Oded
    Mar 12 '12 at 14:22
  • @Oded, sometimes, but not always. This question initially had several "not that I know of" answers that live on polluting the page, but a year later a tool was known to be available and the question was answered. What's different about this question is that it's a concrete tool instead of a performance question like the TS problem that lies on a continuum. Mar 12 '12 at 14:25
  • I think the better question is: Should there be "Is there a tool that..." questions? Mar 12 '12 at 14:40
  • @Bobby your wish is my command. Mar 12 '12 at 15:00
  • @Oded re: "These are valid answers. Sometimes the OP needs to know that what they are asking for does not exist or is impossible." I believe that these kinds of responses should be edited into or posed as new questions, for example "Why is it so hard (or impossible) to do X?" Mar 12 '12 at 15:34
  • 1
    @glenviewjeff: "why is it so hard (or impossible) to do X?" is not an example of a good question for SO.
    – user7116
    Mar 12 '12 at 15:42

It's impossible to prove the absence of something, unless it can be proved that the problem is intractable.

We're not computer science students answering questions like Is there a tool to analyze any program, and determine whether it halts; we're software developers usually answering questions from other developers trying to do their jobs.

If OP is asking whether there's a JavaScript IDE that does X, and you're an expert JavaScript programmer who's familiar with all the IDEs on the market, and you know none of them support this, then by all means no is an acceptable answer. That you can't prove this answer to be true does not diminish its usefulness in the least. As your question implies, proof is a meaningless concept outside of math and logic.

Naturally, a great answer would elaborate a bit more than merely "no", and talk about why this is the case, why the feature is so hard to implement, what the various IDEs are, how close some of them come to the feature being asked about, etc.

  • 2
    The greatest answer would instead be the comment "No, there does not currently exist a tool X to do Y," and the question would be closed as Too Localized.
    – user7116
    Mar 12 '12 at 14:49
  • +1 for some good points. I do believe that a "no" answer should provide evidence such as pending (accepted or rejected) feature requests, etc. It could even be a limited "no" like "Eclipse, IntelliJ, and Visual Studio" don't support this. Mar 12 '12 at 14:50
  • @six - you really think all questions asking if a tool exists to do X is necessarily too localized if the answer is no? Mar 12 '12 at 14:52
  • @Adam: If at this moment in time...hmm seems localized to me. When it becomes applicable the question would then be voted to be reopened and an answer given.
    – user7116
    Mar 12 '12 at 15:42

I answered a similar question in the same way. The user was simply not aware of those discussions, I think, but why should I have not answered "no"?

In that case I was sure, and that's why I wrote "no" in the end of the first paragraph. According to the case, my answer could be different, of course, but as a moderator, I'd be aware if there was some "canon" answer on MSO.


With the exception of provably impossible functionality there is a very common tool which can do anything you can imagine (and then some): Any Turing-complete programming language ever. This is an obvious but unpopular answer, so it really boils down to "How do I do X quickly?" This is usually what the OP really wants to know, so it should be perfectly OK to answer "No" with the caveat "You'd have to build it yourself."

  • 1
    Or rather, what is the fastest way to do X?
    – cdeszaq
    Mar 13 '12 at 15:04
  • Agreed, but I think it's likely that you will be downvoted for answering "Use a programming language" rather than "No".
    – l0b0
    Mar 13 '12 at 15:11
  • I'm thinking more of questions like, "does a tool exist to automatically move static methods from one class to another," or is there an ORM that will run correctly on Android? Mar 13 '12 at 15:38
  • @glenviewjeff: Same thing - If there is no simple way, at least there's the ultimate tool: Programming languages.
    – l0b0
    Mar 13 '12 at 15:49
  • Right, but the key word is automatically--as in already implemented. Mar 13 '12 at 23:42
  • @glenviewjeff: "Automatically" can mean many different things. Anything from "By default by the BIOS of every known PC" to "Obtain the correct hardware, install and configure the OS, dependencies, and package, then save this snippet into a file, make it executable, and run it with these parameters." Many problems are easier to solve by programming than by going through the list of steps involved to make it work.
    – l0b0
    Mar 14 '12 at 9:12
  • I'm pretty sure that the typical reader of a question asking for a tool to perform an automated refactoring would understand its meaning and not respond with "yes, one exists because you can write it in a programming language." And if he or she did respond that way, it would eventually be flagged for deletion as "not an answer." Mar 14 '12 at 14:44

You must log in to answer this question.

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