comp.lang.ada
 help / color / mirror / Atom feed
From: Richard Riehle <laoXhai@ix.netcom.com>
Subject: Re: How to make like Fortran "do i = 1,20,2"
Date: 2000/07/28
Date: 2000-07-28T22:29:50+00:00	[thread overview]
Message-ID: <39820851.80C2F3F@ix.netcom.com> (raw)
In-Reply-To: Pine.A41.3.96-heb-2.07.1000729001045.79432A-100000@pluto.mscc.huji.ac.il



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





  reply	other threads:[~2000-07-28  0:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-27  0:00 How to make like Fortran "do i = 1,20,2" Reinert Korsnes
2000-07-27  0:00 ` Larry Kilgallen
2000-07-27  0:00   ` Gary Scott
2000-07-27  0:00     ` Larry Kilgallen
2000-07-27  0:00     ` mjsilva
2000-07-27  0:00     ` Matthew J Heaney
2000-07-28  0:00       ` Gary Scott
2000-07-28  0:00         ` mjsilva
2000-07-29  0:00         ` Ehud Lamm
2000-07-28  0:00           ` Richard Riehle [this message]
2000-07-29  0:00           ` Robert I. Eachus
     [not found]           ` <39833637.3B83BFAC@lmtas.lmco.com>
2000-07-29  0:00             ` Gary Scott
2000-07-27  0:00     ` Pat Rogers
2000-07-27  0:00 ` des walker
2000-07-27  0:00   ` tmoran
2000-07-28  0:00     ` Reinert Korsnes
2000-07-28  0:00       ` Gautier
2000-07-29  0:00       ` tmoran
2000-07-27  0:00   ` Gary Scott
2000-07-27  0:00 ` Ken Garlington
2000-07-27  0:00 ` Lutz Donnerhacke
2000-07-27  0:00 ` G. de Montmollin
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox