To all Readers and especially those interested in modern Fortran advancing toward a vision of lingua franca of scientific and technical coding:
In the context of Fortran, may you please elaborate and comment on what is up with all these demands of civility by those on the Fortran committee who post here when, in reality, it is all so one-sided? On that aspect, try an online search on civility and “last refuge” and you will find some gems on how civility is often weaponized in society and by whom!
From late 2018 until 2023, I tried to serve as an “alternate” member on “J3”, the “contractor” to WG5, the ISO working group on Fortran. I attended several meetings in Las Vegas, US incurring thousands of dollars of expenses out of my own pocket. This is in addition to using up vacation days (holidays) and time away from familty to go to Vegas (you can imagine how it will be received).
My only qualification and motivation to join as an alternate member and to travel to meetings was as a mere but unabashed Fortran “enthusiast”. An enthusiast who, out of sheer coincidence of some industrial work experience in scientific and technical computing, had noticed both the great potential of modern Fortran and value of its intrinsic qualities including syntax and how Fortran can allow domain experts to retain focus on their domain details and not have to become computer science experts for security and speed in computations.
Alas, that was accompanied by a rapid decline when it came to adoption or retention of Fortran because the language semantics, especially post Fortran 2008, and its ecosystem BOTH had gaping holes when it came to industrial practice toward applications of increasing complexity (e.g., multiphysics models and architectures) and large and diverse teams targeting different stages of solution development.
@certik and LFortran
contributors and everyone here at Fortran-lang who develop great support infrastructure for Fortranners globally are doing an out-of-this-world job to address the ecosystem, but what about the base language semantics and facilities and its gaps?
My experience on the committee was anything but “civil” on what mattered most to me, Fortran. Socially superficial cordialities (that too minimal) aside, any engagement technical and Fortran-related went from condescending to dismissive to anger and rage toward me real fast, just like in that funny skit that where you can laugh at the “no soup for you” dismissal of the character (“Elaine”) who doesn’t follow the “protocol”.
I can provide a simple high-level example, ENUM
s. Through grad school and my initial days of computing in industry, where real dollars and cents mattered greatly, one of the things that bothered me a lot with FORTRAN
code and early Fortran 90/95 codes was widespread prevalence of “magic numbers” and the mistakes - nah, outright errors and blunders - and the inefficiencies caused by them. Very early on, I had noticed languages such as Java and its copycat, the .NET languages by Microsoft, had started to build on work by the great Niklaus Wirth (Pascal language) and others on “Enumerated type” to help mitigate the problems in codes. This is even before Stroustrup, Sutter, and MIller and co. (c.f. Miller et al., 2007, Strongly Typed Enums (revision 3)) who started noticing the problem in C and C++ and began language extension(s) in C++, starting C++11.
Given my strong impression of the potential and value of modern Fortran in scientific and technical computing and having noticed the rudimentary introduction in Fortran 2003 and efforts by @snyder, I was convinced Fortran too could benefit from an enhanced facility and tried to use the opportunity to submit papers:
- “Magic” numbers no more: use cases and formal requirements for enumeration types (https://j3-fortran.org/doc/year/19/19-229.txt)
- “Consider extended scope for enumeration types?” (https://j3-fortran.org/doc/year/19/19-239.txt)
- “int-literal-constant is also boz-literal-constant” (https://j3-fortran.org/doc/year/19/19-132.txt)
The response to these papers was not polite at all; if anything, it was often rude and nasty at so many levels. The slightest pushback or counterargument from me on any technical aspect would immediately result in responses that were impolite and uncivil, I will spare the personal details. But the worst offenders when it came to wielding nontechnical arguments to shut off all debate on my points also included committee people on the other thread who now demand “politeness” from others.
Because if all else failed, meaning the other person is persistent, you see there is always the retort with “we are not here to turn Fortran into C++ or xxx language.” First, this is outright insulting and offensive, especially considering the tremendous amount of effort and resources I, or any other enthusiast, would extend toward developing ideas and solutions and semantics specifically for Fortran and for its use by Fortranners in actual practice. That some of these may have similarities with C++ or xxx language was merely coincidental.
But this “not here to turn Fortran into C++ or xxx language” is also a “dog whistle”, the other voting members are immediately influenced in the subtlest of manner to vote “no” to a proposal or a paper. No one can quite beat the master at ad hominem and the dynamics, the current Editor of the standard and who wields enormous influence on all decisions. The saga described by Brian Meek lives on - vendors vs the users.
I will elaborate in a separate thread on a couple of specific aspects around ENUMs and the “comedy of errors” that have ensued due to what got voted in or not and when with the Fortran 2023 standard. These are simple illustrations of a larger issue:
- the work output of the committee remains “too little, too late” on so many aspects that it becomes extremely difficult or painful to continue to employ Fortran efficiently in many settings (large teams, complex physics) toward scientific and technical computing now, year 2024. But 20+ years is about the time it takes to safely and efficiently use new facilities post a standard revision publication using Fortran processors (compilers) in actual code. So if language development is not done sufficiently or accurately now, what will be the state down the road, say year 2044 when the computer science and all the other paradigms and platforms have advanced much further and far more rapidly?
- if the committee cannot and will not get right, almost as a visceral response to users, a simple facility like an enumerated type, that too in spite of so much effort to help the work which is rejected outright. And it cannot offer something that is usable in actual code by practitioners, why are the very people trying to hide behind “civility” now?
Now, what is on the anvil with Generics in Fortran is a sheer nightmare, hence my other thread.
But the real issue is the attitude and the culture with vendor-driven committee for Fortran that really appears to want to do the “least” and only work with those who “order soup the right way”. The modus operandi then naturally will be, “no good advice shall be heeded.”
Under the circumstances - readers - please try to explain how is civility of any relevance to Fortran other than as a refuge for sheer hypocrisy? Regardless, calling a spade a spade is never “throwing stones”.