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,f66d11aeda114c52 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,f66d11aeda114c52 X-Google-Attributes: gid103376,public From: nospam@thanks.com.au (Don Harrison) Subject: Re: Design By Contract Date: 1997/08/29 Message-ID: #1/1 X-Deja-AN: 268895316 Sender: news@syd.csa.com.au References: Reply-To: nospam@thanks.com.au X-Nntp-Posting-Host: dev50 Organization: CSC Australia, Sydney Newsgroups: comp.lang.ada,comp.lang.eiffel Date: 1997-08-29T00:00:00+00:00 List-Id: Robert Dewar wrote: :Don says : :<< - Simplicity which enables developers to focus on designing rather than : trying to remember language rules. A simplistic, macroscopic comparison : of Eiffel and Ada based on the number of validity rules suggests that : Eiffel is about 50 times simpler than Ada.>> : : :Simplicity is a very slippery term, what do you mean: : :Simplicity of the description :Simplicity of format definition :Simplicity of programming applications :Simplicity of implementation It's perhaps more convenient to express this in terms of the opposite quality: complexity. What I mean specifically is the complexity of relationships between language features (including libraries) in terms of its impact on developing applications. :These are nowhere *near* the same thing. For example, let's compare the :floating-point rules in C and Ada. Gosh, C is FAR simpler, look at all :those rules in annex G in Ada, not to mention the basic stuff in chapter :3. None of that nonsense in C, C is much simpler. : :But suppose the task is: write portable numerical codes. Oops, now we are :in big trouble in C, and the task is far *more* complex, because now we :have no guarantees from the language, and either the task is impossible, :or involves all kinds of complex external configuration control. Yes, I agree there are problems in attempting to compare languages when one provides a facility and another doesn't. In such cases, it's necessary to add appropriate hypothetical mechanisms to the one that lacks them to compare fairly. In the case of Eiifel, you would need to add certain standard and optional class libraries, for example, to compare it with Ada. Even though my formula for relative complexity is macroscopic, I think it has a sufficiently objective basis to be of some interest. It does require some more accurate data than I currently have at my disposal. In particular, I would like to know: How many distinct numbered validity requirements are there in: - The core language part of the Ada RM - Each Annexe of the Ada RM What I mean is how many of these: RM 10.1.2(4), for example. (Examples should be omitted). If you, or anyone is willing to supply this information, I'll post the formula and a discussion of it. Don. (Reverse to reply) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Don Harrison au.com.csa.syd@donh