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: Tucker Taft Subject: Re: Another important feature of Ada Date: 2000/11/15 Message-ID: <3A12BBC6.E3FDAB0F@averstar.com>#1/1 X-Deja-AN: 693956151 Content-Transfer-Encoding: 7bit References: <3A12041B.BCFD8CA0@worldnet.att.net> <8uu6tf$63d$1@nnrp1.deja.com> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet@inmet2.burl.averstar.com X-Trace: inmet2.burl.averstar.com 974306246 11068 141.199.8.77 (15 Nov 2000 16:37:26 GMT) Organization: AverStar (formerly Intermetrics) Burlington, MA USA Mime-Version: 1.0 NNTP-Posting-Date: 15 Nov 2000 16:37:26 GMT Newsgroups: comp.lang.ada Date: 2000-11-15T16:37:26+00:00 List-Id: 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