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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC 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: 1108a1,2c6139ce13be9980 X-Google-Attributes: gid1108a1,public X-Google-Thread: f43e6,2c6139ce13be9980 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,3d3f20d31be1c33a X-Google-Attributes: gid103376,public From: Nick Leaton Subject: Re: Separation of IF and Imp: process issue? Date: 1997/09/09 Message-ID: <341510CA.5E741BB9@calfp.co.uk>#1/1 X-Deja-AN: 270933183 References: <33E9ADE9.4709@flash.net> <3414840F.38EC@ac3i.dseg.ti.com> Reply-To: nickle@pauillac X-NNTP-Posting-Host: calfp.demon.co.uk [158.152.70.168] Newsgroups: comp.object,comp.software-eng,comp.lang.ada,comp.lang.eiffel Date: 1997-09-09T00:00:00+00:00 List-Id: John G. Volan wrote: > Ada programmers are conditioned to think in terms of establishing the > "contract" of a package first, by writing its "interface" (spec), before > ever writing a single line of its "implementation" (body). So Ada > conditions programmers to adhere to a certain engineering discipline. > Ada programmers tend to understand the difference in engineering impact > between an interface change and an implementation change, because Ada > makes it so obvious. And a good job too. I've never understood the aversion people have to writting code as part of the design process. Writting the spec should be a major part of the design, and why not write the interface file in the process. > In contrast (in my experience) Eiffel programmers tend to have a harder > time even seeing the distinction, given that Eiffel treats the notion of > an "interface-only view of a class which describes its contract" as > something of an afterthought. (A tad ironic in a language which holds > "Design By Contract" as one of its fundamental principles. :-)) Not quite. Since in Eiffel you can allow access to different features to different classes at the feature level, the interface-only view depends on the which class you want to look at the view from. For example, an interator would want a different view of a list than a normal client of list. In each case the specification is different. > Note that I'm not making a value judgment here, just highlighting the > difference in emphasis between the two languages, and how they condition > programmers to think. I'm sure that Eiffel programmers could point out > issues of central importance in Eiffel which tend to be "blind spots" > for Ada programmers (e.g., assertions). The value judgement idea is very relavent. The separate spec with tools (compiler to check) versus all in with tools (to separate) (and abstract classes) are two ways of skinning the same cat. Its interesting to evaluate the reasons behind the choices. -- Nick Eiffel - Possibly the best language in the world - unless proven otherwise.