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,dab7d920e4340f12 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,dab7d920e4340f12 X-Google-Attributes: gid1014db,public From: Sandy McPherson Subject: Re: Ada is 'better' than C because... Date: 1996/08/05 Message-ID: <3205F296.41C6@wgs.estec.esa.nl>#1/1 X-Deja-AN: 172228046 references: <01bb7bf9$b89a1740$96ee6fcf@timhome2> <4tj43k$16r@newsbf02.news.aol.com> content-type: text/plain; charset=us-ascii organization: European Space Agency mime-version: 1.0 newsgroups: comp.lang.ada,comp.lang.c x-mailer: Mozilla 3.0b5aGold (X11; I; IRIX 5.3 IP19) Date: 1996-08-05T00:00:00+00:00 List-Id: Richard Riehle wrote: > > The C family of languages is inherently dangerous. > > A programming language for which pointer arithmetic is an essential > feature of non-trivial programs is not a language I want controlling > the systems where my life is on the line. And, frankly, I don't care > how skilled the programmer is. This is still an area where mistakes > occur all too frequently. > > Richard Riehle I have a view comments to make to your objective and considered statements: All programming languages are inherently dangerous, because they are used by humans to write faulty software (see The Ariane debacle). Since when was pointer arithmetic "essential"? It is simply convenient. I agree all programmers make mistakes, and too many of them. Intelligent and workable coding standards need to be strictly applied in all languages and tools must exist which can measure and report on adherence/breach of the rules. The fact is that the primary tools (those which you must use to get your program to run) for Ada are better than those for C (e.g. the compiler, the APSE and the run-time system), but some of the secondary tools for C can be better (e.g. QAC, Purify), the problem being simply "you don't HAVE to use them", and you have to pay extra for them (the (f)law of false economies). To get an objective view of whether one language is better than the other, one has to evaluate statistics on error densities in comparable systems written in the protagonist languages. Most people who have done this come to this conclusion: the choice of programming language only counts if the choice is between assembler and something else; and for most mainstream higher languages the process of software development is the determining factor. Try starting with a paper by Les Hutton, "Static inspection - must have or might have?", published in IEEE software 1995, which gives references to other interesting reading. Sandy McPherson