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,6960ceaa57428e2f X-Google-Attributes: gid103376,public From: Ed Falis Subject: Re: Another important feature of Ada Date: 2000/11/15 Message-ID: #1/1 X-Deja-AN: 694111005 Content-Transfer-Encoding: 8bit References: <3A12041B.BCFD8CA0@worldnet.att.net> <8uu6tf$63d$1@nnrp1.deja.com> <3A12BBC6.E3FDAB0F@averstar.com> Content-Type: text/plain; charset=ISO-8859-1 X-Complaints-To: abuse@mediaone.net X-Trace: typhoon.ne.mediaone.net 974331583 24.91.79.5 (Wed, 15 Nov 2000 18:39:43 EST) Organization: Road Runner MIME-Version: 1.0 NNTP-Posting-Date: Wed, 15 Nov 2000 18:39:43 EST Newsgroups: comp.lang.ada X-Program-URL: http://www.concentric.net/~brunsona/pineapplenews.html Date: 2000-11-15T00:00:00+00:00 List-Id: Well, I'm going to be a bit heretical here, having done a little Eiffel programming and a lot of Ada programming. DbC in conjunction with the tool-enabled extraction of interfaces, and the use of deferred classes, more than makes up for the lack of physical separation. The "little" Eiffel I did was several thousand lines of a GUI tool. It worked rather nicely. In the end, it strikes me as a wash, since I can do more or less the same in Ada as Eiffel DbC using asserts and (in the case of gnat, pragma debug to provide inherited contracts and overrides). The Eiffel DbC capabilities take less work to accomplish the same end. The Eiffel ability to present only the interface in the IDE is less work than separately writing specs and bodies. And fully deferred classes handle the pragmatic need for control of interfaces separate from implementations by different stakeholders. Both languages accomplish similar goals, and it seems a matter of taste as to which to prefer. These languages have more in common than most. - Ed Tucker Taft wrote: > I also believe strongly in the value of separating interface and > implementation. > > Whenever I discuss this issue, I generally fall back on the analogy of > a legal contract, where it would be frightening to have to ask the > company working > for you to give you "today's contract," which they will extract from > the current work in progress. > > This is essentially the story in Java and Eiffel with classes, > where there is no separate spec, but you can > extract the "contract" from the implementation. Of course, Java has > "interfaces" and Eiffel has "deferred classes," but there is a lot of > code which is not just implementing one of these, and all of that > code has no physically separate "contract" defining what it does. > > Not cool in my view. > > From anecdotal experience, the fact that Ada has separate package > specs > is very helpful in getting developers to focus on the notion of an > interface. With Java, that seems to be getting lost again. > > -Tucker Taft stt@averstar.com