Starting right out with the title, "How Not to Write FORTRAN in Any
Language," Donn Seely betrays his ignorance of events concerning Fortran
since Eisenhower was president. Well, that's a bit of hyperbole -- the
spelling was changed from FORTRAN to Fortran "only" fifteen years ago.
Seely's assertion "No one would want to program in Fortran today, since
many better alternatives are available" is belied by what at least some
Fortran compiler vendors say: Even though the market share is
decreasing, the market is increasing. It would be interesting to know
what "better alternatives" Seely has in mind. Java? Nobody compiles
it yet, at least not getting anywhere near the performance of Fortran.
C++? If you believe Leslie Hatton, who has actually done measurements
instead of waving his hands, C++ programs typically have roughly six
times the lifetime ownership costs of equivalent programs written in C,
Ada or Fortran, and fewer than one third of programming projects begun
in C++ are completed. C? Pointer semantics in C guarantee that
optimizers cannot do as good a job of register allocation as in Fortran
(C99 offers some help here), and C has no array handling facilities.
Modula-2? Too many portability problems. Ada? In many ways, Ada is a
better alternative, although the array semantics are not nearly as
powerful as Fortran's -- and arrays are at the heart of numeric
processing, which is what Fortran was designed for.
Exactly what did Seely mean by Fortran's "hindrances to good
programming?" Fixed format? Free form was introduced in 1990.
Control structures that don't need GOTO? Some introduced in 1977, and
a more complete set in 1990. Dynamic storage? Introduced in 1990.
Structured data types? Introduced in 1990. Modularization and
"chunking"? A system far superior to anything in C or C++ was
introduced in 1990, and will be improved even more "real soon now" (ISO
has the corrected galleys for Technical Report 19767). Recursion?
Introduced in 1990. Object-oriented programming? There is some debate
whether this is actually beneficial, but it was introduced in the 2003
standard. For a complete summary of what's new in Fortran since 1995
(not including improvements between 1956 and 1995), see
ftp://ftp.nag.co.uk/sc22wg5/N1551-N1600/N1579.pdf (or .ps.gz).
If Thompson and Ritchie had used the moniker BCPL 69 instead of B, and
then used BCPL 71, and then BCPL 78, and then BCPL 89, and then BCPL 99,
instead of C, would Seely be saying "No one would want to program in BCPL
today...?" Just because Fortran's name wasn't changed by any of the four
standards published since the version Seely most probably dislikes (five
if Seely is objecting to Backus's original pre-standardization-days 1956
FORTRAN) doesn't mean it wasn't improved while he wasn't watching.
Seely should more accurately have entitled his diatribe "How not to write
FORTRAN 66 in any language" since that appears to be the target of his
venom. If he had remarked that "No one would want to program in FORTRAN
66 (or IBM 704 FORTRAN) today, since many better alternatives, including
Fortran 90, Fortran 95 and Fortran 2003 are available," he would not have
so embarrassingly betrayed the depth of his ignorance of this subject.
Even with its defects, the paper is actually filled with good advice --
including advice not to use FORTRAN 66 anymore. It's just too bad his
advice about not using four-times-superceded language standards was so
obsolete.
--
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.
|