From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,73036d0217be91e2 X-Google-Attributes: gid103376,public From: jsa@alexandria (Jon S Anthony) Subject: Re: Inheritance versus Generics Date: 1997/05/03 Message-ID: #1/1 X-Deja-AN: 239232086 Distribution: world References: <33601924.774@flash.net> <3360CA7A.2272@elca-matrix.ch> <336596D9.2781E494@eiffel.com> Organization: PSI Public Usenet Link Newsgroups: comp.lang.ada Date: 1997-05-03T00:00:00+00:00 List-Id: In article <336596D9.2781E494@eiffel.com> Bertrand Meyer writes: > Large-scale practical experience with a language cannot hurt, of > course, but (posited) lack thereof does not disqualify one from > talking about the language. I must agree with you here - with one possible caveate (see below). > Applying the Dewar principle would have meant that none of that > criticism was meaningful, since none of the critics had any > extensive practice in the languages being discussed (especially Nicely done... > "You can't criticize Y because you have not written at least > x lines of working Y code" is not a valid dismissal. If you > want to debate someone's conclusions, you have to do it on > the merits or demerits of his stated case. Right. However, for this context there is one aspect that needs to be watched out for when "failing the Dewar Principle". That has to do with differences of how a particular sort of goal is achieved in different language designs. In particular, a goal that is "handled" by providing some sort of explicit support for that goal _can_ lead the unwary into thinking that some sort of explicit construct for this particular goal is necessary in order to achieve it. And "thus" that a languae without some directly corresponding construct can't achieve it. As we know this is not true (as it may well be covered by a more general construct or an intended combination of some other constructs), but I've seen this mistake made many times. Multiple inheritance is a favorite to trip over here. "Friendship" and "public,protected,private" are other typical examples. As are co,contra,and a-variance in class based OO. Anyway, if you happen to have the luxury of engaging in the DP, then it is much more likely that you will be aware of how such diverse goals are easily handled (even without some explicit constructs specifically for them). This will "save" you from saying "X can't accomplish Y because it does not have Z like R does", when X can in fact easily accomplish Y... > Otherwise we would fall into ad hominem disputes - and, as we all > know, this is not permitted to happen on Usenet. Hey, now don't you go dissing the grand tradition! :-) /Jon -- Jon Anthony Organon Motives, Inc. Belmont, MA 02178 617.484.3383 jsa@organon.com