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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1116ece181be1aea X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-09-08 00:52:16 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!elnk-nf2-pas!elnk-pas-nf1!newsfeed.earthlink.net!newsfeed2.easynews.com!newsfeed1.easynews.com!easynews.com!easynews!feed.news.qwest.net!namche.sun.com!news1brm.central.sun.com!new-usenet.uk.sun.com!not-for-mail From: olehjalmar kristensen - Sun Microsystems - Trondheim Norway Newsgroups: comp.lang.ada Subject: Re: Is the Writing on the Wall for Ada? Date: 08 Sep 2003 09:49:23 +0200 Organization: Sun Microsystems Inc., http://www.sun.com/ Message-ID: References: <3F5AE863.35C9D08@sympatico.ca> NNTP-Posting-Host: khepri06.norway.sun.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: new-usenet.uk.sun.com 1063007364 11371 129.159.112.195 (8 Sep 2003 07:49:24 GMT) X-Complaints-To: usenet@new-usenet.uk.sun.com NNTP-Posting-Date: 8 Sep 2003 07:49:24 GMT User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.2 Xref: archiver1.google.com comp.lang.ada:42265 Date: 2003-09-08T07:49:24+00:00 List-Id: >>>>> "HR" == Hyman Rosen writes: HR> David Marceau wrote: >> Interfaces are the way to separating the differences between versions of >> components. HR> That is a very interesting point of view. Oh wait, no it isn't. It's just a HR> wrong point of view. The way interfaces are used in Java, and in C++ for that HR> matter, is as a specification for the the methods supported by an object. HR> It doesn't matter how this got that way, so we may as well assume that your HR> little history lesson is true, since it's uninteresting regardless. HR> Write an interface, and now you have a specification for how a component may HR> be invoked, without any code implementing such a component. Write the code HR> which conforms to the interface, and you're done. The compiler makes sure that HR> if an interface is expected, it is supplied, and if it's to be implemented, HR> nothing is missing. HR> That's your separately compilable specification and implementation. What about HR> this fails to work? In theory, nothing. But I've actually managed to create instances of classes with pure virtual functions. Kind of funny when it blows up at run time with "pure virtual function called". That's a criticism of the compiler of course, not the language as such. And then you don't have the compiler forcing you to actually write a separate interface, of course.