What is the right site to post a question about why a particular language does or doesn't support certain features, for example:

Why doesn't GoLang support inheritance? What were technological/language design factors involved in this decision?

  • 1
    Related: meta.stackexchange.com/questions/1696/…
    – Shog9
    Mar 13 '14 at 23:18
  • Just a quick opinion since I'm not sure if it's fit as an answer, but this kind of question is a hit-or-miss on SO. If there are official developer's documentations/articles that tell the reason, then I think it's okay to ask, since it can be answered without expressing user's opinion. But then, the OP should have searched and might find the reason before asking it on SO. If it's not documented, then user's opinions will pour and the question should be closed. Looking at both outcomes, I think this kind of question may not fit in SO. Mar 14 '14 at 2:21
  • @AndrewT. - Obviously I am not looking for opinions. In this case I'm looking for an answer that may not be documented in the official docs but which is explained somewhere or by someone who actually does know. I read a book that touches on the subject, but what was explained wasn't enough for me.
    – Vector
    Mar 14 '14 at 2:26
  • 1
    I see, but I still think it's a fat chance to get answer from "someone who actually does know" unless those people are the designers of the language, or have attended talk/seminar/presentation from primary source. I admit I don't know how many people here are fit to those criteria for specific language (I know some people from Google/Android are here, but I can't speak for other languages). In the end, I'm still not sure whether it's okay or not. Instead, maybe it's better to ask it on the official forum/group that specializes on that language (if it exists though). Mar 14 '14 at 3:02
  • If the question was rephrased to "GoLang doesn't support inheritance. Did it simply predate that concept becoming common, or is there a good architectural reason for a language to leave this out?" I'd consider it significantly improved. "Why didn't they" invites speculative mind-reading. "What are good reasons" elicits insights that might or might not have been applicable in this instance but that remain valid, and educational, even if not.
    – keshlam
    Mar 14 '14 at 14:17
  • Please read my answer here: meta.stackexchange.com/a/180552/155565 Mar 14 '14 at 16:12

As stated, this question is about the history of programming, and should be asked on Stack Overflow.

However, it is often a more interesting question to ask not what factors motivated the actual decision (such as: the main advocate of inheritance was off sick during the meeting), but what good reasons a language with this design could have to include or exclude the feature. This question is about the science of programming language design (such as it is), and belongs on Computer Science.

Beware that a part of the Stack Overflow community is used to discussions about language being based on religion rather than science, and thus tend to look down on questions about this topic as opinion-based (even though they aren't — both historical facts and mathematical and engineering considerations are subject to rational analysis). So asking on Stack Overflow incurs the risk of useless answers like “because inheritance is bad and you should be ashamed” or of having the question closed.

  • I agree that it is a question that should be allowed but I would see it much sooner on Programmers.se than Stack Overflow to be honest. I consider all design types of questions to be Programmers.se stuff and implementation questions Stack Overflow. Mar 13 '14 at 23:29
  • 1
    @JeroenVannevel In the words of a Programmers mod (paraphrased because I don't remember the exact quote): “I don't know what questions fit on Programmers”. So prefer not to venture recommending it. Mar 13 '14 at 23:46
  • but what good reasons a language with this design could have to include or exclude the feature - that is what I meant. Of course I'm not talking about who was around the office when the final decision was made - I'm talking about the computer science and technological factors that led to such decisions. See edit.
    – Vector
    Mar 14 '14 at 2:08
  • I will put in on the Computer Science site, in hopes of avoiding the ridiculous partisan battles.
    – Vector
    Mar 14 '14 at 2:09
  • @comeAndGo I should have mentioned in my answer that regardless of where you ask, you should make your question more detailed than what you posted here (which I assume is just a summary). On CS, you'll be expected to already understand the basic concepts, and since GoLang isn't a very popular language, to describe the language a bit and point us to some design documents. In general, CS.SE doesn't care about concrete products, only the science behind them. Mar 14 '14 at 2:17
  • @Gilles - actually it wasn't intended to be a summary. The question is directed at someone who has some deep technical/background knowledge about Go. In fact I surmise that if I put it on SO, some of the excellent Go-Phers around here will answer it well. But it might also get closed or flamed by C++ or Python 'zealots'....
    – Vector
    Mar 14 '14 at 2:21
  • @comeAndGo On CS.SE you'll find expertise on languages used by academia (e.g. Haskell, Ocaml, Scheme) or studied by academia (e.g. C, Java). Expertise on recent “industrial” languages is rare, so the question as posted here is likely to be closed as requiring too much knowledge of industry. Given your clarification here, this should be an SO question, except hat you're likely to run afoul of the “language design is purely opinion” crowd. Mar 14 '14 at 2:25
  • @Gilles - I've posted a number of Go questions, including some really bad ones from when I first was getting started, and have always gotten good answers from the GoLang group on here.
    – Vector
    Mar 14 '14 at 2:31

There is no site on SE where that would be an acceptable question.

Those types of questions could be very primarily opinion-based. They are not about a specific problem. The only answer that would really be acceptable is if the creators of the language left an answer explaining why.

The only other acceptable answers would include a link to some other site other than SE that would quote that site, and that site would have to quote the creators of the language where they say why it was not supported, etc.

  • 6
    This type of question is only opinion-based if you want to push your religion. If you want to answer in a useful way, it isn't any more opinion-based than any other type of question. There is a science to language design, even if it's in its infancy. And language design history is intrinsically based on historical facts. Regarding your last paragraph, history doesn't require first-hand testimony (and there's even a Stack Exchange site dedicated to history). Mar 13 '14 at 23:08

These questions have no place here, because they always lead to speculation. In most cases (the occasional Eric Lippert post being the exception that proves the rule), the people who know aren't here to answer.

Some claim that language design is so scientific that these question can be answered by principle. There's a reason why some of us see this as religion. There is no evidence that the historical decisions under C, and C++, and Java, and ..., were the result of science as opposed to art or religion. Just because language design can be done scientifically doesn't mean that it was, and so asking why the ^ or % characters were chosen for operators, or any number of other pointless explorations of inaccessible history, just doesn't get us anywhere.

  • Even if the historical reason is not a good one, it's still a historical reason. Mar 13 '14 at 23:45
  • 2
    But it's inaccessible, and we get opinions and speculation instead.
    – Rosinante
    Mar 13 '14 at 23:46
  • When you see a bad answer, click on the downward-pointing triangle below the number on the left of the answer. If it contains no information whatsoever, click the “flag” button, and select “it is very low quality”. Mar 13 '14 at 23:47
  • 1
    I'd downvote this answer if I could. Apparently you haven't read much the about history of programming languages. C, C++ and Java, as well as Go and most others popular languages, were designed to solve particular computing problems and the designers were astute computer scientists who made their decisions about the language based on their knowledge of computer science and the problems they wanted to solve with their language. No - you don't get this information from reading "Teach yourself in 24 Hours" books, but it is there if you go to good sources.
    – Vector
    Mar 14 '14 at 2:01
  • In addition, this 'answer' makes no attempt to answer the question at all! Who is talking about religion?
    – Vector
    Mar 14 '14 at 2:03
  • 2
    @comeAndGo actually, I've met some of the people, and been in the room when some of the sausages were made.
    – Rosinante
    Mar 14 '14 at 10:27
  • @Rosinante - DK what languages you mean? Or are you suggesting they were lying in the books they wrote?
    – Vector
    Mar 14 '14 at 16:30

This question, as written, is not appropriate for Stack Overflow (@Gilles reasons notwithstanding).

In most cases, the number of people making decisions for a language is very low, and so the number of people who would even begin to know an answer would be very low, and that isn't to mention the people who think they know the answer injecting their opinion into the mix.

If you'd like to know why an architectural decision was made for a language, email the language designer or ask on their forums.

Incidentally, it looks like you asked a similar question on programmers, and it was well received, so maybe it's a better place for it than Stack Overflow?

See also: Add a "Magic 8-ball" feature to the Ask a question page


If I were to replace only one word in your question (GOLang -> VBA) I am pretty sure you wouldn't need a Microsoft official to answer it even though Microsoft invented VBA. Some professionals with X many years of experience in the field, proper developers not people who happened to record a macro and modify it to their needs could answer the question for you.

Maybe the answer wouldn't be credible (like it didn't come directly from the inventor) but it would give you very good insights about why, when, how, etc. and justification on the scientific background ( ie. VBA was derived from VB6 - it can't support Inheritance because ... ) Not all answers on Stack Overflow reflect the truth, I happen to see OK, highly upvoted answers which don't actually explain the great detail nor depth.

I agree it probably requires the developer of the language to provide a 100% credible answer not a speculation but I guess it also depends on the language itself. I personally find this question suitable for Stack Overflow and if came across it would probably upvote it (only if it had more content in it - some resources indicating this or that, some justification) :)

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