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: ffc1e,a48e5b99425d742a X-Google-Attributes: gidffc1e,public X-Google-Thread: fac41,a48e5b99425d742a X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,a48e5b99425d742a X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,a48e5b99425d742a X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,5da92b52f6784b63 X-Google-Attributes: gid1108a1,public From: Joachim Durchholz Subject: Re: Papers on the Ariane-5 crash and Design by Contract Date: 1997/03/24 Message-ID: #1/1 X-Deja-AN: 228038811 Sender: Joachim Durchholz References: Organization: ccn - computer consultant network GmbH Reply-To: joachim.durchholz@munich.netsurf.de Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.programming.threads,comp.lang.ada Date: 1997-03-24T00:00:00+00:00 List-Id: > My point was that assertions and design by contract are good, but are not > enforced by Eiffel any more than any other modern programming language. > The presence of "built-in" assertions does not mean they will be used; a > person who would use assertions fastidiously in Eiffel is probably already > using them in C++ or Ada. Sorry that I have to disagree. I bought all of programming-by-contract. I'd very much like to use it in my projects (unfortunately, the projects at work aren't in Eiffel). But all I can do is add comments in programming-by-contract style. I can't switch precondition checking on for a single class, I have to switch it on for everything that's written by myself; however, this would incur such a run-time penalty that I usually don't do it. Worse, I can't switch on precondition checking for the classes that were delivered as part of the compiler, so whenever the program crashes, I keep wondering wether the error is in my code or in the libraries. And of course some crashes don't even tell me which routine failed, and in what way - I recently had to single-step through every line of initialization code in my system to find the broken precondition. Programming-by-contract is much like parameter type checking. You can do without it if you work very carefully. But in practice, all sorts of stupid mistakes occur, and they occur in the libraries, too. Just my 5c. Regards,