FORTRAN2003 Is Unlearnable
Users of FORTRAN are typically not computer scientists.
To the contrary, most FORTRAN
users have little to no formal computer science training
and are experts working in another scientific discipline.
Scientists of all domains struggle to stay current in their
own fields, and the notion that they must also master the
arcane concepts of a 700 page reference from another science
entirely is neither practical nor appropriate.
FORTRAN2003 Is Unimplementable
There is no freely
available or reference implementation of FORTRAN2003,
or 95, or 90 for that matter. Its absence is not due to
lack of demand, but due to economic and logistic hurdles.
The overabundance of redundant syntactic constructs manifests
itself in compilers which require hundreds of man-years to
implement. Furthermore, variations in implementation may result
in basic language constructs having substantially different
performance characteristics on different systems.
The FORTRAN Business Model Is Not Sustainable
A commercial quality FORTRAN2003 compiler cannot be created,
either using commercially available components (front-ends,
assemblers, etc.) or by writing it entirely from scratch,
for less than a cost of several million dollars (US).
FORTRAN's vanishingly small market share constrains sales to
the extent that it prohibits market entry for new vendors and
prices new, entry level, and even curious users out of the market.
An Arcane Language Does Not Attract New, Talented Developers
Formal educational instruction to expose new developers to
FORTRAN is often limited to only one college course because
FORTRAN is not interesting to computer science
departments. As a result, users now typically learn FORTRAN "on the job".
Scientific programming requires some subset of the best software
developers, but employers
find it increasingly difficult to attract the new talent
needed largely for the reasons expressed here.
FORTRAN2003 Adds No Functionality
The most recent language revision
does not add any appreciable functionality to the language
which was not already accessible by some other means.
Adding additional syntax to the language to give the
appearance of making a certain operation "easy" is a false
economy because it presupposes the user has studied the
language exhaustively and is aware of the syntactic idiom.
FORTRAN Ignores Long-term Trends in Computer Architecture
Symmetric multiprocessor computers
and distributed memory clusters of computers
are found nearly ubiquitously in places where
FORTRAN is used.
FORTRAN ignores this trend, forcing users and
vendors to implement language extensions and toolkits.
Today, secondary storage universally
is direct access storage and in some instances
a parallel filesystem.
Despite these innovations, FORTRAN maintains a record
oriented sequential input/output model created for tape
and punch cards.
FORTRAN Syntax Is Archaic
FORTRAN lacks any regular grammar, and "free format" syntax replaces
rather than extends FORTRAN77 syntax, burdening
users with knowing two subtly incompatible languages,
both called FORTRAN, which can be combined almost
FORTRAN has no official macro preprocessor, so
vendors are left to improvise and users often turn to the
C Pre-Processor which is uniquely ill suited for the task.
pollutes the user name space with its plethora of
intrinsics while the syntax does not have reserved words,
use of intrinsic names as variables, or worse,
arrays, syntactically conflating function call sites and
array subscript syntax.
FORTRAN Makes Simple Programs Difficult To Write
The practice of deriving small, disposable, experimental,
toy programs from critical sections of important large
applications has all but been squashed by MODULES which
carry the baggage of unwanted code and syntactic scaffolding.
New Language Features Inhibit Optimization
FORTRAN90 and later compilers must deal with issues
such as pointer resolution and data copying
earlier compilers did not. As a result, automatic
optimization has fallen behind manual optimization.
Experienced users are effectively encouraged to
mix FORTRAN77 syntax
with later FORTRAN to achieve the desired performance.
FORTRAN2003 Has Too Many Subtleties
differentiation of things such as POINTER and ALLOCATABLE
types can have enormous effect on the semantics and
performance of a program, although the distinction is
non-obvious, implementation dependent, and largely not
understood by most FORTRAN programmers.
Automatically typing variables based on the first
character of its name
can introduce difficult to find numerical errors
and encourages obscure variable naming.