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: fac41,2c6139ce13be9980 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,3d3f20d31be1c33a X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,2c6139ce13be9980 X-Google-Attributes: gid1108a1,public X-Google-Thread: f43e6,2c6139ce13be9980 X-Google-Attributes: gidf43e6,public From: jsa@alexandria.organon.com (Jon S Anthony) Subject: Re: Separation of IF and Imp: process issue? Date: 1997/09/13 Message-ID: #1/1 X-Deja-AN: 272011046 Distribution: world References: <33E9ADE9.4709@flash.net> Organization: PSINet Newsgroups: comp.object,comp.software-eng,comp.lang.ada,comp.lang.eiffel Date: 1997-09-13T00:00:00+00:00 List-Id: In article bobduff@world.std.com (Robert A Duff) writes: > In article , > Jon S Anthony wrote: > >This particular point is not a matter of opinion. Package specs. and > >abstract/deferred classes are simply and objectively different things. > > Actually, they seem pretty similar to me. They both define interfaces. Similar is irrelevant. That's not the point. And they are not particularly similar anyway. You might as well say that the Rock of Gibraltor is similar to my piece of chalk. Under certain very special circumstances that might actually tell you something useful. Under typical circumstances that just confuses things. They are very different in what they do and how they do it. > Yes, there are various differences, but the unlerlying thing is that > abstract_types=deferred_classes are pretty similar to package specs, > in some interesting ways. That's an opinion, like it or not. I don't care if they can be seen as "similar" in some respects. They are far more different than alike. You might as well say that since Eiffel is similar to Ada in some respects, Eiffel _is_ Ada (or vice-versa) > >Read the Ada RM and then have another go at this. You will see that > >the things are clearly different. > > Yes, they are somewhat different. (I had a hand in writing the Ada RM, > and I know quite well how they're different!) But they still both have > the same goal of defining an interface. Actually package specs. don't define an interface - though they certainly play a role in many (by providing the boundaries where "primitive ops" and such are allowed when defining an interface). I can define a type and a set of operations on it in a package body or subprogram => package spec. not necessary for interface. I can define an empty package spec => package spec. not sufficient for an interface. Sounds like a package spec. is neither necessary nor sufficient for an interface. > I think Patrick's point is well taken: Why does Ada have both abstract > types (which define an interface) and package specs (which define an > interface)? Why it has both is a separate issue. Whether having both is "good" or not is a separate issue. > saying, "well, abstract types are totally different from package specs > (look at these details)" doesn't do it. Tell you what - show me how you derive "concrete package specs" from others, create instances for package specs., define methods on package specs., dispatch over package specs. and I'll start thinking that maybe you have a point. /Jon -- Jon Anthony OMI, Belmont, MA 02178, 617.484.3383 "Nightmares - Ha! The way my life's been going lately, Who'd notice?" -- Londo Mollari