13
$\begingroup$

I've been seeing questions and their answers like

  • Should a REPL show null values as null?
  • Enforcing doc comments in the compiler, good idea or no? - There is an objective criteria hiding in a complaint, and that complaint itself is really hiding a goal-oriented question that I think is worth its own question. ("To my frustration however, many developers do not type doc comments, forcing me to open the function to figure out what the arguments mean and what the return value is, interrupting your workflow.")
  • (just to name a few. I don't have the energy to go digging right now for them) You can probably find more of what I'm talking about with this search query in the search bar: is:q title:should.

and I'm not satisfied with the degree that facts and objectivity are being made part of the "conversations" here. And to the degree that I do see it, I'm not satisfied with how much the useful information is fragmented across multiple answers. (Notice that I'm not saying I think the above Q&A are bad per se, but I think that some of them can (and ideally should) be a lot better)

Here is what I'd like to propose:

  • For tags that have to do with comparing specific design choices (Ex. ), we should present some guidelines / expectations in the tag wiki about how we expect to engage in Q&A as far on the fact-based side of the spectrum as possible, and to give some tips about how to do so.

  • Otherwise, for Q&A outside such tags:

    • When asking questions about whether one should make a design choice in a certain direction (Ex. "Should I do X or instead do Y?"), please spell out some examples of design criteria that you would like answers to evaluate answers based on. Better yet, if we can create a community-wiki list in the answers here about examples of considerations to evaluate answers based on, then the question can just point to it (more DRY).

    • When answering, please spell out the design considerations you are catering to in various approaches in your answers

When I say "criteria" and "considerations", here are some examples:

  • Whether the design approach is catering to <X> or how historically / according to research such designs have tended to fare with respect to achieving <X>, where <X> could be something like:

    • usability for humans. Ex. based on how humans think and communicate with each other- cultural aspects and all
    • simplicity / ease of implementation
    • familiarity with / similarity to existing, well-established languages
    • time / space performance
    • tightness of "coupling" at source and binary levels
    • relative "expressiveness" / "powerful-ness"
    • interoperability with programs in specific other languages or classes of languages. With respect to specific things such as:
      • type systems
      • binary interfaces (functions and data)
      • error-handling models
      • etc.

I expect that

  • if / when we try to be more clear thorough about how we define objective Q&A and "good-subjective" Q&A, that we'll see less subjectivity in individual answers

  • if / when we set implicit or explicit guides for directions in more-objectively evaluating design choices, we'll see less fragmentation of information across answers, since answerers will see that we have standards.

I see both of those as desirable results that are consistent with the Stack Exchange model.


Why do I think question-askers should explicitly solicit objective answers?

  • I mainly defer to /help/dont-ask.
  • Because we're in beta. This is an critical period to set the tone of what we want. We can establish the Stack Exchange fact-oriented culture now, or we can let these things slide and suffer under "but these kinds of lax questions were allowed at the beginning" complaints in the future.

For discussion here:

  1. Do you think this is important to do? Should we build such a culture?
  2. If you answered yes, are there any other considerations you think are worth mentioning? (maybe we should build a community wiki answer?)
$\endgroup$
6
  • $\begingroup$ The REPL question, to me, seems essentially fine: answers should be of the form "Yes, when ..., because ...". It looks like the answers so far broadly fit that pattern. Are you highlighting it as a particularly unsuitable one? I at least like it a lot more than "what are the pros and cons of printing null in a REPL", which has been given a surface of objectivity. $\endgroup$
    – Michael Homer Mod
    Commented May 19, 2023 at 20:50
  • $\begingroup$ It could be more specific about what's relevant, definitely. Doing so can end up predetermining the answers, though. My feeling is that in this case the balance is about right, but there are definitely questions where there's nothing to go on and a pile of haphazard answers. $\endgroup$
    – Michael Homer Mod
    Commented May 19, 2023 at 20:53
  • 1
    $\begingroup$ @MichaelHomer What I'm concerned about here is whether we're building up a healthy culture of being honest and clear about tradeoffs. The examples I've shown are not ones I think are bad per se, but as stated, I think we can and should do better (at honesty and clarity in talking about tradeoffs). "there are definitely questions where there's nothing to go on and a pile of haphazard answers" and that's the kind of thing I want this site to avoid a culture of tolerating. $\endgroup$
    – starball
    Commented May 19, 2023 at 20:54
  • $\begingroup$ @MichaelHomer also, I'm pretty confident that you're doing well with respect to objectivity in your Q&A, but not everyone who is here now or will be here later is an academic programming languages researcher focusing on language features and interfaces. $\endgroup$
    – starball
    Commented May 19, 2023 at 21:03
  • $\begingroup$ "whether we're building up a healthy culture of being honest and clear about tradeoffs": I think the answer is "no" currently, but I wasn't sure whether you and I were on the same side of no. I'm not keen on the faux-objectivity of pro/con lists but would like analysis of relevant tradeoffs of concrete options. I think your "when answering" below is good and what I would like to see, it's more so the question side I'm thinking of. I understand the REPL one to be asking about ergonomics fundamentally, and I'm happy with that as stated. I am concerned re overspecifying into leading questions $\endgroup$
    – Michael Homer Mod
    Commented May 19, 2023 at 21:08
  • $\begingroup$ I thought we already settled it ahead of time. But I guess a lot more detail is needed. $\endgroup$ Commented May 25, 2023 at 3:37

2 Answers 2

4
$\begingroup$

Here's a community-wiki post (seeded from my original suggestion).

  • If you generally agree with it, feel free to edit it to improve it by fleshing it out more.

  • If you fundamentally or generally disagree with the suggestions here, please downvote it and/or write a competing answer post describing what you want to see.

When Asking,

Please either point to a meta post (such as this one) or tag-wiki describing what classes of design considerations you care about, or clearly spell out which ones you care about in the question (and make some effort to capture that constraint in the title for disambiguation purposes).

When Answering,

Please spell out the design considerations you are catering to in various approaches in your answers.

Examples of Design Evaluation Criteria / Considerations

  • Whether the design approach is catering to <X> or how historically / according to research such designs have tended to fare with respect to achieving <X>, where <X> could be something like:

    • usability for humans. Ex. based on how humans think and communicate with each other- cultural aspects and all
    • simplicity / ease of implementation
    • familiarity with / similarity to existing, well-established languages
    • time / space performance
    • tightness of "coupling" at source and binary levels
    • relative "expressiveness" / "powerful-ness"
    • interoperability with programs in specific other languages or classes of languages. With respect to specific things such as:
      • type systems
      • binary interfaces (functions and data)
      • error-handling models
      • etc.
$\endgroup$
1
  • 1
    $\begingroup$ if you feel a sense of investment in this list, please consider following it to get notifications about updates so you can participate in vetting them. $\endgroup$
    – starball
    Commented May 19, 2023 at 23:08
3
$\begingroup$

If you see a better question hidden... help get it out

To the specific point of questions that hide better questions we have some choices.

  • Encourage the asker to edit the question to make it better.
  • Propose an edit
  • Ask the new question yourself (being careful to make sure it is not a duplicate)
$\endgroup$
2
  • $\begingroup$ I agree with the other answer as well but I think the solutions are orthogonal. I'm not of sure a way to word the two answers together that doesn't dilute them both. $\endgroup$ Commented May 26, 2023 at 8:45
  • $\begingroup$ Note: sometimes the first two options are not ideal, since adding more thorough constraints or requirements to the question can invalidate existing answers. $\endgroup$
    – starball
    Commented May 26, 2023 at 20:28

You must log in to answer this question.

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