Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- From: Jan Vorbrüggen <jvorbrueggen@xxxxxxxxxxxxxxx>
- Date: Mon, 12 Mar 2007 12:45:36 +0100
Fortran will live if and only if
(0) It supports legacy code.
This is certainly an important item on the priority list, but its relative importance is down on what it once was. In my personal opinion, there is nowadays to much material in the standard, with too many interactions among useful new features, because of this legacy support. A not-quite-so-dogmatic F would be the right thing to have. Being a bit more radical, with F03 do away with the F77-type fixed-length strings and only use variable-length strings.
(1) It remains a small,fast language.
Fast has mmore than one aspect, but fast execution is still relevant.
Small is in the eye of the beholder. For all its warts, Fortran is still quite regular and principled, compared to, for instance, C, and small compared to, for instance, C++. Do away with some of the legacy support mentioned above, and even F03 can still be considered to be small.
(2) The language allows for relatively simple compilers to be written.
Entirely irrelevant. Most of the code is in the optimization part anyway, and that is to a large degree indepedent of the fron-end language - except for such things as supporting arrays as first-calls citizens.
(3) It has to be able to do dirty things
a) either as part of the language (without violating 1 and 2 above)
b) or as extensions supported by most vendors
c) or mixed language (C primarily) programming or by calling object
code complied from other languages.
Dirty things would include pipes,system calls, command line arguments,
accessing databases, Byte stream I/O (to support newer filetypes) to
name a few.
Always been possible, did that almost thirty years ago. Not part of the standardized language anyway. A far smaller fraction of this is actually doable in standard C than people think.
(4) This is a tough one - allow for parallel processing. It would be
best if opportunities for parallelization are recognized by the
compiler - but if explicit parallelization cannot be introduced into
Fortran without destroying the look and feel of the language then
perhaps the explicitly parallel operations should be done with C
routines callable from Fortran.
Entirely orthogonal to the language for many approaches to parallelism. Data-parallel is useful in a sufficient number of cases, and sufficiently well supported, that it is supposed to become part of F08.
The philosophy of the official Fortran enhancement path seems to have
been to add a gazillion features considered "modern" as (0) was
maintained - and the result is a sad failure - just about EVERY
"modern" feature in Fortran is a "Yes,but".
Do you have pointers ? yes, but....
With the but saying "...but this time we got it correct (compared to C)."
Do you have OOP ? yes, but ....
With the but saying "but this time we got a more useful and much safer version than C++."
Do you have dynamic memory ? yes, but...
With the but saying "but this time we got it correct compared to both C and C++."
The elementary C notion of variable length string seems to give
Fortran a stroke.
C does not have variable lengths strings. C has an abomination instead that should be banned from being used due to its warts and proneness to serious errors. And the support routines are even worse.
Jan
.
- Follow-Ups:
- Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- From: analyst41
- Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- From: Greg Lindahl
- Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- References:
- Prev by Date: Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- Next by Date: Re: Using unused variables
- Previous by thread: Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- Next by thread: Re: Aren't the fuddy-duddies in the group going to comment on Fortress
- Index(es):
Relevant Pages
|