Giles wrote:
> Coying Ada is not necessarily a good thing. Particularly for things that
> Ada doesn't do well (like, say, generic programming). Not that there's
> been any real effort to actually even copy Ada for any of the features
> under present consideration.
It would perhaps be useful to become knowledgeable before expressing an
opinion. For example, Technical Report 19767, which ISO will publish
"Real Soon Now" (ISO has had the corrected galleys for over a month) is
consciously modeled on Ada's separation of package spec and package body,
and private child units, all rolled into one. TR 19767 will amend Fortran
2003 when it's published. Part of a TR "promise" is to implement it to
the extent possible in the next standard, so it will almost certainly be
in the next revision.
Some proposals that were consciously modeled on provisions of Ada, but
that have fallen by the wayside, appear in 04-139, 04-140, 04-146, 04-155,
and 04-218, all papers submitted for consideration at J3 meeting 167,
04-279 from J3 meeting 168, and 04-341 from J3 meeting 169.
Some that are still on the table include 04-193, 04-382r1 and 04-383r1.
Ada isn't the only inspiration for "bizarre untried" ideas in Fortran.
04-380r2 arose from a desire to simplify implementation of a software
organization principle that is widely-used in computational mathematics
by using a syntactic principle from Alphard, Clu, .... 04-141 was
inspired by Mesa and POP-2, as well as by papers by Geschke and Mitchell,
and D.T. Ross. 04-168 was inspired by a facility from Haskell, Id, pH, ....
It would be interesting to know what it is about Ada Generic Programming
that is is not done well. I've found it to be extremely useful in my Ada
programming. Now, to copy a really bad way to implement a good idea, one
need only look to C++ templates. Here's what gnat.com has to say about Ada
generics:
A key to reusable components is a mechanism for parameterizing modules
with respect to data types and other program entities, for example a
stack package for an arbitrary element type. Ada meets this requirement
through a facility known as "generics"; since the parameterization is
done at compile time, run-time performance is not penalized.
One of the inspirations for using Ada features as a baseline for new
and useful features in Fortran is a paper by Stephen F. Zeigler entitled
"Comparing Development Costs of C and Ada," which concludes that Ada
programs cost half as much to "own" as equivalent C programs. In his
series of "T" experiments, Leslie Hatton concluded that C and Fortran 77
programs have roughly the same lifetime "ownership" costs (and C++ programs
have roughly six times the cost). So it seems like a good idea to look to
Ada for inspiration instead of to C++.
Of course, "tried and true" ideas implemented in other languages, or Fortran
dialects, don't always work out. Consider FORALL, which Malcolm Cohen
characterizes as "The lowest performance high-performance feature" of
Fortran 95 (it was copied from HPF).
--
Van Snyder | What fraction of Americans believe
[log in to unmask] | Wrestling is real and NASA is fake?
Any alleged opinions are my own and have not been approved or disapproved
by JPL, CalTech, NASA, Sean O'Keefe, George Bush, the Pope, or anybody else.
|