I was allowed to ask at meta because my question was locked.

Probably I had to start with revising what programming mainstream tells about the topic. That is after all the core of my concern, inappropriate terminalogy, that I believe deep-rooted in the community. The first stop learning about MI is Wikipedia. The article is basically reduced to the Diamond problem and its mitigation. It is not surprising therefore that the most popular question at programmers, why do you hate MI also identifies MI problem with diamond problem. Google engeneers answer to that with a proposal to fix the language, propose fixes to the language saying that MI can be enabled through enabling the Diamond and give us an example with a simple join (3 points),

class OrderedSet extends Set, Sequence

with Set and Sequence providing collection-specific toString implementation. My question however stems from the fact that this class hierarchy corresponds to

enter image description here

which is not a diamond because diamond. The diamond has 4 points

enter image description here

I have nothing left with but to read about the Diamond problem.

The diamond problem says that we get (naming) conflicts because D obtains two copies of same properties of A. And we see that programmers blame the common ancestor for the conflicts. However, question what if we inherit from card_deck and graphic, both of which have a draw method, what does it mean to draw the resulting object? (I had less far-fetched example with digital circuits in my locked question if you ask why do we need to merge deck with graphics) clearly demonstrates how naming clash without the common ancestor, simply, likewise Guava language demo above. Guava demo does not have the diamond problem. These are examples of having the naming clash, due to simple Join, without the Diamond. You can have naming clash without the common ancestor. But, the programmers seem to identify MI-caused naming conflicts with Diamond problem. For me, it is a logical fallacy, like saying that "all birds are ducks because we know that all ducks are birds". Indeed, all ducks are birds but I see that there are other birds, who are not ducks. Why do you keep telling me that pigeon is a duck, like Guava designers do? Why do you call something Diamond when Join is assumed?

I also suggested that Diamond may solve the problem, created by Join. In this light, reducing MI-caused naming conflicts to the Diamond problem is even more rediculous. Why do you do so? I ask only because I like order and feel really uncomfortable when everybody says white when black is demonstrated. How can you feel otherwise?

I would also ask why do you hate that question? How should I appreciate comments like this question cannot have the answer (how did you know? by closing the question?) or it was answered already or stop telling us the trivial things or it is not clear at all. And all these controversial attacks can come from a single person. I welcome only analysis of my question. This question does not let me sleep. How can I make it sharp?

  • 3
    To be fair, your question is a bit "pointed," which is to say that you seem to have already answered it yourself in the body of the question. "Diamonds are bad, Joints are good, amirite?" You didn't leave much room for discussion, and at the end of the day, your question is flame-bait, and this isn't a discussion forum anyway. Consider this counterpoint: I assert that multiple-inheritance is left out of some languages like Java, not because of the diamond problem specifically, but because MI is simply a poor tradeoff; its cost in added complexity is greater than the benefits it provides. Jul 14 '15 at 22:20
  • @RobertHarvey 1. "Diamonds are bad, Joints are good, amirite?" Where do you read that? 2. "No much room for discussion" -- Very nice. The first objection on my original question was meta.programmers.stackexchange.com/questions/6742/…. You see how you attack me with contraversial requirements. And who is saying something unclear? 3. "Consider this counterpoint" -- What your you objecting here to? Have you missed the topic?
    – Val
    Jul 14 '15 at 22:28
  • 2
    You read that as an attack? I think I'm done here. Jul 14 '15 at 22:34
  • I write having a bird does not mean that you have a duck. They read you say that birds are good whereas ducks are bad. What should I do?
    – Val
    Jul 14 '15 at 22:42
  • 2
    Because 3 point problems are trivially reconfigured into an inheritance chain. It's only a problem with the common base type. Also, Meta is not for rants, just like Programmers is not for rants.
    – Telastyn
    Jul 14 '15 at 23:19
  • @Telastyn You seem to say that my Q is answerable. Nice to hear, despite the argument behind the diamond is actually a correct term left uncertain to me. You cannot say that Diamond is right because of some common type. What is reconfiguration chain? Secondly, any seemingly absurd thing needs resolution (see Russel on Dialectics). What you call "a rant" is actually a driver of the progress: We smooth things out when we are allowed to expose existing imperfections. Yet, you say that we should keep misconceptions because exposing them, asking to get rid of them, is a despised ranting.
    – Val
    Jul 15 '15 at 7:08
  • 2
    @RecognizeEvilasWaste - It is one thing to question some imperfection aiming to improve it. It is entirely another to do so in a way that implies that anyone who doesn't share your views is a complete idiot - and worse, must have some hidden agenda to keep the world ignorant. One does drive progress. The other is an unconstructive rant since there's no actual debate or conversation to be had to create that progress. People don't hate your question - they hate how you asked it.
    – Telastyn
    Jul 15 '15 at 12:59
  • @Telastyn At first, I never told that if you do not agree with me, you are an idiot. It is slander on me. Secondly, I tried to ask this question several times in different programming communities. And people always despised it, distorting everything what I say. How can I ask them to stop it and read question once again or at least not to ask to close it it if they do not understand it?
    – Val
    Jul 15 '15 at 13:16
  • @RecognizeEvilasWaste - Please reread what I said. I did not say that you said that, I said that you implied that. When I read your question, everything from For me, it is a logical fallacy and after has a very negative tone. You are saying that it is "rediculous" that people think this way - akin to calling a pigeon a duck or calling black white. To me (and others), that implies that you think all of these people are either idiots or crazy to make such basic mistakes. If that is not what you meant to convey, then editing the question is better than blaming people for misreading it.
    – Telastyn
    Jul 15 '15 at 13:24
  • @RecognizeEvilasWaste "... I tried to ask this question several times in different programming communities. And people always despised it..." I would urge you to look at the constant between all of those experiences and consider the possibility that it is your presentation of the subject that needs work rather than the communities all being individually hostile to you. The tone which you use in writing is the first impression that people have.
    – user40980
    Jul 15 '15 at 13:27
  • @Telastyn And how do I ask the question? I see something wrong/stupid/crazy/absurd/ridiculous/inappropriate but I cannot say that because people who say that thing look idiots. This is how you perpetuate evil. My manner may be uncivil but it is straightforward (see Feynman style in my bio). You also cannot say that I do not let others to respond after I openly say that I am here just to listen the response because I probably miss something important. Judging if it is correct to reduce the MI problem to Diamond problem or not is pretty answerable. Just list pros/cons that I probably missed.
    – Val
    Jul 15 '15 at 14:36
  • @RecognizeEvilasWaste - I would start by replacing For me, it is a logical fallacy and everything after with a simple "Why is that?" Or "Why do programmers think of it as the diamond problem instead of a simple name collision?". People can then explain why they think that way and you can start a constructive dialog about why they don't think of it the way you do.
    – Telastyn
    Jul 15 '15 at 14:59
  • @Telastyn Diamond vs. name collision is right title but saying that logic fallacies are offensive just proves what I say. You consider the model, the essence of the problem, offensive. Whereas models exist to provide the Minimal example which clearly identify the problem in a way that is understandable by all, which is demanded from me below.
    – Val
    Jul 15 '15 at 18:52
  • 1
    @RecognizeEvilasWaste - I quoted a unique line in your question as a point to start removing text. I in no way said that I find logical fallacies offensive, so please stop misreading. Though I do think that "logical fallacy" is overstating things. The diamond problem is a core issue with multiple inheritance implementations that support polymorphic dispatch. You are right that they are not equivalent, but you're doing yourself no favors by claiming that people are wholly incorrect.
    – Telastyn
    Jul 15 '15 at 19:23
  • @Telastyn People who say that being processor = made by Intel are not wholly incorrect either. But they are, despite Intel is a core producer.
    – Val
    Jul 15 '15 at 20:02

It's hard to tell if you're trying to ask why your question got deleted, or trying to re-ask the question that got deleted, but I'm going to assume the former because that's what this meta site is for.

I only showed up right before this question got deleted, so I might have missed a few things, but I read the full question and the comments, and I agree with the deletion despite not having cast any of the votes myself.

What I first saw was a potentially good question ("Why do people claim the 'diamond' is such a huge, insurmountable problem?") buried under a significant amount of ranting and irrelevant information. I still believe this could be a good question, and I think I even know how I'd go about answering it. But it absolutely needed work before it could be answered properly, so putting it on hold until it was cleaned up was the right thing to do.

The problem was that the comments underneath the question descended almost immediately into a counterproductive argument, mostly because you reacted to the community's response with wild accusations about "taboo subjects" and "personal attacks" that had little to do with what they were actually saying or what was happening to your question. When that sort of thing starts happening, it's generally best to nuke the whole argument and let everyone cool their heads for a while, which is why I agreed with the delete votes. Now it's all water under the bridge.

I'd be happy to help you rework the question so that it can be asked and answered constructively, especially since you have the reputation needed to join chat rooms. It might also help to look at past questions about the "diamond", especially this one which seems fairly similar to yours.

  • That pretty similar question was analyzed inside out in the discussion that followed my question. I also started this question with couple of links (3 links, to be precise) to that topic. What else do I need to extract from there and how do you read the questions if you do not notice that? Why do people cannot notice things that I stick into their faces all the time and present those things like eye openers for me? I do not ask why MI is hated. I ask why it is misnamed (erroneously associated with Diamond). I also ask why this my question, where I ask this, I ignored and hated?
    – Val
    Jul 14 '15 at 22:06
  • 3
    I lack the reputation to see deleted questions so I wasn't able to reread yours when composing this answer, and I did not follow all of your links on my first read (since the question clearly contained quite a bit of extraneous material at the time), so I apologize for missing that. But you're not ignored or hated. The fact that so many people commented on your post and I answered here proves you weren't ignored, and closing a question absolutely does not imply hatred, it only implies the question needs work.
    – Ixrec
    Jul 14 '15 at 22:09
  • They replied with inappropriate "put downs". Just because they ignored the question. I am very persistent. If I am really curious about something, I ask people not to twist and pay attention to the point of my curiosity. And this infuriates people even more when they do not want to notice the question, want to evade from the question or shut it down.
    – Val
    Jul 14 '15 at 22:17
  • @gnat As usually you are completely inadequate. But, that statement is also wrong. Once my question provoked a lot of hatred towards me, I have noted that some my previously upvoted answers were downvoted. This is a clear sign of personal hatred and revenge (despite I did nothing bad to people). People downvote correct and flawless answers only because they are doing a personal attack. So, you psychological sentences just cover various kinds of injustice. Nothing more.
    – Val
    Jul 14 '15 at 22:47
  • @RecognizeEvilasWaste your reputation tab doesn't show any downvotes. In fact, it doesn't show any votes at all after Jun 25. Downvotes to recent question aren't shown because it's deleted, maybe you have answers deleted too so that these are invisible?
    – gnat
    Jul 14 '15 at 22:52
  • @gnat You seem to specialize on the blatantly false statements today. I do not know which site you are looking at but I had much more activity since that. I do not see any good reason why you are doing that.
    – Val
    Jul 14 '15 at 23:07
  • @RecognizeEvilasWaste I was looking at your rep tab at Programmers <-- this is a link to it
    – gnat
    Jul 14 '15 at 23:15
  • @gnat It is not surprising that once you started to smear someone using hasty generalization, you can apply it second time. Normal people understand that there is no need to narrow down the sampling domain artificially.
    – Val
    Jul 15 '15 at 7:32
  • it's a simple and verifiable fact that "hatred downvotes" you're talking about exist only in your imagination. One can simply check timing of all the votes in rep tabs in all your accounts at Stack Exchange and compare to timing of the question ("asked Jul 14 at 17:26") to find it out
    – gnat
    Jul 18 '15 at 9:46

For the non-10k users, a screen capture of the entire post: jpeg (I had to switch from png to jpeg and reduce the image quality to get it to fit into the upload constraints - it started out as a 4.4 megabyte file)

Now that we've got that out of the way and we can look at it:

I have difficulty identifying the actual problem. The question gives a bit of history, and then starts going into "I'm right" and "why does everyone (other than delphi programmers) not to notice this?" Beyond that point, it goes to some odd tangent of personal experience.

I can't find the question that can be solved. It reads like a giant blog post. The help center specifically calls out the types of questions that don't work in the Stack Exchange format:

  1. every answer is equally valid: “What’s your favorite ______?”
  2. your answer is provided along with the question, and you expect more answers: “I use ______ for ______, what do you use?”
  3. there is no actual problem to be solved: “I’m curious if other people feel like I do.”
  4. you are asking an open-ended, hypothetical question: “What if ______ happened?”
  5. your question is just a rant in disguise: “______ sucks, am I right?”

This feels like a some degree of fit for #2, #3, and #5. The bit for #2 is that first part of "your answer is provided along with the question":

Why conflicts due to join are not a problem whereas Diamond, which I hopefully explanied very well is a solution, is a problem for you instead of Join? Why solution is considered a problem whereas the problem itself is totally ignored?

You've provided a solution to something, but I'm not exactly sure what that something is.

If I had close votes, I would have cast them as unclear too.

However, this question didn't end there. The comments immediately start out with:

As I expected, they will downvote and close the question. This is a taboo question. They silence the question to silence it. It would be stupid to let it come to the surface and discussed. – Recognize Evil as Waste 6 hours ago

and eventually gets to:

@RecognizeEvilasWaste good grief; give it a rest, would you? This isn't a place to rant (if you want to do that, open your own blog), it's to ask and answer (answerable, on-topic) questions. Also, bear in mind that the probability that you're a misunderstood genius is somewhat lower than the probability that you've misunderstood something. – jonrsharpe 4 hours ago

jonrsharpe expands unjustified smearing of my question (it is clearly a question, I wounder how you bend your brain to read it otherwise) with personal attacks. It seems that so far there was not enough dirt for me. – Recognize Evil as Waste 4 hours ago

The resulting post and comments are no longer suitable for a question and answer site and any hope of civil discourse (note that discussions shouldn't the focus of a question) are lost when Thomas Owens locks it down to try to cool things off and then decides that its really beyond repair.

Stack Overflow has their Minimal, Complete, and Verifiable example which goes to trying to clearly identify the problem in a way that is understandable by all.

This question fails at that minimal aspect with significant amounts of other material that I don't understand why its there. It gets into half adders and... well... there isn't an answerable problem there. As I read it, there is instead a manifesto of multiple inheritance and asking why the rest of the world is ignoring this solution.

This type of question really isn't a good fit for the Q&A format. Maybe you want to instead post such on other sites. It might work there. However, I would encourage you to not come out swinging and looking for a fight about taboo subjects (there not, we're just bored of them) immediately.

For Stack Exchange, please try to concentrate on answerable questions that don't take more than a few paragraphs to answer. Questions like the one you ask would take significantly more to refute (possibly into the 'needs to be a white paper' size) and if you're going to attack anyone who answers or tries to gain a better understanding of what you are asking you may get a similar reception there.

  • #2 Which answer did I provide? You say that you do not understand that question but can be sure that I provide the answer. How it that possible. #3 When people say white when black is demonstrated it is legitimate to ask why? and this case is opposite to there is no question #5 is legitimate for the same reason. There is a whole class of questions related to misconceptions (either community or personal) which you ban because "how is it possible?, who is right?" sound like "it sucks". I am sure that Q is answerable in few paragraphs. You just avoid it by all means.
    – Val
    Jul 15 '15 at 6:32

You must log in to answer this question.

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