[comp.lang.fortran] Why have FORTRAN 8x at all?

wgh@ubbpc.UUCP (William G. Hutchison) (10/28/88)

 I haven't programmed seriously in FORTRAN for a decade or so, so maybe some
FORTRAN advocates can tell me something: why is there an effort to make up
a new standard at all?
 It seems to me that if folks keep kludging up FORTRAN to make it more
"modern", they arrive at a baroque mess that serves nobody well.
 Modern FORTRAN has been tried before: it was called PL/I and it flopped
miserably.
 Wouldn't the numerical computation community be better advised to find or
develop a modern language, e.g. something like Modula-2 or occam or whatever
(insert your favorite BNF here), possibly with the addition of some stuff
to facilitate numerical work, then to put the effort into writing good
FORTRAN-to-UTOPIA-99 translators.
 I just don't see that making more complex, kludgy FORTRANoid languages is
a good use of time and money.
-- 
Bill Hutchison, DP Consultant	rutgers!cbmvax!burdvax!ubbpc!wgh
Unisys UNIX Portation Center	"What one fool can do, another can!"
P.O. Box 500, M.S. B121		Ancient Simian Proverb, quoted by
Blue Bell, PA 19424		Sylvanus P. Thompson, in _Calculus Made Easy_

ok@quintus.uucp (Richard A. O'Keefe) (10/30/88)

In article <16187@agate.BERKELEY.EDU> link@sag4.ssl.berkeley.edu (Richard Link) writes:
>In article <388@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>>why is there an effort to make up a new standard at all?
>
>The reason for a new standard is:
>(1) there is a huge investment in already written code
But the *old* standard is sufficient to protect that.

>(2) FORTRAN is the most useful (existing) language for number crunching.
Again, the *old* standard is sufficient to protect that (if true).

>Why should I, or anyone else, rewrite millions lines of code simply
>because somebody else, who has not programmed in FORTRAN for ten years,
>thinks a new language is more desireable?
Indeed, why should you?  People invent new languages all the time; you
didn't have to rewrite your Fortran code when Pascal was invented, nor
when C was invented, and not even when ADA was invented.  As long as
faithful implementations of the old language are still available, your
code will continue to run, and if we're a wee bit realistic about it,
that's the *only* thing that will protect your existing code.

Just how hard it will be to compile F8X I don't know.
All I can say is that I know several dozen programming languages, including
APL and DAP FORTRAN, and the Feburary '87 draft of F8x described a language
that I found bewilderingly complex.  I liked most of the new features, it
was just that they had been bodged together in the most apalling way so that
the new language could claim F77 as a subset.  We can be reasonably
confident that for three to five years after the standard is settled the
new compilers will be sufficiently buggy that you will have to rewrite your
old code to use the new features (because those will be the bits that work!).
Unless, of course, you hang on to your old compilers until the new ones
settle down.  That's what keeps happening with COBOL:  some of the COBOL
programmers I know didn't switch over to COBOL 74 until in the 80s because
not only were the compilers buggy, but there turned out to be one or two
serious ambiguities in the standard which different compiler writers had
in good faith interpreted different ways.

>why would CERN, the European particle accelerator establishment, want
>to throw away all that code?
As long as they have a compiler for F77, and whatever new language they
are using will let them mix F77 routines with Utopia-99, why would they
_have_ to throw away all that code?

>Now that I've said all this, I wonder: are you being facetious?
Probably not.  Were you?  There are two separate propositions:

	(a) People with an investment in F77 code should not have to
	    abandon it.
	(b) The best possible standard language for numerical work
	    must include F77 as a subset.

I think it is fairly clear that (b) is false, if by "best" we mean things
like comprehensible, easy to optimise, &c, and that (a) can be satisfied
whether there is an F8x or not and whatever it looks like.  But as a
*practical* matter of persuading people to move up, calling the new
language Fortran is a neat trick, and if you also want
	(c) People doing numerical work should be able to do all of it
	    with just one compiler
_then_ (a) and (c) entail (b).  But you can't get there without (c).

Don't take this message as knocking F8x, whatever it ends up like.
I appreciate the practical forces behind it, and am profoundly thankful
that the thankless task of working on the standard is not mine.
I just wanted to make it clear that Hutchinson was also being sensible.

khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) (10/30/88)

In article <388@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>
> I haven't programmed seriously in FORTRAN for a decade or so, so maybe some
>FORTRAN advocates can tell me something: why is there an effort to make up
>a new standard at all?
> It seems to me that if folks keep kludging up FORTRAN to make it more
>"modern", they arrive at a baroque mess that serves nobody well.
> Modern FORTRAN has been tried before: it was called PL/I and it flopped
>miserably.

CS types (i.e. all of US ACM members :>) are always talking about
reuseable tools. FORTRAN users have them. In spades. Giving up all the
existing software is not a reasonable thing to do.

PL/I was NOT a modernized FORTRAN. It was conceived as a language to
replace FORTRAN & COBOL. Of course, it failed at both.

F88 is NOT just a set of kludges. I stongly recommend Metcalf and
Reid's F8x explained. To summerize all the years of effort in  a
couple of words (take with salt) : f88 is a language designed to
accomodate the needs of scientific computing. If another language
satisfied this community, this would be unecessary...but nothing comes
close. 

> Wouldn't the numerical computation community be better advised to find or
>develop a modern language, e.g. something like Modula-2 or occam or whatever
>(insert your favorite BNF here), possibly with the addition of some stuff
>to facilitate numerical work, then to put the effort into writing good
>FORTRAN-to-UTOPIA-99 translators.

As above. This is much too expensive, nor is it obvious that f88 is
not "a modern language". Overloaded operators, modules, abstract
datatypes, special numericalenvironment functions, and the rest seem
to fit the bill". F88 is not utopia 99; but it is modern.

>I just don't see that making more complex, kludgy FORTRANoid languages is
>a good use of time and money.

I just don't see that throwing about $1+ Billion dollars of software
is a viable alternative. Nor that anything on the market comes close
to F88 as a language that supports scientific computing. F88 sans the
old f66 features would be close to what you suggest. If the current
pace of development holds up this sort of thing MAY come to pass, in
another 20-30 years. Then again, we may chose to keep computed goto
and arithmetic if forever, to help remembe rthe early days "when men
carried swords of stone". :>>





Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus

khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) (10/30/88)

In article <599@quintus.UUCP> ok@quintus.UUCP (Richard A. O'Keefe) writes:
>In article <16187@agate.BERKELEY.EDU> link@sag4.ssl.berkeley.edu (Richard Link) writes:
>>In article <388@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>>>why is there an effort to make up a new standard at all?
>>
>>The reason for a new standard is:
>>(1) there is a huge investment in already written code

>But the *old* standard is sufficient to protect that.

Nonsense. If I can't use the tools developed in the "old language", I
have to rewrite them in the new langauge. This is not protecting an investment.
>
>>(2) FORTRAN is the most useful (existing) language for number crunching.
>Again, the *old* standard is sufficient to protect that (if true).

(if true ?) sheer number of lines of code produced each year, combined
with the constant research into better fortran optimization techniques
would seem to demonstrate this. Know of a single vendor of high
performance computers who doesn't produce a fortran compiler FIRST ?

btw: ditto on the failure of the old standard to protect the future

>
>>Why should I, or anyone else, rewrite millions lines of code simply
>>because somebody else, who has not programmed in FORTRAN for ten years,
>>thinks a new language is more desireable?
>Indeed, why should you?  People invent new languages all the time; you
>didn't have to rewrite your Fortran code when Pascal was invented, nor
>when C was invented, and not even when ADA was invented.  As long as
>faithful implementations of the old language are still available, your
>code will continue to run, and if we're a wee bit realistic about it,
>that's the *only* thing that will protect your existing code.

Note that off all the hundreds of new languages developed, only C has
had any real impact on a real commerical basis. Many scientific
projects last more years than the new hot language on the block does.
Writing code which must last years requires a stability that your
proposal does not provide.
>
>Just how hard it will be to compile F8X I don't know.
>All I can say is that I know several dozen programming languages, including
>APL and DAP FORTRAN, and the Feburary '87 draft of F8x described a language
>that I found bewilderingly complex.  I liked most of the new features, it
>was just that they had been bodged together in the most apalling way so that
>the new language could claim F77 as a subset.  We can be reasonably
>confident that for three to five years after the standard is settled the
>new compilers will be sufficiently buggy that you will have to rewrite your
>old code to use the new features (because those will be the bits that work!).
>Unless, of course, you hang on to your old compilers until the new ones
>settle down.  That's what keeps happening with COBOL:  some of the COBOL
>programmers I know didn't switch over to COBOL 74 until in the 80s because
>not only were the compilers buggy, but there turned out to be one or two
>serious ambiguities in the standard which different compiler writers had
>in good faith interpreted different ways.

The new language is constructed such that most users will simply not
have to know how to use it (like how to write code with keyword
arguement passing and operator overloading). Those experts tasked to
create easy to use libraries need these features, and these features
make it simpler for naive users to write new code. 

Your holding up COBOL as an example is a good point, as old COBOL code
cannot always run on new compilers. By construction this is not true
of F88. Thus whenever a user switches over the cost of switching is low.

>
>>why would CERN, the European particle accelerator establishment, want
>>to throw away all that code?
>As long as they have a compiler for F77, and whatever new language they
>are using will let them mix F77 routines with Utopia-99, why would they
>_have_ to throw away all that code?

Because in a multi-vendor environment this simply doesn't work. Within
any vendor's product line it often does; but no large scientific
organization is so deeply comitted to a single vendor. Multilanguage
programming is wonderful....but all vendors have to provide identical
versions of each language and all have identical idiocyrancies in
arguement passing between languages....I doubt this sort of
meta-standardization will happen in my lifetime.

>
>>Now that I've said all this, I wonder: are you being facetious?
>Probably not.  Were you?  There are two separate propositions:
>
>	(a) People with an investment in F77 code should not have to
>	    abandon it.
>	(b) The best possible standard language for numerical work
>	    must include F77 as a subset.
>
>I think it is fairly clear that (b) is false, if by "best" we mean things
>like comprehensible, easy to optimise, &c, and that (a) can be satisfied
>whether there is an F8x or not and whatever it looks like.  But as a
>*practical* matter of persuading people to move up, calling the new
>language Fortran is a neat trick, and if you also want

It is not clear that b is false. It should be clear that a is only
true if we give up on making any progress.

>	(c) People doing numerical work should be able to do all of it
>	    with just one compiler
>_then_ (a) and (c) entail (b).  But you can't get there without (c).

If they can't, they won't be able to change platforms, or they will
have to give up on using tools developed for one project in another.
Furthermore those that adventure into new exotic languages will
produce tools which no one will be able to employ...as "most"
scientific users are scientists first, programmers second. 
>
>Don't take this message as knocking F8x, whatever it ends up like.
>I appreciate the practical forces behind it, and am profoundly thankful
>that the thankless task of working on the standard is not mine.
>I just wanted to make it clear that Hutchinson was also being sensible.

I think Hutchinson was being serious. That is what is scary.








Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus

psmith@mozart.uucp (Presley Smith) (10/30/88)

In article <75320@sun.uucp> khb@sun.UUCP (Keith Bierman - Sun Tactical Engineering) writes:
>In article <599@quintus.UUCP> ok@quintus.UUCP (Richard A. O'Keefe) writes:
>>In article <16187@agate.BERKELEY.EDU> link@sag4.ssl.berkeley.edu (Richard Link) writes:
>>>In article <388@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>>>>why is there an effort to make up a new standard at all?
>>>
>>>The reason for a new standard is:
>>>(1) there is a huge investment in already written code
>
>>But the *old* standard is sufficient to protect that.
>
>Nonsense. If I can't use the tools developed in the "old language", I
>have to rewrite them in the new langauge. This is not protecting an investment.
>>
>>>(2) FORTRAN is the most useful (existing) language for number crunching.
>>Again, the *old* standard is sufficient to protect that (if true).
>
>(if true ?) sheer number of lines of code produced each year, combined
>with the constant research into better fortran optimization techniques
>would seem to demonstrate this. Know of a single vendor of high
>performance computers who doesn't produce a fortran compiler FIRST ?
>
>btw: ditto on the failure of the old standard to protect the future

The mixture of old and new features will provide new challenges for 
the vendors that must optimize code.  The new standard has certainly
NOT been written with optimization in mind.  One of the foremost 
researchers in Fortran optimization told me last year that he should
be FOR the proposed new language because it would keep him busy for
the next few years consuting with compiler writers on the problems 
with optimizing the new constructs.    He was against the proposal
because he did not see the real benefit to the Fortran community.

(Text deleted)

>>
>>Just how hard it will be to compile F8X I don't know.
>>All I can say is that I know several dozen programming languages, including
>>APL and DAP FORTRAN, and the Feburary '87 draft of F8x described a language
>>that I found bewilderingly complex.  I liked most of the new features, it
>>was just that they had been bodged together in the most apalling way so that
>>the new language could claim F77 as a subset.  We can be reasonably
>>confident that for three to five years after the standard is settled the
>>new compilers will be sufficiently buggy that you will have to rewrite your
>>old code to use the new features (because those will be the bits that work!).
>>Unless, of course, you hang on to your old compilers until the new ones
>>settle down.  That's what keeps happening with COBOL:  some of the COBOL
>>programmers I know didn't switch over to COBOL 74 until in the 80s because
>>not only were the compilers buggy, but there turned out to be one or two
>>serious ambiguities in the standard which different compiler writers had
>>in good faith interpreted different ways.
>
>The new language is constructed such that most users will simply not
>have to know how to use it (like how to write code with keyword
>arguement passing and operator overloading). Those experts tasked to
>create easy to use libraries need these features, and these features
>make it simpler for naive users to write new code. 
>

One of the major things that IBM complained about in their ballot was
that proper use of Fortran 8x would not preserve the investment in 
user training.  As has been noted, it is a complex language and users
will have to be trained to use it and use it properly.  There will
be a mixing of old and new constructs so that programs that people
have worked with for years will change in ways that programmers will
have to get used.   This mixture of constructs will cause problems
in sustaining code.  I'm not sure what "experts" you expect are going
to create these libraries, etc.  It will take years for such facilities 
to become widespread and since they will NOT be defined by a standard,
people who use them will find their code is no longer portable.

I don't believe that Fortran 8x will every make it "simpler for naive 
users to write new code."  That's like saying it's easy for the naive
user to write new code in Ada because a lot of packages have been 
defined... it's just not true.

>Your holding up COBOL as an example is a good point, as old COBOL code
>cannot always run on new compilers. By construction this is not true
>of F88. Thus whenever a user switches over the cost of switching is low.
>

One of the major debates in the X3J3 committee today is whether to 
start with FORTRAN 77 as a base document and add the 8x constructs 
to produce the next version of 8x for public review, or to start 
with the current version of 8x and remove and modify portions to 
respond to public review.   Why this debate?  Because so much has
been changed in the proposed 8x that there are members of the 
committee that are NOT convinced that all of FORTRAN 77 has been 
preserved.   They claim that the only way at this point to insure
that 8x is really upwardly compatible with FORTRAN 77 is to start
with FORTRAN 77 and re-add and integrate the 8x features back into
it.   These members of X3J3 don't believe that there has been enough
effort to insure that FORTRAN 77 has not been changed in the process 
of trippling the size of the FORTRAN 77 document to produce the 8x
document. 

Just as with the arguments on COBOL, there will be different vendor
interpretation of Fortran 8x that will cause problems with portability.
Since no one has implemented at 8x today, we currently don't even 
know where those problems will occur.

(Text deleted)

wgh@ubbpc.UUCP (William G. Hutchison) (11/01/88)

In article <16187@agate.BERKELEY.EDU>, link@sag4.ssl.berkeley.edu (Richard Link) writes:
> In article <388@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
> > I haven't programmed seriously in FORTRAN for a decade or so, so maybe some
> >FORTRAN advocates can tell me something: why is there an effort to make up
> >a new standard at all?
> The reason for a new standard is:
> (1) there is a huge investment in already written code
> (2) FORTRAN is the most useful (existing) language for number crunching.
> Why should I, or anyone else, rewrite millions lines of code simply
> because somebody else, who has not programmed in FORTRAN for ten years,
> thinks a new language is more desireable? Your arguments are certainly
> not going to get me to change to something else.
> 
> Now that I've said all this, I wonder: are you being facetious?


Dr. Link:
 No, I am not facetious, and you misunderstood one of my points: I am NOT
advocating that you change to another programming language.  My question is
Why not leave FORTRAN 77 alone and stop messing with FORTRAN?

 Here is the historical paradigm I am looking at:
  Algol-60 was a breakthough, excellent language; widely used as a publication
language and used in Europe as a practical language.  So a committee decided
to "improve" Algol-60 to Algol-68.  You may recall the result: Algol-68 was
"improved" to the point of being unusable.  Very few implementations ever were
finished: hardly anybody ever managed to get through the language spec.
 IBM decided to "improve" FORTRAN and COBOL: they produced PL/I: another
semi-usable mess.
 From the comments IN THIS GROUP, I conclude that FORTRAN 8x is evolving into
another committee-designed mess, which I doubt sincerely will serve anybody
well.  
 So I ask again, why have FORTRAN 8x at all? (not facetious!).
 As for your point about preserving your investment in FORTRAN-66 or
FORTRAN-77, I suggest that you keep on programming in FORTRAN-66 or FORTRAN-77!

-- 
Bill Hutchison, DP Consultant	rutgers!cbmvax!burdvax!ubbpc!wgh
Unisys UNIX Portation Center	"What one fool can do, another can!"
P.O. Box 500, M.S. B121		Ancient Simian Proverb, quoted by
Blue Bell, PA 19424		Sylvanus P. Thompson, in _Calculus Made Easy_

wgh@ubbpc.UUCP (William G. Hutchison) (11/01/88)

In article <599@quintus.UUCP>, ok@quintus.uucp (Richard A. O'Keefe) writes:
> In article <16187@agate.BERKELEY.EDU> link@sag4.ssl.berkeley.edu (Richard Link) writes:
> >In article <388@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
> >>why is there an effort to make up a new standard at all?
			[ illogical arguments deleted ]	
> I just wanted to make it clear that Hutchison was also being sensible.

Thanks! Glad to see somebody here thinking with neurons rather than their
glands!  You understood my point that there is no need to rewrite FORTRAN-77
code just because somebody proposes a "new, improved" vastly more complex
"standard".

 By the way, here is some more discussion on how Algol-60 was "improved":
Algol-60 was "improved" to Algol-68 by a committee and the result was an
embarrassing debacle.
 Algol-60 was really improved by Niklaus Wirth:
 Algol-60 -> Algol-W -> Pascal -> Modula -> Modula 2 -> ... -> ???
 
Note that real improvements in language design seem to come from individuals
or small groups, not large committees!

 More examples of real improvements (by individuals)

 BCPL -> B -> C -> C++

 Beware of committees of politicians bearing standards!

-- 
Bill Hutchison, DP Consultant	rutgers!cbmvax!burdvax!ubbpc!wgh
Unisys UNIX Portation Center	"What one fool can do, another can!"
P.O. Box 500, M.S. B121		Ancient Simian Proverb, quoted by
Blue Bell, PA 19424		Sylvanus P. Thompson, in _Calculus Made Easy_

khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) (11/02/88)

In article <391@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>In article <16187@agate.BERKELEY.EDU>, link@sag4.ssl.berkeley.edu (Richard Link) writes:
>
> Here is the historical paradigm I am looking at:
>  Algol-60 was a breakthough, excellent language; widely used as a publication
>language and used in Europe as a practical language.  So a committee decided
>to "improve" Algol-60 to Algol-68.  You may recall the result: Algol-68 was
>"improved" to the point of being unusable.  Very few implementations ever were
>finished: hardly anybody ever managed to get through the language spec.
> IBM decided to "improve" FORTRAN and COBOL: they produced PL/I: another
>semi-usable mess.

x3j3 was well aware of these previous diasters. This is why it
insisted that f8x (now, by fiat of wg5, f88) accept all existing f77
compliant code. This was not true of algol-68. PL/1 was compatible
with no previous (or future) language. Neither is a good model for
understanding f88.

> From the comments IN THIS GROUP, I conclude that FORTRAN 8x is evolving into
>another committee-designed mess, which I doubt sincerely will serve anybody
>well.  

There is a very natural tendency for posters to come from the ranks of
the unhappy..this colors the impression.. If I had not been using
fortran, and had not read metcalf and reid's book AND the proposed
standard (and to be fair, several years of committee meetings) I would
not feel competant to pass judgement on the standard.

> So I ask again, why have FORTRAN 8x at all? (not facetious!).

Because the cost of developing scientific code is much too high.
Because systems evolve or die. Because we know there are better
solutions. Because a large number of people have demanded change.
Because lack of a new standard breeds ever more complex vendor extensions.

> As for your point about preserving your investment in FORTRAN-66 or
>FORTRAN-77, I suggest that you keep on programming in FORTRAN-66 or 
>FORTRAN-77!

The point is how to preserve the investment, but not continue to pay
the price of using a 1960's language (with a couple of 1970's minor
mods). 

Committees may not create perfect standards, but there is no
alternative. With the possible exceptions of C and APL, no language
cooked up by a single individual or tiny team has proven useful to a
wide audiance (I include pascal (which mututated radically on its way
to even limited sucess as a commercial language, and forth which
continues to serve a very limited audiance) (many will argue that APL
has not been an exception either). 

Personally I think x3j3 was faced with a nearly insoluable problem.
How to (a) plan for orderly evolution (b) provide an relatively smooth
path for upgrading to a modern language (c) provide all the features
needed by a very diverse user community.

Anyone who can't find fault with the standard simply isn't trying hard
enough. 

The question is: which (if any) objections/complaints were not aired
                 years ago? 

x3j3 may not have dealt with them as everyone might have liked; but
dealt with them they did. So when are we gonna call it wrap, do it;
and then start discussing the next standard ?

Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus

khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) (11/02/88)

In article <392@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>
>Thanks! Glad to see somebody here thinking with neurons rather than their
>glands! 

Note that the fellow who agrees with you hasn't used fortran for 10
years. If I didn't use my car, I might not care that the engine oil
had been removed. :>

> You understood my point that there is no need to rewrite FORTRAN-77
>code just because somebody proposes a "new, improved" vastly more complex
>"standard".

It should be noted (* sigh *) that the new improved vastly more
complex standard does NOT REQUIRE YOU TO REWRITE YOUR CODE. This is
one of the reasons it is complex and large. NO REWRITING. NONE.


> By the way, here is some more discussion on how Algol-60 was "improved":
>Algol-60 was "improved" to Algol-68 by a committee and the result was an
>embarrassing debacle.

> Algol-60 was really improved by Niklaus Wirth:
> Algol-60 -> Algol-W -> Pascal -> Modula -> Modula 2 -> ... -> ???

Right. Which is why no algol code was portable to -W. Nor was either
usable under Pascal. None of any of them under modula. And again for
modula II. Wirth has contributed much to computer science, but
creating languages suitable for long term development of production
code...I think the record speaks for itself.

> 
>Note that real improvements in language design seem to come from individuals
>or small groups, not large committees!

But committees are responsible for languages being useful to large
groups of people for long periods of time.

It is all right for students to rewrite the codes of yesteryear, this
is exactly what school is all about. It is not reasonable for industry
to act in a similar fashion.

When it comes to pure research, small groups are ideal (note that
Wirth rarely worked along. grad studentor equiv s did the
implementations). When the needs of the many must be weighed there is
no substitute for a committee. This is unfortunate, but it appears to
be true.
>
> More examples of real improvements (by individuals)
>
> BCPL -> B -> C -> C++
>
> Beware of committees of politicians bearing standards!
>

Beware of new wave languages, few endure the test of time.



>P.O. Box 500, M.S. B121		Ancient Simian Proverb, quoted by
>Blue Bell, PA 19424		Sylvanus P. Thompson, in _Calculus Made Easy_


Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus

oglesby@m7.multiflow.COM (Jose Oglesby) (11/02/88)

In article <392@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:

    Algol-60 was really improved by Niklaus Wirth:
    Algol-60 -> Algol-W -> Pascal -> Modula -> Modula 2 -> ... -> ???

    BCPL -> B -> C -> C++

    Beware of committees of politicians bearing standards!

What about the FORTRAN 77 Standard which now has so many defenders?
Wasn't that produced by a committee?  Yes, one should beware, but
one should also try to keep an open mind.  Just because committes
have generally failed in the past does not mean they must continue
to fail.  In fact, I am very hopeful for the C and Scheme efforts.
The most important common thread that ties these efforts together
is the attempt to standardize existing practice.  In the case of
ANSI C there is also an attempt to "modernize" the language.  This
has been done in a restrained manner by not adding too many new
constructs or concepts.  In "modernizing", one can not go too
far.  I don't think the C community would be too happy if ANSI C
were the same as C++.  ( Personally, I would have approved ).

Now let's look at the 8X effort.  I beleive that so far the
committee has done a good job under difficult circunstances.
There are problems in the existing draft but it can be rescued.
The negative comments in comp.lang.fortran lately have not been very
helpful. ( i.e. It is bigger than Ada! Why have it at all? )
Those people who claim that the F8X language is too big should
come up with specific things they feel should be dropped from
it.   To those who question the need for a standard I would
point out the need to standardize existing practice so as
to obtain more portable code.

Actually one of the problems with the standard is its failure
to address some existing practice.  The bit strings and include
statement omissions should be rectified.  The include statement
problem could be handled through a supplementary standard for
a pre-processor.  

My favorite candidate for deletion from F8X is the notion
of precission specification.  As the IEEE standard becomes
more widespread the need for this feature lessens.

Well, that's all for now. Sorry for the long post.
--
Jose Oglesby
oglesby@multiflow.com		Multiflow Computer
or oglesby@mfci.uucp		175 North Main St.
or ...!uunet!mfci!oglesby	Branford CT 06405       (203)-488-6090

ssd@sugar.uu.net (Scott Denham) (11/04/88)

In article <75769@sun.uucp>, khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) writes:
 ( Extensive discussion of "Why Revise Fortran" deleted)
> Because lack of a new standard breeds ever more complex vendor extensions.
> 
> Keith H. Bierman

To my way of seeing it, this point alone is enough to answer the whole 
question of "why" - if Fortran 77 was such a great tool for the applicastion 
writer, *WHY* are there so many vendor extentions?  Surely these folks don't
just wake up one morning and decide it would be nice to add say, a new 
loop construct (DO WHILE ?) to their compiler.  These extensions cost the
developers a signifigant amount of money.  This speaks for the users 
driving the market to provide these new features.  Clearly it is to the
benefit of all to standardize the way these extentions are handled so
that Fortran remains a language and not just a concept. 
 
 What's next.... "Turbo Fortran" ????
 
 Scott Denham 
  Western Atlas International
   Houston, TX

wgh@ubbpc.UUCP (William G. Hutchison) (11/04/88)

In article <2947@sugar.uu.net>, ssd@sugar.uu.net (Scott Denham) writes:
> In article <75769@sun.uucp>, khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) writes:
>  ( Extensive discussion of "Why Revise Fortran" deleted)
> > Because lack of a new standard breeds ever more complex vendor extensions.
> [ ... ] *WHY* are there so many vendor extentions?  Surely these folks don't
                                         ^^^^^^^^^^
                                         extensions
> just wake up one morning and decide it would be nice to add say, a new 
> loop construct (DO WHILE ?) to their compiler.

 Remember the Conspiracy Theory of vendor-customer relations [ :-) ]
Vendors do not implement non-standard extensions to their products
to BENEFIT customers, but to trap them into writing
non-portable code, thereby to keep them from converting their programs
to some other vendor's systems.

 If certain companies like Itty Bitty Monopoly did not have non-portable
constructs like that as a barrier to porting AWAY from their systems, how
could they justify such an outrageous high price for their systems?

-- 
Bill Hutchison, DP Consultant	rutgers!cbmvax!burdvax!ubbpc!wgh
Unisys UNIX Portation Center	"What one fool can do, another can!"
P.O. Box 500, M.S. B121		Ancient Simian Proverb, quoted by
Blue Bell, PA 19424		Sylvanus P. Thompson, in _Calculus Made Easy_

d25001@mic.UUCP (Carrington Dixon) (11/06/88)

In article <394@ubbpc.UUCP> wgh@ubbpc.UUCP (William G. Hutchison) writes:
>
> If certain companies like Itty Bitty Monopoly did not have non-portable
>constructs like that as a barrier to porting AWAY from their systems, how
>could they justify such an outrageous high price for their systems?
>

   If you were talking about their PL/I, I might agree with you.  In the
context of FORTRAN, I find the statement puzzling.  VS FORTRAN is fairly
lightly extended as compared to some others -- though there seem to be
more extensions with each release.  The VS FORTRAN manuals are _very_ good
about flagging all the extensions as such -- a refreshing change from
those of a lot of vendors.  There is even a compiler option to flag
(as warnings - I believe) all occurances of those features not sanctioned
by X3.9-1978.   
   Strange behavior for the product of a company that is trying to trap
the user into writing non-portable code.


Carrington Dixon
UUCP: { convex, killer }!mic!d25001

bill@hcx2.SSD.HARRIS.COM (11/09/88)

>  Remember the Conspiracy Theory of vendor-customer relations [ :-) ]
> Vendors do not implement non-standard extensions to their products
> to BENEFIT customers, but to trap them into writing
> non-portable code, thereby to keep them from converting their programs
> to some other vendor's systems.

This "Theory" may have been true of some vendor(s) at one time, but I
think it is safe to say it is total bunk now.  Competition for business
is very keen, but the user community (except for PCs) is not growing
that rapidly.  Today's buyers are yesterday's (and last decade's)
buyers; many new sales are either upgrades of old machines or for
expansion of computing facilities.  This means that if a vendor wants
new business, it has to be taken away from some other vendor.  In that
situation, the first thing the user asks is, "How difficult will it
be to port X's code to your machine?"  That is why many vendors have
been busy these last few years implementing other vendors' extensions:
we have to to survive.

Are vendors against standardization?  NO WAY!  The non-portability
issue works against us (at least now) far more often than it works to
our advantage.

sow@eru.mt.luth.se (Sven-Ove Westberg) (11/09/88)

In article <75320@sun.uucp> khb@sun.UUCP (Keith Bierman - Sun Tactical Engineering) writes:

|would seem to demonstrate this. Know of a single vendor of high
|performance computers who doesn't produce a fortran compiler FIRST ?

ALL that don't write the operating system and other utilities in fortran.

Sven-Ove Westberg, CAD, University of Lulea, S-951 87 Lulea, Sweden.
UUCP:    {uunet,mcvax}!enea!cad.luth.se!sow
ARPA:    sow%cad.luth.se@ucbvax.berkeley.edu  (only dumb ARPA mailers)
Internet: sow@cad.luth.se
Bitnet:  sow%cad.luth.se@sekth

khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) (11/10/88)

In article <1265@luth.luth.se> Sven-Ove Westberg <sow@cad.luth.se> writes:
>In article <75320@sun.uucp> khb@sun.UUCP (Keith Bierman - Sun Tactical Engineering) writes:
>
>|would seem to demonstrate this. Know of a single vendor of high
>|performance computers who doesn't produce a fortran compiler FIRST ?
>
>ALL that don't write the operating system and other utilities in fortran.
>

Many high performance computers have the utilities (and much of the
OS) running on other processors (viz CDC's PP's, Cydrome's IP's,
etc.). Even if something is written for in house use, the first
REALEASED product (with a real optimizer) is usually the FORTRAN compiler.



Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus

anw@nott-cs.UUCP (11/11/88)

In <391@ubbpc.UUCP>, wgh@ubbpc.UUCP (William G. Hutchison) writes, amongst
other things (in the Fortran group):

> Here is the historical paradigm I am looking at:
> Algol-60 was a breakthough, excellent language; widely used as a publication
> language and used in Europe as a practical language.  So a committee decided
> to "improve" Algol-60 to Algol-68.  You may recall the result: Algol-68 was
> "improved" to the point of being unusable.  Very few implementations ever were
> finished: hardly anybody ever managed to get through the language spec.

and follows up his own article in <392@ubbpc.UUCP> with:

> By the way, here is some more discussion on how Algol-60 was "improved":
> Algol-60 was "improved" to Algol-68 by a committee and the result was an
> embarrassing debacle.
> Algol-60 was really improved by Niklaus Wirth:
> Algol-60 -> Algol-W -> Pascal -> Modula -> Modula 2 -> ... -> ???
>
> Note that real improvements in language design seem to come from individuals
> or small groups, not large committees!

	And so are myths perpetuated.  Let's see:

"A committee decided" -- well, not exactly.  A committee was *charged with*
	developing Algol 60, in the light of the deficiencies in that
	language which had become apparent with use.  Sound familiar?
	As is well-known, the sub-committee which eventually spawned '68
	did not do so without causing a certain amount of controversy.
	Sound familiar?

"A68 was unusable" -- well, not exactly.  It was for some years the preferred
	language at a number of institutions, including this one.  From 1972
	to 1978, virtually all my own programs were written in A68, ranging
	from toys up to major projects of many thousand lines.  Only yesterday
	I heard of a new major program for the semantic analysis of programs
	written in Pascal, Ada, Fortran, etc., consisting of some 70000 lines
	of A68.  I *personally* taught over 1000 students in this Department
	Algol 68 as their first programming language;  my *personal* opinion
	(which you may take with as many grains of salt as you like) is that
	A68 is easier to teach, *and* to learn, *and* to use, than A60
	(which we used before 1972), and than Pascal (which we eventually
	were forced to switch to).  Purely incidentally, in all the tests
	known to me, A68 programs benchmarked faster than their Fortran
	equivalents;  advances in compiler technology may have changed that
	picture in the '80s.  A68 is *still* in wide use in many places.

"Very few implementations finished" -- well, not exactly.  The current (and
	last [:-(]) Algol Bulletin lists 7 *current* implementations "which
	you can actually obtain and use", running on at least 20 different
	machine architectures, including all the popular ones, under at least
	20 different operating systems, ditto;  except indeed that the 68S
	which runs on "my" current system (PDP 11/44, Unix V7) doesn't get
	a mention.  I guess those figures will be beaten by a few of the most
	popular languages, but not by many.

"[unreadable] language spec" -- well, not exactly.  The Revised Report was,
	for a while, routinely taught to our CS specialists, and they seemed
	to do OK in the consequent exams.  *I* learned A68 from the Reports;
	they certainly weren't light bed-time reading;  but no harder than
	the average graduate text.  For the non-specialists, the difficulty
	of the Report is irrelevant;  they learn from the more elementary
	texts.  Just as every serious user of C "has" to read K&R, while
	ordinary users learn C from easier books.

"embarrassing debacle" -- well, not exactly.  Some of the opponents of A68,
	including some of the proponents of Pascal and other rivals, would
	have you think so.  Do you, does anyone, have any *evidence*?
	How would you rate the relative importance and influence of A68
	compared with, say, Simula, APL, Forth, Snobol, to pick a few
	perfectly respectable languages at random?  Why should you (or
	anyone) think of A68, but not zillions of other languages, as an ED?

"A60 really improved by NW" -- well, perhaps.  It's debatable, but *I* would
	agree that Pascal, Modula2, etc are more useful languages than A60;
	but the implication is that they are better, too, than A68.  They
	just aren't.  They *really*, *really* aren't.  Better PR job, yes.

	The point of relevance to Fortran 88 is that you certainly shouldn't
think that design by individual is good, and by a committee is bad.  Either
can be good or bad.  But standardisation *certainly* is a committee job, as
C, Pascal and Fortran, to name but three, have found recently;  no one
person, no matter how talented, has the necessary width of expertise.

	[I've added "comp.lang.misc" to the groups for the A68 relevance;
	 please consider carefully where you direct any follow-ups. -- ANW]

-- 
Andy Walker, Maths Dept., Nott'm Univ., UK.
anw@maths.nott.ac.uk