Sorry re history of Fortran, good post on LinkedIn

Jan 31, 2026 Last reply: 5 months ago 8 Replies

In sci.electronics.design John Levine snipped-for-privacy@taugh.com wrote: |-------------------------------------------------------------------------| |"According to Nioclás Pól Caileán de Ghloucester snipped-for-privacy@Taf.com: | |>I want to quote an old comp.compilers post by its moderator about how | |>FORTRAN programmers are not bothered to consult the FORTRAN standard | |>(circa FORTRAN-66) so they insist that they know FORTRAN when they do | |>not, so a new FORTRAN standard (circa FORTRAN-77) made a | |>backwards-incompatible change to accept this wrong belief of what | |>FORTRAN really is. Alas searching for it takes too long (the 3 search | |>options offered by | | | |I'm pretty sure I didn't say that. Possibly someone else did but I don't| |recall that either." | |-------------------------------------------------------------------------|



Dear oh dear. Sorry. Whatever comp.compilers post I am thinking of, I read it a long time ago and I do not remember it intimately, and it is about versions of FORTRAN from before I became born, or . . . I am imagining it.



|-------------------------------------------------------------------------| |"In fact F77 tried hard to stay compatible with F66 and | |the few incompatibilities were well documented and had good rationales." | |-------------------------------------------------------------------------|



If I would not be imagining this incident, then it might be about an even older version of FORTRAN.



What happened to the comp.compilers mbox archives? Happy New Year! (S.

formatting link
fuer Kontaktdaten!)


According to Nioclás Pól Caileán de Ghloucester snipped-for-privacy@Taf.com:

Fortran 66 was the first Fortran standard and it largely codified what the existing IBM FORTRAN compilers did so, nope.

They're still on my server but since nobody had looked at them for years, I turned off FTP.

On 2026-01-31 21:43, John Levine wrote (in part):

I downloaded them eons ago. (I still have the paper copy that you sold quite ago.)

Dr. John R Levine, Ph.D wrote in 2004: |-------------------------------------------------------------------| |"[. . .] I think it's now the | |oldest active newsgroup with the original moderator, which shows if| |nothing else an impressive lack of imagination on your moderator's | |part. [. . .] " | |-------------------------------------------------------------------|

Hmm :)

I fail to find even arguable evidence for what I believed about an imagined comp.comiplers post which I imagined to be by John R Levine about arrogant FORTRAN users who incited an imagined change in a new FORTRAN standard because they refuse to check what is in an old FORTRAN standard.

If it is my imagnation, then it could be about a default or initial value of an index in a loop or for an array.

On Sun, 1 Feb 2026, OrangeFish wrote: |-----------------------------------------------------------------------------| |"On 2026-01-31 21:43, John Levine wrote (in part): | |> > What happened to the comp.compilers mbox archives? Happy New Year! | |> > (S.

formatting link
fuer Kontaktdaten!) | |> | |> They're still on my server but since nobody had looked at them for years, | |> I turned off FTP. | | | |I downloaded them eons ago. (I still have the paper copy that you sold quite| |ago.)" | |-----------------------------------------------------------------------------|

formatting link
has many non-existent articles for a month - e.g. December 2004 and March

2018 - are all these non-existent articles before a month's last existent article really monthly FAQ articles?

Mboxes are convenient for threads.

Downloading compressed mboxes of comp.compilers via FTP would take upto a few minutes. Instead, downloading HTML versions via HTTPS took more than 1 day.

I used wget

--input-file=URLs_for_comp.compilers_including_inexistent_articles.txt

--output-file=Wget_logfile_for_comp.compilers_from_its_start_to_the_end_of_the_Year_2025.txt & and

formatting link
and
formatting link

Wget said: "--2026-02-01 16:22:36--

formatting link
compilers.iecc.com (compilers.iecc.com)... 192.55.226.148,

2001:470:1f07:1126:7065:7373:696d:616c Connecting to compilers.iecc.com (compilers.iecc.com)|192.55.226.148|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘86-01-001’ 0K .. 83.3M=0s

2026-02-01 16:22:37 (83.3 MB/s) - ‘86-01-001’ saved [2968] [. . .]

2026-02-03 07:21:58 (6.42 MB/s) - ‘25-12-999’ saved [439]

FINISHED --2026-02-03 07:21:58-- Total wall clock time: 1d 14h 59m 22s Downloaded: 479520 files, 374M in 54s (6.92 MB/s)" but used six times as much space on the XFS filesystem to which I downlaoded these files as du --human-readable said: "2.2G ." for "du --block-size=1

2307362816 .".

(wc --bytes said 382891882 i.e. 365.2M.)

du -h said

489M on this XFS filesystem immediately after I ran delete_most_non-existent_articles_before_the_Year_2026.BASh

Cf.

formatting link

"Since 1986 he has been the moderator of the comp.compilers usenet group, a technical interest group on compilers (programs that translate among different computer languages), with an estimated readership of over

100,000." says
formatting link

How do you estimate a news group's readership?

When failing to find evidence like an imagined comp.compilers article, I found e.g. these following real articles . . .

|-------------------------------------------------------------------------------| |"Our esteemed moderator commented: | |> [Fortran has backward compatibility issues going back to the 1950s. | | | | | |Sure enough. | | | | | |> You've always been able to pass any array element as an argument by | |> address, and it's up to your code to get the array shapes | |> right. The only descriptors are the lengths of character variables introduced| |> in F77. -John] | | | | | |Hmmm....for the current version of Fortran, that isn't true. Assumed shape | |array - introduced some fifteen years ago in F90 - need to transport shape | |information that is equivalent to a "descriptor". So do allocatable arrays and | |array pointers. | | | | | |Jan | |[Oh, right. It's been a while. -John]" | |-------------------------------------------------------------------------------|

|-----------------------------------------------------------------------| |"[Well, there was the Fortran FREQUENCY statement which they dropped | |when they realized that programmers have no idea what the probabilities| |are. -John]" | |-----------------------------------------------------------------------|

|-------------------------------------------------------------------------------| |"And then our moderator wrote: | | | | | |> [You wouldn't like Fortran, in which the compiler is allowed to put the | |> test at the bottom of a DO loop and always run the loop at least once. -John]| | | | | |Well, they did change that in 1977. | | | | | |As far as I know, the original rules were related to the 704 index | |registers, kept in later machines. Also, the S/360 BXLE (branch on | |index less than or equal) is very convenient for a test at the end DO | |loop. | | | | | |Even more, the Fortran rules through Fortran 66 didn't allow negative | |or zero values for the start, end, or increment value, and, at least, | |the IBM OS/360 compilers enforced that in the case of constants. | | | | | |Then they might have overdone it in Fortran 77. I sort of like the | |option to have UPTO and DOWNTO, specifying the loop direction. | |Fortran 77 allows for either either positive or negative variable | |increment, requiring more complicated logic at run time. Fortran 77 | |also pretty much requires the loop increment and limit to be evaluated | |at loop entry and used for the duration of the loop. | | | | | |Also, Fortran 77 allows for REAL (floating point) DO loops, | |a feature removed in Fortran 90 and later. | | | | | |-- glen" | |-------------------------------------------------------------------------------|

|----------------------------------------------------------------------| |"[Back around 1960 I believe there were a lot of Fortran variants with| |the keywords in local languages, but they all disappeared for the | |obvious reason that it wrecked portability. -John]" | |----------------------------------------------------------------------|

|-------------------------------------------------------------------------| |"On Dec 30, 7:46 am, snipped-for-privacy@is-not-my.name wrote: | | | | | |> From a little time searching the web I found a thread here: | |> | |>

formatting link
| |> | |> reading through it suggests a modern compliant compiler should compile | |> compliant code from the old days. One of the great things about old | |> languages, especially old languages IBM supported, is almost everything| |> that used to work 50 years ago still does today. | | | | | |This is almost true. Fortran 95 has short list of deleted features | |(e.g., REAL do-loop index). Most (all?) modern compilers still | |implement the deleted feature. More importantly there are two | |F66 features that most (all?) modern compilers do not implement. | |I cannot remember one and would need to pull out my copy | |of F66 to find it. The other feature is the extended do loop. | |From F66: | | | | | | 7.1.2.8.2 A DO is said to have an EXTENDED RANGE if both | | of the following conditions apply: | | | | | | (1) There exists a GO TO statement or arithmetic IF | | statement within the range of the innermost DO of a | | completely nested nest that can cause control to pass | | out that nest. | | | | | | (2) There exists a GO TO statement of arithmetic IF | | statement not within the nest that, in the collection | | of all possible sequences of execution in the particular | | program unit, could be executed after a statement of the | | type described in (1), and the execution of which could | | cause control to return into the range of the innermost | | DO of the completely nested nest. | | | | | |This looks like an early attempt at exception handling." | |-------------------------------------------------------------------------|

|-----------------------------------------------------------------------| |"It seems te me that many languages could have been designed better | |in the first place, except that the rules for good design | |weren't yet known. But even more, trying to extend an existing | |language, and maintain compatibility with the previous one, | |tends to be ugly. | | | | | |As I understand it, one of the original goals of PL/I was to | |be Fortran-like, but not back compatible. (In addition to | |bringing in features from ALGOL and COBOL.) | | | | | |From "History of Programming Languages," edited by R. Wexelblat: | | | | | | "FORTRAN VI is not intended to be compatible with any known | | FORTRAN IV. It includes the functional capabilities of | | FORTRAN IV as well as those capabilities normally associated | | with "commmercial" and "algorithmic" languages. In order to | | embrace these capabilities in a usable and practical language, | | it has been found virtually impossible, and certainly | | undesirable, to retain FORTRAN IV as a compatible subset." | | | | | |and further: | | | | | | "Compatibility with FORTRAN IV would preclude having a simple | | elegant streamlined language because FORTRAN IV itself is heavily| | burdened with curious restrictions and complexities that have | | accumulated during its long history of additions that maintained | | approximate compatibility with early versions." | | | | | |(Note that the long history of additions was only about 10 years, | |as that was in 1963.) In the following 45 years (through Fortran 2008) | |many PL/I features have been added to Fortran, many restrictions | |removed, but many of the "curious restrictions" are still there." | |-----------------------------------------------------------------------|

Here's the index for December 2004. Looks OK to me.

formatting link

The mboxes still exist. If someone asked nicely it would not be hard to put them on the web server.

R's, John

PS:

based on the number if news servers several decades ago when I wrote that

In sci.electronics.design John Levine snipped-for-privacy@taugh.com wrote: |---------------------------------------------------------------------| |"Here's the index for December 2004. Looks OK to me. | | | |

formatting link
| |" | |---------------------------------------------------------------------|

Dear Dr. Levine:

It may be OK, but December-2004 articles with the sequence numbers that are

001 002 003 040 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 do not exist but e.g.
formatting link
does exist. I feel that these numbers hint at very many suspiciously inexistent articles. I confess that this does not prove anything.

|----------------------------------------------------------------------| |"The mboxes still exist. If someone asked nicely it would not be hard| |to put them on the web server." | |----------------------------------------------------------------------|

IF Doctor_John_R_Levine.(cp ftp/pub/articles/??-??.gz public_html) THEN constant The_Best_Moderator := Doctor_John_R_Levine.self(); END IF;

(S.

formatting link
fuer Kontaktdaten!)

Those were monthly FAQs.

That was a cross-posted conference CFP

Those were a bunch of cancel messages for cross-posted spam.

This was two decades ago. The real messages are in the archive. If you don't find that it meets your needs, feel free not to use it.

In sci.electronics.design John Levine snipped-for-privacy@taugh.com wrote: |---------------------------------------| |"The real messages are in the archive."| |---------------------------------------| Good. (S.

formatting link
fuer Kontaktdaten!)

You are aware that NNTP (the Usenet protocol) allows:

- messages not yet posted to be canceled - posted messages to be explicitly deleted - messages to contain an expiration date header (after which the server may auto-delete them)

Deleted messages leave holes in the sequence.

Not all NNTP servers honor all (or even any) these operations - but some do, and although 2004 is relatively recent, you should note that in the past servers tended to be more permissive because many fewer people were deliberately abusing them attempting to cause problems.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required