[J3] [EXTERNAL] Re: [BULK] Re: Niklaus Wirth

Clune, Thomas L. (GSFC-6101) thomas.l.clune at nasa.gov
Mon Jan 8 17:16:37 UTC 2024


OK – perhaps I’ve overstated my position with regard to gfortran.

I want diversity in compilers, but these days it is often at the expense of avoiding known compiler bugs/limitiations.  In my experience, getting fixes for gfortran has become rather difficult, and I instead invest my time in workarounds.  _If_ flang proves to be better at providing working code in my environment, then I would swap flang for gfortran without many tears.   It would be a net-zero difference in diversity for me and hopefully a net plus in productivity.       I know that I am not alone on this position, but will not name names.

As others have stated, much of the original motivation for why many apps insisted on porting to gfortran has evaporated.  Until recently it was the only free compiler and thus the only one that some external users could/would use.   But now with free intel and free nvfortran, that argument no longer applies.

Cheers,


  *   Tom

From: Jeff Larkin <jlarkin at nvidia.com>
Date: Monday, January 8, 2024 at 12:02 PM
To: j3 <j3 at mailman.j3-fortran.org>
Cc: "Clune, Thomas L. (GSFC-6101)" <thomas.l.clune at nasa.gov>
Subject: RE: [J3] [EXTERNAL] Re: [BULK] Re: Niklaus Wirth

CAUTION: This email originated from outside of NASA.  Please take care when clicking links or opening attachments.  Use the "Report Message" button to report suspicious messages to the NASA SOC.



1.       You might want to consider gfortran as end-of-life.  Many of us are putting our eggs into the flang basket.  Still a good retirement activity, but with less historical clutter.

This makes me sad. I hope it does not turn out to be true. I certainly want flang to be a success, but not at the expense of losing gfortran from the ecosystem.

-JL

From: J3 <j3-bounces at mailman.j3-fortran.org> On Behalf Of Clune, Thomas L. (GSFC-6101) via J3
Sent: Monday, January 8, 2024 11:03 AM
To: General J3 interest list <j3 at mailman.j3-fortran.org>
Cc: Clune, Thomas L. (GSFC-6101) <thomas.l.clune at nasa.gov>
Subject: Re: [J3] [EXTERNAL] Re: [BULK] Re: Niklaus Wirth

Hi Katherine,

A couple of comment that might be of interest:


1.       You might want to consider gfortran as end-of-life.  Many of us are putting our eggs into the flang basket.  Still a good retirement activity, but with less historical clutter.

2.       We’ve had no issues with CMake + ifx.    The LLVM version identifies under a different name, so no issues there.  It just looks like a port to a new compiler.  We have separate files to specify the flags for old and new variants.  (ifx itself still has some serious issues with common debugging flags though.)

Cheers,


-          Tom

From: J3 <j3-bounces at mailman.j3-fortran.org<mailto:j3-bounces at mailman.j3-fortran.org>> on behalf of j3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Reply-To: j3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Date: Monday, January 8, 2024 at 9:50 AM
To: j3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Cc: "Holcomb, Katherine A (kah3f)" <kah3f at virginia.edu<mailto:kah3f at virginia.edu>>
Subject: [EXTERNAL] Re: [J3] [BULK] Re: Niklaus Wirth

CAUTION: This email originated from outside of NASA.  Please take care when clicking links or opening attachments.  Use the "Report Message" button to report suspicious messages to the NASA SOC.

The timeframe of my anecdote was sometime in the mid to late 1990s.  I had to google g95, which as far as I know was the first attempt to implement a free Fortran 90 compiler (g77 existed then and had for quite a while, but of course that was “old Fortran”).  Wikipedia said it was started in 2000, which is consistent with my dim recollections.  I contributed a few lines to it and provided a platform for its development for a while on the small cluster I was running at the time. It was forked into gcc as gfortran in 2003;  I’m still on the gfortran mailing list and hope I might contribute to it again after I retire.

It’s not just OS-like code that benefits from dynamic memory allocation.  I’m sure there are a lot of examples, but since I have mostly focused on distributed-memory parallel computing in my career, it’s almost a requirement for that—having to hardcode the number of processes, and change it for different scales *and* remember to recompile, was always a pain.

I’m a big fan of Intel’s oneAPI suite though my initial testing suggested that the LLVM version didn’t seem to perform quite as well as the older one, at least in some cases (I mostly test with MPI).  I will need to do some more investigating of that.  Just switching the names is somewhat traumatic for our users since most don’t really know what they’re doing when they compile, so we are keeping one release back as the default on our cluster.  CMake probably also doesn’t yet know about the new names, and it’s not always easy to persuade it to use a different compiler.

NVIDIA also distributes the suite formerly known as PGI for free.  I have all three compilers on my Linux workstation and we also provide all three on our cluster.  NVIDIA, of course, emphasizes their compilers’ compatibility with their hardware, but it’s always been a pretty good general-purpose compiler suite.

Katherine Holcomb
UVA Research Computing  https://www.rc.virginia.edu<https://www.rc.virginia.edu/>
kah3f at virginia.edu<mailto:kah3f at virginia.edu>    434-982-5948
From: Long, Bill F <william.long at hpe.com<mailto:william.long at hpe.com>>
Sent: Monday, January 8, 2024 9:20 AM
To: General J3 interest list <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Cc: Holcomb, Katherine A (kah3f) <kah3f at virginia.edu<mailto:kah3f at virginia.edu>>
Subject: Re: [J3] [BULK] Re: Niklaus Wirth

Thanks for your comments, Katherine.   Just to note, the GCC collection does include a "Free" Fortran compiler, gfortran. The Intel Fortran compiler can also be downloaded for "free" and used without a license. (This is a relatively recent change, but still a source of a high-quality Fortran compiler for anyone to use.)  And also, a historical note: the so-called "Cray pointers" were actually from Lawrence Radiation Lab where some users wanted to be able to manipulate memory addresses for OS-like code. This was before the invention of C that was specifically designed for such purposes. So, they were actually LRLtran Pointers, but the Cray compiler was the first commercial compiler to support them, so the name "Cray Pointers" stuck.

Cheers,
Bill

________________________________
From: J3 <j3-bounces at mailman.j3-fortran.org<mailto:j3-bounces at mailman.j3-fortran.org>> on behalf of Holcomb, Katherine A (kah3f) via J3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Sent: Monday, January 8, 2024 7:54 AM
To: General J3 interest list <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Cc: Holcomb, Katherine A (kah3f) <kah3f at virginia.edu<mailto:kah3f at virginia.edu>>
Subject: Re: [J3] [EXTERNAL] [BULK] Re: Niklaus Wirth


I’m just on this list as an observer, but I’ll toss out that my late husband had some opinions on what happened to Fortran, at least within his community (computational astrophysics).  One was the delayed addition of dynamic memory allocation, and when it finally appeared it was mostly through the rather clunky POINTER (which does still have uses) when ALLOCATABLE handled most of what that type of programmer wanted.  There had been kludges like “Cray/DEC pointers” but they weren’t standard. Another, at least in academia, was the lack of a free compiler for Fortran 90 for quite a while.  He was involved with colleagues in developing a code that is now pretty widely used in his subfield; it started in Fortran but a colleague switched to C because gcc was free and he could develop on his laptop.  I saw that early code and it was a good example of the old joke “real programmers can write Fortran in any language” since it had statements like #define REAL float; (so they could switch to double) and it had one gigantic header that basically functioned like a COMMON.  It has since been updated to C++ which I hope is better than the typical scientist-written C++.



I think pressure from the national labs (in the US) has also been a significant factor, since they hire CS graduates to do the programming “correctly.”  Those programmers just want to use C++ because reasons.  We have quite a few computational chemists at my university and we usually build their codes for them and most are still in Fortran, but I’m aware of some that are starting to migrate.



Somebody mentioned Python and I’m rather surprised that Python programmers would particularly dislike Fortran, aside from the fact that in my experience students used to interpreted languages hate all compiled languages.  They have a lot in common, e.g. Python: No semicolons or curly braces. Uses the words “and”, “or” and “not” (but no periods).  Oriented around modules at least as much as classes (and Python does not distinguish a class from a struct).  If one includes NumPy, which pretty much all numerically-oriented Python does, NumPy arrays and intrinsics are very similar to Fortran arrays.  The biggest difference is that Python is 0-based and row-major oriented.



Katherine Holcomb

UVA Research Computing  https://www.rc.virginia.edu<https://www.rc.virginia.edu/>

kah3f at virginia.edu<mailto:kah3f at virginia.edu>    434-982-5948

From: J3 <j3-bounces at mailman.j3-fortran.org<mailto:j3-bounces at mailman.j3-fortran.org>> On Behalf Of Clune, Thomas L. (GSFC-6101) via J3
Sent: Monday, January 8, 2024 8:03 AM
To: General J3 interest list <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>; 'David Muxworthy' <d.muxworthy at bcs.org.uk<mailto:d.muxworthy at bcs.org.uk>>
Cc: Clune, Thomas L. (GSFC-6101) <thomas.l.clune at nasa.gov<mailto:thomas.l.clune at nasa.gov>>
Subject: Re: [J3] [EXTERNAL] [BULK] Re: Niklaus Wirth



From my (admittedly rather limited) experience, anti-Fortran prejudice was quite pronounced in the mid-eighties when I was attending college.     Possibly even justified during that era.    My sense is that computer science profs never really adapted after that.  They all “knew” what Fortran (FORTRAN) was/is, and there were no real forces to revise such opinions.  And they then used FORTRAN as the punching bag when teaching subsequent generations.  Even at its best, Fortran was not really ever a language that would appeal in that profession where shiny/different has a higher priority.



Even in science departments there is pronounced ignorance about modern Fortran.  My daughter just completed her PhD in computational chemistry at UC Berkeley.    Profs there were dismissive when she pointed out that Fortran had OO and such.   She was simply wrong.   (Could be some misogyny mixing in with this of course.)



Cheers,



·         Tom



From: J3 <j3-bounces at mailman.j3-fortran.org<mailto:j3-bounces at mailman.j3-fortran.org>> on behalf of j3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Reply-To: j3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Date: Saturday, January 6, 2024 at 9:45 AM
To: 'David Muxworthy' <d.muxworthy at bcs.org.uk<mailto:d.muxworthy at bcs.org.uk>>
Cc: "ian.chivers at chiversandbryan.co.uk<mailto:ian.chivers at chiversandbryan.co.uk>" <ian.chivers at chiversandbryan.co.uk<mailto:ian.chivers at chiversandbryan.co.uk>>, j3 <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>
Subject: [EXTERNAL] [BULK] Re: [J3] Niklaus Wirth



CAUTION: This email originated from outside of NASA.  Please take care when clicking links or opening attachments.  Use the "Report Message" button to report suspicious messages to the NASA SOC.









Hi David



I'm surprised given the dates

you mention of the late 90's

of the sarcastic comments.



The 90 and 95 standards had made

significant improvements to Fortran.



I have quite a lot of respect for Wirth

for the Pascal, Modula 2 and Oberon languages.



I also thought that the work they (ETH)

did with the Lilith was pretty good.



https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLilith_%2528computer%2529&data=05%7C02%7Cthomas.l.clune%40nasa.gov%7C420a667574994227bf6408dc0ec61249%7C7005d45845be48ae8140d43da96dd17b%7C0%7C0%7C638401491093668539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=m6oclPw6mgHh5ftRQd45UefR3ecNsu6HxNafRPRwKKo%3D&reserved=0<https://en.wikipedia.org/wiki/Lilith_(computer)>



Sadly when teaching Fortran there is

quite a lot of ignorance of modern Fortran.



On some of the recent courses I've given

people with a Python background tend to be

quite critical, especially

when this is the only language they know.



Ian Chivers



-----Original Message-----

From: David Muxworthy <d.t.muxworthy at btinternet.com<mailto:d.t.muxworthy at btinternet.com>>

Sent: Saturday, January 6, 2024 11:39 AM

To: Ian Chivers <ian.chivers at chiversandbryan.co.uk<mailto:ian.chivers at chiversandbryan.co.uk>>

Cc: General J3 interest list <j3 at mailman.j3-fortran.org<mailto:j3 at mailman.j3-fortran.org>>

Subject: Re: [J3] Niklaus Wirth



The first question is for David what was the date Of the talk?



1998 or 1999 so far as I remember.










-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20240108/5a3c2da4/attachment-0001.htm>


More information about the J3 mailing list