1
$\begingroup$

On Software Engineering, questions that ask for why something is the way it is are often closed as opinion-based and/or too-broad. For example, asking why a certain language has or lacks a certain feature. Sometimes there is a logical answer but sometimes the answer is no more than 'because the designers said so' and are sometimes closed as opinion-based because why the designers 'said so' would allegedly just be subjective speculation.

What is the policy on this site with regards to 'Why ...' or 'What is the purpose of ...' questions or generally questions asking for the reasoning or rationale of a certain design decision in computers?

$\endgroup$
1

2 Answers 2

3
$\begingroup$

I don't think we have any specify policy on "Why" questions; I would refer to our general criteria on what questions are opinion-based or too broad. In general, answerers and voters need to have clear criteria for how their answers should be evaluated (otherwise it might be considered opinion-based), and it needs to be possible to answer in a few paragraphs (otherwise it is likely too broad).


I can offer two possible suggestions for asking good "Why?" questions, based on my personal experience with them. These are not intended as site policy, merely a personal perspective on some tips that might be helpful.

I expect that "Why?" questions might be more likely to be effective if they are formulated as technical questions. For instance, I suspect that questions like "Why does requiring X provide benefit Y?" or "What is the benefit of design decision X?" are more likely to work well in this site format. In contrast, if the question asks why a designer or company made choice X, that might not be the best fit, because if the designer has not made a public statement about why, then we're being asked to speculate about what might have gone into the decision-maker's thinking process, and questions that effectively require speculating might be borderline in terms of fit on this site. Also in some cases the answer might be based on non-technical grounds, and in that case, it is debateable whether such questions are on-topic on this site (though they might be fine elsewhere). So think about whether you can scope your question to focus on some technical question with a clear answer that can be justified based on computer science.

Also, if you are asking "Why X?", I would encourage you to think carefully about whether you can identify what you imagine the alternative would be if they didn't do X. A "Why?" question can support much better answers if you identify what the natural alternative to X would be, or what we are supposed to compare to. Thus, "Why did the system do X instead of Y?" may be better than "Why did the system do X?". In some cases, there is no need to explicitly specify an alternative, as the alternative is already obvious (e.g., "Why does C support do { } while?" seems OK, as the obvious alternative is to remove that syntactic construct from the language grammar). But in other cases, it's not obvious what you're imagining would be better than X, and in some cases it is helpful to state explicitly what alternative you have in mind. In many cases the thought process of trying envision what the alternative would be helps you ask a more focused question, or even makes it obvious why X was chosen.

You'll need to evaluate in the context of your specific question whether either of these suggestions are relevant and helpful, or not.

$\endgroup$
2
$\begingroup$

I think questions about design decisions/choices in algorithms, protocols, programming languages, etc. are on-topic on CS.SE, but may indeed often end up opinion-based or too broad. I think the main problem is that "Why X?" on its own lacks context and makes it unclear what the purpose of the question is. It should not be a problem that the answer to a question may be "some people in the past just happened to choose this" (together with a quote/an argument why the decision was made as such), but it is a problem when it is unclear whether that would be an acceptable answer.

I think, generally, "Why did some person decide X?" or "Why do X instead of Y?" or "Why is X even needed?" are better. It is often easier to answer a "Why do X?" question when we know what the asker believes to be the alternative. Of course, if the more specific version is "What are all the reasons to do X?" or "What is the best argument for/against doing X?", then the question is too broad or opinion-based, respectively.

$\endgroup$

You must log in to answer this question.

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