14

I'm a little confused as to the nature of the 'opinion-based' categorization. I asked this question: Is there a design rationale behind the PHP-Style Nested Webform pattern?. I pointed out that this is seemingly a design pattern that has spread beyond its original bounds and am looking for references as to the decisions behind this and aspects of the design.

No opinion would be an appropriate answer to this question, only facts, references and specific expertise. As this pertains to design decisions I am making, I would have thought this is a very relevant question in a Software Engineering forum (and also interesting as a case where a convention becomes a de-facto standard), I'm not quite sure how the moderators arrived at the conclusion that my question would lead to substance-free answers.

What I resent is the opinions in the comments that are either irrelevant ('PHP defies logic'—not a sentiment I disagree with, but off-point), contradictory ('One purpose of this site is to answer questions about software design'—what is my question if not pertinent to software design), sweeping ('we can't tell you why anyone made a design decision that they chose to make'—the relevant decisions I'm looking for information on were made by software designers, why are they they and not we?"). I also don't agree with the premise that 'A question that only specific people can answer isn't a good fit': I don't fully know the development methodology of PHP, or Ruby/Rails (the platforms I used in my example), but I would assume that even if ultimate decisions rested in the hands of the few, there would have been some deliberation that existed outside of a single source.

I would very much like to leave the question open, not just in the hopes that it is answered, but that an emerging de-facto standard on our biggest software platform can be better understood.

As a final tertiary point—I notice that at the time of asking some of the top Questions on the site are soliciting opinions: 'Scoped beans as dependencies - Use proxy or make it dependent/prototype scoped?', 'Visitor stability vs instanceof flexibility', 'Find best subcombination from given combination', 'Put conditional logic inside method for DRY, or keep it outside for readability?'. It seems the nature of the site is to ask for the whys of software development. I'm looking for the same thing.

  • 1
  • 2
    @gnat I can appreciate why such a question might result in open-ended speculation, which is why I didn't specifically ask 'why?'. I asked a binary question—is there a 'why?' (which very much comes under the ethos of answerers proposed resolution: '"What section of the specification describes this behaviour?" is a question that has an answer that certainly has a reference.') – rgchris Mar 20 '18 at 9:43
  • 2
    @ThomasOwens I'm not looking for speculation—I'm looking for documentation on why this decision was made, if such a thing exists. It's a binary question. – rgchris Mar 20 '18 at 9:56
  • 1
    you seem to think that binary questions are somehow OK - these indeed are not, as explained eg here – gnat Mar 21 '18 at 17:13
  • 2
    @gnat This isn't SO, as the moderator pointed out. By the standard of the reference you pointed out above, my question is within bounds. – rgchris Mar 21 '18 at 22:50
  • 5
    Very telling that the references this and the original question are receiving are carefully sourced pedantic points of order. It's almost as if this community cares more about petty procedure than problem solving. Time could be better spent. You don't share my area of interest, fine—can you leave it open someone that does? – rgchris Mar 21 '18 at 22:55
  • 3
    @gnat How does this relate to my question? – rgchris Mar 22 '18 at 6:17
  • have you read link referred in prior comment. Approach with less pedantic rules has already been tried here. "Sadly, it didn't work out..." – gnat Mar 22 '18 at 7:51
  • 1
    There are two questions explicitly stated: (1) "Is the rationale behind this design documented anywhere?", and (2) "Was the Ruby/Rails approach based on the PHP design (or vice-verca)?". It seems to me that only (2) can be considered opinion-based, and/or a question that requires the language designer specifically. Question (1) is rather concrete, and may be answered by anyone who happened to stumble upon such a document at some point. So maybe the OP just needs to rephrase, especially since (1) seems to be the primary question being asked here? – Filip Milovanović Mar 22 '18 at 12:37
  • 1
    On the other hand (1) could be viewed as a research/resource request. So... not sure. – Filip Milovanović Mar 22 '18 at 12:40
  • @FilipMilovanović In a sense it is a resource request, but the concerns raised in this prohibition don't apply. I'm looking for documentation that reflects the decision-making process—this isn't a matter for conjecture. – rgchris Mar 23 '18 at 15:12
9

There are several reasons why this question is not a good fit.

First, we do not accept research or resource request questions. We are not a search engine. We are not librarians. We, as a community, do not go and find documents or quotes or references for you. Asking us to go out and find a design rationale is off-topic as a resource request.

Second, we do not accept questions that do not draw on general expertise. If a generic software engineer with the appropriate knowledge cannot answer the question, it's not a good fit. Questions where the number of people who can objectively answer can be named are off-topic. Although it's not exactly the same case, consider the fact that we do not allow questions about discussing a particular blog post or passage in a book. We are not mindreaders - we cannot tell you what language designers were thinking, and we aren't going to go looking through mailing lists or blog posts or forums to find that information for you.

Your question is doing both of these things. You are asking us to either (1) find you resources or references or (2) discuss what we think language designers were thinking.

You may also want to consider our guidance on what questions you should avoid asking. Mainly the points about needing an actual problem to be solved and not asking a hypothetical question. I don't see anything about a problem in this question. You have an implementation choice, but you don't explain why making the choice is a problem.


In the context of your question - you are implementing something. You've found two different implementations that behave the same way. Now you have a few options. Option 1 would be to mimic these two behaviors. Option 2 would be to implement a different behavior that makes more sense to you in the context of your system. Option 3 would be to continue researching other languages and frameworks.

Let's go down these roads.

If you research every framework (note - you probably don't have to test every framework, but maybe a slightly larger sample size than 2), you may find some behave differently. You need to make a choice. Unfortunately, we can't help you here - we don't answer which of N designs is better (that's primarily opinion based and specifically called out) unless you can describe, in detail, what you want to achieve. And by this point, you've probably analyzed your possibilities and determined that, in your use case, one was better. If so, great! Plus, you can probably write up what you've learned in a great blog post. If you can't decide which is better, you can always share your analysis and desired outcome here and it would probably make a great question.

Let's say that you go for Option 1 or 2. Well, you've made a decision. There's nothing to ask about. Maybe document your decision in your documentation and move on. Your problem is solved.

There is only one very narrow case that I can see leads to a good question, and that's the case where you have an objective problem with a clear definition, analyzed your options, identified pros and cons, and no answer is clear cut. But you aren't there yet.

  • 1
    'we do not accept research or resource request questions.' —fair enough, though I'd refer to this answer that would suggest otherwise. In this particular case, I'd assume that if there were rationale per my question, it would not necessarily easy to track down—it is not attached to documentation nor language specifications. Rather in the domain of those interested in those languages beyond a superficial level (not just the language designer—languages are not created in a vacuum). – rgchris Mar 20 '18 at 17:38
  • 1
    'we do not accept questions that do not draw on general expertise' —I would consider the facets of development of a chosen language/platform to, perhaps not be part of general expertise, but generally available. It may have been discussed at a conference, private discussion group, personal correspondence. It may also be someone like myself who has implemented the pattern in their own project owing to the pattern's prevalence. – rgchris Mar 20 '18 at 17:39
  • 2
    'You've found two different implementations that behave the same way' —what makes these two distinct is that they are popular (and thus influential) and are similar despite the very different language designs to the point where edge cases are handled in the same way. To me this is striking and a quite legitimate area for inquiry within a community of software engineers (which I'd heretofore thought of SE.SE as being a primary hub for). – rgchris Mar 20 '18 at 17:39
  • 2
    Good fit or not, I disagree with the premise on which the question has been put on hold. It does not reflect the reasons you have stated in this answer. – rgchris Mar 20 '18 at 17:41
  • 2
    @rgchris The meta question you link to is on Meta Stack Overflow. Software Engineering, as a community, has established its own rules and guidelines for what makes a question good. I pointed out two rules and guidelines identified by this community that outline questions that are not a good fit and pointed out that your question doesn't fit. I've yet to see a good rationale for how this isn't either a resource request or an opinion/"discuss this decision". – Thomas Owens Mar 20 '18 at 17:50
  • 1
    Fair point wrt. off-site answer, that was referenced in the comment attached to my question above. It is largely a resource request (though the resource in question is the rationale behind the creation/adoption of the pattern), it is not a solicitation for opinion (I don't see how it could be interpreted as thus). – rgchris Mar 20 '18 at 17:56
  • 1
    In terms of this being a hunt for the language designer's opinion—is it too much to expect that a) the language designer used anything other than the depth of rationale sought after in any other question on this site, and b) that he/she acted unilaterally and has not shared that rationale with any person that has an interest in that language/platform in some form or another? – rgchris Mar 20 '18 at 18:01
  • 3
    I'm still struggling with this distinction of 'we' as some separate entity from 'the language designer'. Languages aren't designed in a vacuum—they are designed by a few of 'us' and usually (or maybe not) there is some deliberation with more of 'us'. Perhaps there is a very large subset of SE users who are not interested or have participated in language design, I don't know. I don't presume that anyone able to answer my question would need hunt for documents—I don't presume anyone unable to answer would look. As my question was on hold from near the moment it was asked, it's kind of moot. – rgchris Mar 20 '18 at 18:33
  • 3
    @rgchris "We" means "the Software Engineering Stack Exchange community". We have developed rules and guidelines about the questions we accept here. Your question is best answered by the PHP and Ruby language designers, not the community of the Software Engineering Stack Exchange. Anyone other than these specific people would need to (1) read their minds or (2) search for documentation - two things that we have decided that we can not and will not do. – Thomas Owens Mar 20 '18 at 19:01
  • 1
    BS. I just recently answered a narrowly scoped question that I would expect very few developers to know the answer to. It has gotten an edit and two upvotes in the past hour. Are you saying that I should not have answered, and that my particular expertise is not welcome here? This is what I find so exasperating about SE in general. – user251748 Mar 23 '18 at 1:10
  • 1
    @nocomprende No. There's a difference between a question that can be answered by specific individuals and a question that needs specific expertise that a small number of people have. Questions that require a specific individual to answer with authority are not permitted. – Thomas Owens Mar 23 '18 at 9:54
  • 1
    But once we got that information from the specific individual and posted it, it would no longer be off-topic. There is some subtlety here that evades me. If it is not personal / private info, go after it and get it out there. Why shouldn't we know the reasons behind design decisions or whatever? Seems important to me. It can't really be engineering or science if basic underlying principles are hidden (or worse, just a matter of opinion or happenstance). Maybe we are protecting people from finding that out? The Emperor has no clothes? – user251748 Mar 23 '18 at 11:47
  • 1
    @nocomprende A question that only specific individuals know leads to other people guessing. We don't play guessing games here, and we don't want to encourage that behavior. – Thomas Owens Mar 23 '18 at 11:50
  • 1
    @rgchris Maybe someone did ask that. But it is not acceptable to ask us to go find that piece of information on the Internet (that's a resource request). And in the event that no one asked that question before, you would need to be the language or framework designer to know why that decision was made. The right place to ask why PHP or Rails or any other language or framework made a decision is on that language or framework's community - forums, mailing lists, GitHub issues, whatever. The wrong place to ask that is here. – Thomas Owens Mar 23 '18 at 15:26
  • 1
    @rgchris There are many things that I don't know and that I'm not interested in. However, the question that was asked has been deemed to be of the kind that we do not permit here. As a moderator, I enforce the decisions that have been made by the community. Even if your question was something I knew and was interested in, I would close it because that's the desire of the community. – Thomas Owens Mar 23 '18 at 15:32

You must log in to answer this question.

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