-6

Proposal: Programming Language Design

The subject of this proposed site seems to encourage questions that are a bad fit for Stack Exchange. Indeed, most of the (as-of-writing) top-voted sample questions seem either opinion-based or yes/no/list questions (my emphases of opinion indicators and yes/no/list indicators), the remaining ones being general enough to have no single objective answer:

  • What are the advantages/disadvantages of implementing strings as character arrays?

  • Is there a widespread alternative to C-style or Python-style code block syntax?

  • How would you design a compiler upfront to be both a compiler and a Language Server Protocol server?

  • How could custom infix operators be implemented in a parser?

  • Advantages of extension methods vs UFCS

  • How to run a lazy and pure-functional language efficiently?

  • Could a Rust-style borrow checker work based on compiler inference?

  • What are the advantages of compiling vs. interpreting a language?

  • How do I turn this left-recursive grammar rule into a rule that isn't left-recursive?

  • What are the upsides of using explicit line-ending characters (like semicolons) as opposed to newlines?

  • How do you check whether an inferred type matches a type signature?

  • What is the difference between LL (1) and PEG parsers?

  • Should types be a first class value?

Is such a site a good fit for Stack Exchange, and if so, what are the advantages/disadvantages?

2

3 Answers 3

14

I disagree with your categorisation of these proposed questions, and I also disagree that your categorisation of them implies they are a bad fit for Stack Exchange.

Questions about design will always depend on opinion to some extent. That doesn't stop various Stack Exchanges from having many useful questions about design, for example the api-design tag on Software Engineering SE, or the entire User Experience SE. The highest-scoring question on the latter asks:

Should "Yes, delete it" be red, or green?

Blatantly opinion-based, and yet the answers there are useful and informative.

Many things are opinion-based and yet fit the Stack Exchange Q&A format perfectly well. Stack Exchange sites are all about sharing expertise, so questions which can be answered with expert opinions are fine. An expert opinion depends on knowledge and expert judgement, and can be justified with reference to facts and logical reasoning. That is why expert opinions are valuable and can be learned from. Furthermore, when it comes to expert opinions, not all opinions are equally valuable, and the voting system can be used to show people the most useful expert opinions on a particular topic, in the community's collective judgement.

In contrast, the prototypical bad "opinion-based question" is one which can be answered by anyone giving their personal opinion without needing to be an expert on the topic, without needing to justify their opinion with facts and reasoning; the answers to such a question will not inform or help anyone (unless they specifically want to collect survey data of people's personal opinions, which is not what SE is for). Those questions are off-topic on all Stack Exchange sites. But the example questions you listed aren't those.

Further reading from the Stack Overflow blog: Good Subjective, Bad Subjective.

8

Note: Your question is basically the same as this one so my answer will be very similar.

I see a danger but I think it can be avoided.

So I spend a lot of time on reddit and any sufficiently popular opinion (or even any other) technical question goes like this:

  • All comments are just one sent4ence, "I like option X because" or "I don't like X because" then barely any evidence.
  • These comments are all repeated hundreds of times.
  • People upvote every comment that agrees with them, turning the whole thing into a contest.
  • More extreme opinions get upvoted more, even if they are innacurate. Anything to make your opinion come out on top.

We want to avoid this. We already have a few advantages though:

  • The editor interface encourages longer answers rather than a single sentence.
  • Less people is less answers, so people can reasonably be expected to read every answer before voting.
  • More expertise, since it's a bit harder to find the site a higher proportion of people will actually know a little about programing language design so can more accurately judge if a post is accurate or not.

In our own control, I suggest the following:

  • Downvote/delete answers that just state their opinion without any evidence to back it up, or if the evidence itself is also opinion based.
  • Downvote/delete answers that are inaccurate. Even if you agree with their overall conclusion.
  • Downvote/delete answers that add nothing new to the discussion, and have no other purpose than existing as a "vote" for one side of a debait. It's not the number of answers for each side that determines the "winner". There is no winner. The purpose of the question is to inform, not to win.
  • Up vote answers that give a objective, comprehensive overview of the advantages and disadvantages of all sides, and provide evidence and citations to back them up.

If this danger is real depends mostly on what type of community ends up forming. We can't predict the future.

This danger has been successfully navigated before

Kaya3 mentioned ux.stackexchange.com as one example

We're actively trying to vote more objective questions to the top

Join our chat room to help out: https://chat.stackexchange.com/rooms/140719/programming-language-design

2
  • 1
    More expertise, since it's a bit harder to find the site a higher proportion of people will actually know a little about programing language design so can more accurately judge if a post is accurate or not. - to this I would add that because things not specifically related to programming language design will be off-topic, there won't be a crowd of people who are there anyway for other reasons, and therefore we won't get those people chipping in with their thoughts on everything.
    – kaya3
    Nov 24, 2022 at 23:35
  • On reddit there are rules like that too for specific subs, but highly upvoted posts will be shown to people who don't follow a specific sub, which is the main factor that leads to high volumes of low quality answers. On SE we have HNQs, also well known for producing low quality content. I don't think there is a fundamental difference there, though on SE the scale is much smaller and more manageable.
    – mousetail
    Nov 25, 2022 at 8:27
1

Mostly, but not detrimental

This is similar to kaya's answer, but I also thought it wouldn't hurt to answer your questions first question.

Firstly, design isn't an objective thing; it's different from person to person, developer to developer, and so on. While Bill Gates might have been fine with a somewhat conventional design for the first Windows, Steve Jobs was pushing for a beautiful look. Besides, the OP of the questions in PLD will have his own opinions, and I imagine they would choose the answer that they feel is most justified and makes sense according to them.

I believe that makes it... fine for SE, but we might wanna add a thing: in questions, the OP should ask for justification, and his own methods that he feels is best (similar to Stack Overflow's rule that OP should tell what they have tried in terms of code).

And as for the second question, well... I guess now that's a question that's subjective. If you favor opinion-based Q&A's, you'll mention more advantages, and if you don't, well... you get it.

You must log in to answer this question.

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