When it comes to Fortran language development, Civility is the last refuge of

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, ENUMs. 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:

  1. “Magic” numbers no more: use cases and formal requirements for enumeration types (https://j3-fortran.org/doc/year/19/19-229.txt)
  2. “Consider extended scope for enumeration types?” (https://j3-fortran.org/doc/year/19/19-239.txt)
  3. “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”.

Sadly, ISO and WG5 appear to be functioning like all bureucracies do. Their purpose is no longer their original mission but to perpetuate the bureucracy. They have become a perfect example of the old saying (paraphraseing) that “Speaking Truth to Power is a useless endeavor because Power has little use for Truth”. What I think @FortranFan and I are asking is not an abandonment of standards, but a divorce from ISO and WG5 whose outdated and obsolete rules appear to be one of the major impediments to more rapid advancement of Fortran. As I alluded in the other thread, the only way I see out of this is for the open source community to come together and take control of defining what Fortran is and what it could and should be.

4 Likes

@FortranFan I slightly modified your comment, let’s not name names. That way it is not personal, and we can discuss the processes here, and I think that can be productive.

My opinion is that the people at the committee are doing the best they can, given their skills and abilities and time. The major issues that you described above I think are real, but also unfixable by discussing here. The only way to change how the committee operates is to become the chair, and try to implement your vision. I tried to do exactly that a few years ago, here was my platform: Running for WG5 Convenor Announcement, I think it is as current now as it was back then. There is an INCITS committee (separate from the Fortran committee) that makes the selection. I wasn’t selected, so didn’t have a chance to try to implement my vision directly. However, I think we managed to implement a lot of it indirectly, and the committee leadership is not against it. I think the committee is a lot more open now than it used to be. It’s really easy to join, you can do it remotely now, etc.

I still believe we need to get compilers to the point that it is easy to prototype new features in them, and only then the committee should standardize already common usage. Thanks to not being selected, I had time to focus on a compiler, so I think it worked out great, and we got closer to this vision than we were 4 years ago, and were able to implement the prototype for generics, which was a monumental achievement, when you think about it.

I wish the committee and its leadership good luck, and pray they can make wise decisions regarding the stewardship of Fortran. And if I think some things should be done maybe a bit differently, I let them know (politely). I think most of the issues is just the process itself. Most of the technical issues sort themselves out when the wide community is consulted, according to my experience.

For example, it seems a lot of the community feedback that we collected from the github proposals repository has been incorporated into pre-approved features for F202Y. Not perfectly, and perhaps a little bit arbitrary, and perhaps behind closed doors, but overall it seems it did. Just another data point that the committee means well.

I think we just need a few more years, get the compilers to lead the efforts, and I think the committee’s processes might naturally fix themselves.

8 Likes

@FortranFan , it’s unfortunate that you had such a personally unpleasant experience trying to participate. It seems clear that you are as your namesake - a real fan an enthusiast.

My exposure to the language started in 2016 with a test facility that had all their test equipment control and data processing going through Fortran 77 code. Even new code added was all fixed format 77. In hindsight it was quite odd. After that I’ve continued working with Fortran in large government simulations. Not being pure physics simulations, they come from the late 70s-early 1980s when engineers writing programs meant Fortran I guess.

Some aspects are nice, but I think that today Fortran struggles in being too high level that asking for better access to or control of SIMD or various accelerators gets met with “well just use OpenMP/OpenACC/other-compiler-directives” and at the same time being a compiled language lacking basic enums, string types, or vectors development is slower than alternatives like Python.

I wish for Fortran to evolve as a language and find its footing as something worth keeping around for more than just legacy maintenance. At some point I think that will require a somewhat “come to Jesus” discussion about what exactly the language is meant to do, but first efforts like @certik to develop an active compiler (LFortran) willing and able to prototype features needs to reach mass usability and adoption.

3 Likes

And as answered in the other thread, such a schism while Fortran is still recovering would likely kill it for good. And again there are succesful languages around that are ruled under ISO, so ISO in itself is not the main problem.

2 Likes

Do we have any idea or consensus about what this means ?
This must be an unatainable goal as I expect there are many different versions of this.

My version is Fortran 95+ plus OpenMP, but I am sure most on this forum would have other ideas. ( my view is based on why I use fortran )

For me “Enumerated Types” is not the great leap forward, so shooting the committee because they didn’t adopt this approach looks to be overeach.

@certik,

Thank you, I appreciate your guidance greatly.

There is a larger issue in the context of Fortran language development that is / will be highly personal for those affected and that is why I keep bringing up that skit from the TV Show Seinfeld, “No Soup for You!”:

  • which is that the “soup”, a metaphor for whatever effort one strives toward Fortran in the context of the committee, depends on who is asking and how they are doing so.
  • Someone like that “Elaine” character can walk up to the counter and not follow some protocol (tap the fingers on the counter and take too long to order) and boom, “no soup for you”, though it is done tacitly in the context of the committee. There are a lot of discriminatory undertones and it is ultimately highly sinister.

Things like this happen everywhere, almost all organizations and bureaucracies, etc. tend to suffer from this. And it becomes bad when the work is not results-oriented e.g., no profits or scores or quantitative measures of any kind toward good effort and consequences for bad are at play. This is exactly the case with a Fortran committee.

Under the circumstances, one can either let the sleeping dogs lie (status quo) or at least call things out as they are directly so others (posterity) can at least benefit from awareness, from the light that dispels darkness. The original post intends the latter.

2 Likes

@FortranFan I think the issues you describe is how the committee works. As you say, I think every committee, organization and bureaucracy suffers from this, and the key is to hammer down these inefficiencies, keep it as open and fair as you can. It’s never perfect. The people who lead the committee mean well, as almost in every organization and bureaucracy. They don’t believe that the processes can be much improved, or do not know how.

Anyway, I personally do not believe it is fixable from this forum. One has to join the committee and try to improve the processes, run for the chair, etc. I have done what I can on this front, and now I am using my efforts in a more direct way by working on a compiler. I recommend you do the same — stop worrying about things you can’t change, and worry about things you can change. :slight_smile:

10 Likes