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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f039470e8f537101 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-07-28 11:18:31 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!nntp.abs.net!ash.uu.net!spool.news.uu.net!not-for-mail Date: Mon, 28 Jul 2003 14:18:17 -0400 From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5a) Gecko/20030611 Thunderbird/0.1a X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Non-philosophical definition of Eiffel? References: <1058968422.225561@master.nyc.kbcfp.com> <3F200AD0.94F79098@adaworks.com> <7u9Ua.13412$634.10307@nwrdny03.gnilink.net> <3F215120.1040706@attbi.com> <1059151910.357790@master.nyc.kbcfp.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: KBC Financial Products Message-ID: <1059416297.548253@master.nyc.kbcfp.com> Cache-Post-Path: master.nyc.kbcfp.com!unknown@nightcrawler.nyc.kbcfp.com X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/) NNTP-Posting-Host: 204.253.250.10 X-Trace: 1059416297 2653 204.253.250.10 Xref: archiver1.google.com comp.lang.ada:40907 Date: 2003-07-28T14:18:17-04:00 List-Id: Alexander Kopilovitch wrote: > So, is there a definitive book about Eiffel programming language, but without > too many pages about Design By Contract? Go right to the horse's mouth, _Object Oriented Software Construction_ by Bertrand Meyer. In my opinion, the huge error made by Eiffel is to have covariant argument types for inherited methods, and this as an error from which the language has never recovered. For those unfamiliar with the concept, Eiffel allows a derived class to override an inherited method with a method whiach takes a more restricted argument type. This obviously causes huge correctness issues, since at any call using a base object you may be committing a type violation that you are not even aware of! The Eiffel people have spent years trying to figure out ways around the problem while still keeping the original design.