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,e511f3ccb3da24af X-Google-Attributes: gid103376,public From: Richard Riehle Subject: Re: How to make like Fortran "do i = 1,20,2" Date: 2000/07/28 Message-ID: <39820851.80C2F3F@ix.netcom.com>#1/1 X-Deja-AN: 651977896 Content-Transfer-Encoding: 7bit References: <8lpcbe$40n$1@news.uit.no> <39805669.3E7CF6CF@lmtas.lmco.com> <7rhf9bb362.fsf@butter.albany.duck.com> <3981A390.A1F3D127@lmtas.lmco.com> X-Accept-Language: en X-Server-Date: 28 Jul 2000 22:29:50 GMT Content-Type: text/plain; charset=us-ascii Organization: MindSpring Enterprises Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-07-28T22:29:50+00:00 List-Id: Ehud Lamm wrote: > One of the nice things about programming is that you can choose from > different languages. If you find Ada a bad languaged - use something else! > > I usually find myself in agreement with the desginers of Ada. Sometimes > though, reaching this conclusion takes time and refelction. Ehud has a good point. However, I would soften it somewhat and suggest that it is not a matter of good or bad. Rather, it is an issue of expressiveness versus expressibility. Some languages are more expressive of a given feature than others. In Ada we can easily design a for loop that includes a step feature, but Fortran (along with BASIC and other languages) is more directly expressive of that capability than Ada. We had a debate in another thread about assertions (pre-, post-, and invariants). Some development tools, such as Eiffel and the Spark Examiner for Ada, are more expressive of this notion than standard Ada. A couple of years ago I posted a challenge for the design of a package specification that would directly express the powerful EVALUATE verb of ANSI-1985 COBOL using Ada. No one really came very close using Ada. There were some creative efforts, but none had the expressive power of COBOL. To be fair, no one seems able to accomplish this in Eiffel or C++ any more effectively. Ultimately, we can express any construct in nearly any language. That is not the point. Expressible is not the same as expressive. We can, as another example, express opaque types more conveniently in Modula-3 than in any of the languages so far named. At the same time, Modula-3 typing, using structural equivalence, is weaker than that in Ada, and even weaker than current ISO/ANSI C++, both of which use name equivalence. Good or bad is not a sufficient level of granularity for making decisions about languages. We can easily prove that one language or another is able to better designed to express a particular solution model than any of its competitors. If one insists on comparing languages on the basis of a single set of features, any language can be made to look better than its alternatives. Ehud makes a good point when he notes that he usually finds himself "in agreement with the desginers of Ada." To really make the decision regarding a programming language choice, when only one choice is allowed, suggests that the evaluation be made at a level of abstraction considerably higher than that of feature selection. The features help implement the philosophy of the language, but the full design of the language, including its consistency, readability, and expressiveness of essential constructs are but a few of those issues that loom larger than specific features. Richard Riehle