Re: A petition to J3 apropos FORTRAN's future

From: E. Robert Tisdale (E.Robert.Tisdale_at_jpl.nasa.gov)
Date: 02/23/04


Date: Mon, 23 Feb 2004 14:06:16 -0800

Something that calls itself analyst41 wrote:

> The question is why was Fortran rendered dead (or near-dead)
> by C (and its descendants) in the commercial domain
> during a time frame starting in the the late 1970s
> and culminating sometime in the early 1990s?

Because C compilers were bundled with UNIX operating systems.
UNIX users and administrators were obliged to learn C
so that they could maintain their UNIX operating systems.
K&R expected programmers to use Fortran for numerical applications
but Fortran compilers were expensive options that C programmers
could not afford so they wrote everything in C instead.

> I think irrational fads of managers cannot explain it completely.
> Fortran stopped addressing real needs that arose in 1980s.
> The community allowed a fatal split in interests to develop -
> academic/government/non-profit users versus commercial users.
> Commercial users needed "dirty" things like database APIs,
> command line arguments, ability to process large files as byte-streams -
> and the non-profit guys pulled the sheets right over their head
> and said "I'm alright Jack".

No. The problem is that Fortran settled into a profitable
"special purpose computing" niche -- numerical programming --
and neglected all of the features
that a "general purpose programming" language requires.
The *fatal* flaw in Fortran 77
was the failure to standardize free storage management.
There is no practical way to write portable Fortran 77 programs
that can allocate the required memory at run time.
This means that every user must also be a Fortran 77 programmer
who can modify the code to allocate memory "statically"
and recompile the program.

> Finally, after the overwhelming mass of commercial users had defected
> to C TO KEEP THEIR JOBS - the horror called f90 is unleashed
> on the world, STILL WITHOUT what commercial users wanted.
> To add sheer idiocy to injury,
> Fortran now wants to be "Object Oriented".

But Object Oriented Fortran is certainly what "commercial users" want.

> I can see why Object orientation might be helpful for GUIs, after all
> GUI programming is tedious, brain-numbing stuff with things that are
> very similar and some kind of coding method that can put down an
> ellipse or put down a circle without having to duplicate code
> could be useful to the wretches doing GUI coding.

But what if your application needs a GUI?
Practically speaking, you are forced to use another language --
Java, C++, C, etc.
And, if you already know Java, C++ or C, why would you learn Fortran
just to write the numerical kernel for your application program?

> "Object-Orientation for quantitative coding" -
> I don't see how one could get any dumber.

And that's your problem. You don't see.

>
> Think of this
>
> Minimizing a convex function, minimizing a linear function (both
> convex and concave) and minimizing a concave function subject to
> constraints - are for all practical purposes unrelated problems.
>
> What good is it to define a "class" or whatever of functions
> by their concavity/convexity and try to develop generic algorithms.
>
> And finally, the oft-quoted advantage of "generic programming"
> that you don't need to duplicate code
> for sorting real numbers and for sorting integers -
> Is this trivial gain worth increasing the compiler's complexity?

All of the immediately above is blither.
The first Object Oriented Computer Programming Language (Simula)
was designed specifically for numerical simulation.

> I am CERTAIN that f90-f95-f2003 are all deader than dodos -
> just about all the wrong features of f77 were "improved"
> until a bloated obscenity was unleashed on the public -
> and finally somebody has declared that the emperor has no clothes.

It appears that you have been sucked into the myth that
"a simpler computer programming language will make problems simpler."

        It will not.

Large, complicated problems are more easily solved
by computer programming languages with large complicated feature sets.
You should expect computer programming languages to get more complicated
as the problems that we try to solve get more complicated.