Re: High performance alternative to MI of virtual bases
"Claudio Puviani" <puviani@hotmai l.com> wrote in message
news:59jdc.1868 0$Po2.6639652@n ews4.srv.hcvlny .cv.net...[color=blue]
> "christophe r diggins" <cdiggins@video tron.ca> wrote[/color]
<snip>[color=blue][color=green]
> > It seems you might be on a personal vendetta, but I
> > am open to the idea that my idea might be flawed. But
> > please tell me how my idea is flawed first before you
> > accuse me of being hard-headed.[/color]
>
> I can see how you would have read that as refering to you, and I apologize
> for not expressing this more clearly. The "hard-headed" attribute refers[/color]
to[color=blue]
> some people involved in a few prior unrelated "debates", not to you.[/color]
You've[color=blue]
> so far shown yourself to be open to dissenting views, even if you don't
> ascribe to them.[/color]
I am pleased to hear that, and I apologize for having taken offence to
something not aimed at me.
<snip>[color=blue][color=green]
> > Finally something I can discuss with you. What I am presenting
> > is not a solution to mitigate the costs of abusing MI, it is a new
> > way to look at sofwtware designs which promotes multiple
> > implementations of interfaces.[/color]
>
> I have nothing against interfaces in principle, but
>[color=green]
> > Heavy use of MI is only "abuse" because the approach of
> > using ABC's to emulate interfaces is flawed.[/color]
>
> Heavy use of MI is abuse for the same reasons that simple inheritance is
> abused: incorrect modeling. Inheritance -- multiple or otherwise -- is[/color]
meant[color=blue]
> to model an IS-A relationship, not a LOOKS-LIKE or a BEHAVES-LIKE
> relationship, which is what interfaces model.[/color]
It is perhaps narrow to suggest that any usage of inheritance beyond
modeling IS-A relationships is incorrect. I will grant you that being
rigorous in this manner has advantages of consistency which can be
preferable in many scenarios. I believe there are valid scenarios when
inheritance is not just about modeling, sometimes it is just a practical
technique used to save coding and factor out common functionality. When you
refer to interfaces here, are you refering to Abstract Base Classes
performing as interfaces?
[color=blue]
> The great irony is that when a
> system is modeled correctly, there is very little need for inheritance and
> almost no need whatsoever for MI.[/color]
This is a very far reaching statement. There is an implication as to what
constitutes correct modeling that could potentially be very contentious. We
may have differing views on writing software. I belive that there are
multiple legitimate ways to write software and that as long as in the end it
accomplishes certain core objectives (i.e. fully satisfies requirements both
implicit and explicit, is correct, fails gracefully, is easily modifiable by
others) then it can be considered to be correct. I may be reading too much
into your statement, but part of the implication is that software which uses
MI is not modeled correctly which I disagree with.
[color=blue]
> Interfaces _are_ an interesting paradigm, but they're not a C++ paradigm,[/color]
Using ABC's like interfaces to model BEHAVES-LIKE cases is a C++ paradigm.
[color=blue]
> which is why this thread is off-topic in a newsgroup that's dedicated to[/color]
the[color=blue]
> use of the core standard C++ language... WITHOUT preprocessors to handle
> language extensions. This applies to CORBA, ODMG, Heron, and any other
> preprocessor, regardless of how useful it may or may not be. For the sake[/color]
of[color=blue]
> argument, let's say C++ would be better with interfaces. This would be the
> wrong newsgroup to discuss that because this newsgroup's chosen topic is[/color]
the[color=blue]
> C++ language AS IT'S DEFINED IN THE STANDARD, not any theoretical
> extensions.[/color]
Any suggestion where a more appropriate place to discuss extensions to the
standard? At the same time, the output of HeronFront could be argued to be
on-topic, because it is C++ as defined in the standard. I think really if
people like myself were silenced here, then you would be left with nothing
but a lot of "how do I do my homework posts".
[color=blue]
> Clearly, Heron, as a language is completely off-topic.[/color]
Yes Heron definitely is OT, but to be fair I never brought up Heron.
<snip>[color=blue][color=green]
> > I encourage you to give it a chance by imagining what kinds of
> > designs you might be able to write if heavy use of multiple
> > interfaces was not in fact abusive.[/color]
>
> This presumes two things: (1) that I -- or anyone else -- would be willing
> to add yet another preprocessor to the build chain, which in my case is
> absolutely false, and (2) that heavy use of multiple inheritance is
> desirable, which almost every author and practitioner agrees is not the
> case.[/color]
I don't honestly expect many people to use (1), as I mentioned before it's
more of a proof of concept. Though interestingly enough, I could build a
very interesting library in standard C++ using HeronFront. So what are the
reasons behind (2)? Is it because heavy use of MI is inefficient? When
modeling behaves-like cases using ABC's, it makes sense that we use MI as
much as we need to, any limit on us using it would be purely implementation
imposed.
<snip>[color=blue]
> Unfortunately for you, you don't own this thread. It's both ironic and
> amusing that you would try to exclude someone from an off-topic thread.[/color]
Okay then, I'm glad I amused you at least.
--
Christopher Diggins
"Claudio Puviani" <puviani@hotmai l.com> wrote in message
news:59jdc.1868 0$Po2.6639652@n ews4.srv.hcvlny .cv.net...[color=blue]
> "christophe r diggins" <cdiggins@video tron.ca> wrote[/color]
<snip>[color=blue][color=green]
> > It seems you might be on a personal vendetta, but I
> > am open to the idea that my idea might be flawed. But
> > please tell me how my idea is flawed first before you
> > accuse me of being hard-headed.[/color]
>
> I can see how you would have read that as refering to you, and I apologize
> for not expressing this more clearly. The "hard-headed" attribute refers[/color]
to[color=blue]
> some people involved in a few prior unrelated "debates", not to you.[/color]
You've[color=blue]
> so far shown yourself to be open to dissenting views, even if you don't
> ascribe to them.[/color]
I am pleased to hear that, and I apologize for having taken offence to
something not aimed at me.
<snip>[color=blue][color=green]
> > Finally something I can discuss with you. What I am presenting
> > is not a solution to mitigate the costs of abusing MI, it is a new
> > way to look at sofwtware designs which promotes multiple
> > implementations of interfaces.[/color]
>
> I have nothing against interfaces in principle, but
>[color=green]
> > Heavy use of MI is only "abuse" because the approach of
> > using ABC's to emulate interfaces is flawed.[/color]
>
> Heavy use of MI is abuse for the same reasons that simple inheritance is
> abused: incorrect modeling. Inheritance -- multiple or otherwise -- is[/color]
meant[color=blue]
> to model an IS-A relationship, not a LOOKS-LIKE or a BEHAVES-LIKE
> relationship, which is what interfaces model.[/color]
It is perhaps narrow to suggest that any usage of inheritance beyond
modeling IS-A relationships is incorrect. I will grant you that being
rigorous in this manner has advantages of consistency which can be
preferable in many scenarios. I believe there are valid scenarios when
inheritance is not just about modeling, sometimes it is just a practical
technique used to save coding and factor out common functionality. When you
refer to interfaces here, are you refering to Abstract Base Classes
performing as interfaces?
[color=blue]
> The great irony is that when a
> system is modeled correctly, there is very little need for inheritance and
> almost no need whatsoever for MI.[/color]
This is a very far reaching statement. There is an implication as to what
constitutes correct modeling that could potentially be very contentious. We
may have differing views on writing software. I belive that there are
multiple legitimate ways to write software and that as long as in the end it
accomplishes certain core objectives (i.e. fully satisfies requirements both
implicit and explicit, is correct, fails gracefully, is easily modifiable by
others) then it can be considered to be correct. I may be reading too much
into your statement, but part of the implication is that software which uses
MI is not modeled correctly which I disagree with.
[color=blue]
> Interfaces _are_ an interesting paradigm, but they're not a C++ paradigm,[/color]
Using ABC's like interfaces to model BEHAVES-LIKE cases is a C++ paradigm.
[color=blue]
> which is why this thread is off-topic in a newsgroup that's dedicated to[/color]
the[color=blue]
> use of the core standard C++ language... WITHOUT preprocessors to handle
> language extensions. This applies to CORBA, ODMG, Heron, and any other
> preprocessor, regardless of how useful it may or may not be. For the sake[/color]
of[color=blue]
> argument, let's say C++ would be better with interfaces. This would be the
> wrong newsgroup to discuss that because this newsgroup's chosen topic is[/color]
the[color=blue]
> C++ language AS IT'S DEFINED IN THE STANDARD, not any theoretical
> extensions.[/color]
Any suggestion where a more appropriate place to discuss extensions to the
standard? At the same time, the output of HeronFront could be argued to be
on-topic, because it is C++ as defined in the standard. I think really if
people like myself were silenced here, then you would be left with nothing
but a lot of "how do I do my homework posts".
[color=blue]
> Clearly, Heron, as a language is completely off-topic.[/color]
Yes Heron definitely is OT, but to be fair I never brought up Heron.
<snip>[color=blue][color=green]
> > I encourage you to give it a chance by imagining what kinds of
> > designs you might be able to write if heavy use of multiple
> > interfaces was not in fact abusive.[/color]
>
> This presumes two things: (1) that I -- or anyone else -- would be willing
> to add yet another preprocessor to the build chain, which in my case is
> absolutely false, and (2) that heavy use of multiple inheritance is
> desirable, which almost every author and practitioner agrees is not the
> case.[/color]
I don't honestly expect many people to use (1), as I mentioned before it's
more of a proof of concept. Though interestingly enough, I could build a
very interesting library in standard C++ using HeronFront. So what are the
reasons behind (2)? Is it because heavy use of MI is inefficient? When
modeling behaves-like cases using ABC's, it makes sense that we use MI as
much as we need to, any limit on us using it would be purely implementation
imposed.
<snip>[color=blue]
> Unfortunately for you, you don't own this thread. It's both ironic and
> amusing that you would try to exclude someone from an off-topic thread.[/color]
Okay then, I'm glad I amused you at least.
--
Christopher Diggins
Comment