Why abandon Fortran for Linear Algebra?

I already did in 2015, I talked with one of the authors of the article about this effort. The reason is simple, Fortran is not popular and not doing well. Because if it was doing well, people would not be moving away from it to C++ (my understanding is that they are using C++, at least for some parts, not C). In fact, I also talked with another author of this article in 2007 and when I asked him why they don’t use C for Lapack, he said that they identified that Fortran is still the best choice after evaluating all the options (this suggests that they have changed their mind since then…).

Here is another high profile project moving away from Fortran to C++: NWChemEx: Computational Chemistry Code for the Exascale Era. Here is another: convert CTU hydro subroutines to C++ · Issue #525 · AMReX-Astro/Castro · GitHub.

We can’t fix the problem with Fortran if we are unable or unwilling to look at the reality straight in the eye and realize that people are moving away from Fortran to C++ one large production code after another.

If we can’t even identify what the problem is, we can’t fix it. I truly believe that.

There are some who disagree that “Fortran is not doing well”. They think it is bad “public relations”. I am not a public relations expert, so I don’t know. But even if we do not communicate this publicly, we internally have to understand that the fact that the three famous projects above moving away is just not good. There is no sugar coating of it. I love Fortran. So it hurts that we have lost the above 3 battles. But we have lost them unfortunately. Below is how we can win future battles.

I talk to people who move away from Fortran to C++ all the time. They have valid technical reasons. When we deny that there is any problem with Fortran, our users who want to use Fortran but are forced to move away are infuriated that we do not even admit that there is a problem. If you have doubts, please talk to our users who like Fortran but are forced to move towards C++. Ask them and please listen to their response.

Here is what I suggest instead as our approach how to communicate the situation: “Yes, Fortran is not doing well. Yes, people are moving away from it for good technical and social reasons. But we have identified what the problems are, we have a plan to fix it, and we are executing the plan. We need better compilers, more organized community, have a good story for GPUs, better Fortran libraries, package manager, we need more projects moving to Fortran, etc. We believe there is nothing fundamentally wrong with the Fortran language itself, we just need to rejuvenate it and the tooling around it. We have made a huge progress in just the past year. The atmosphere around Fortran is starting to change. But we are not done yet, we keep pushing as much as we can. If you can, please postpone your decision to abandon Fortran by about 3 years. We believe we can fix many (if not all) of these problems by then.”

With this approach, I believe most people actually become fans and are rooting for us. Instead of thinking “those Fortran folks don’t understand our problems”, they will think “those Fortran folks really identified our problems and are fixing it, very well!”. And many may even join our efforts.

14 Likes