There is no battlefield. Because there is no battle. There has never been a battle. Battle for what? Between who? Every time I see such discussions and arguments, I remind myself to be objective and ask myself why I am using Fortran. I am using it because it solves my research needs. It is just a (nice) tool in my toolbox along with other tools (Python, R, MATLAB, Mathematica, Julia …). It is neither my parents nor my family member or a special friend of mine to grow an endless love for or to fight for. If the benefits of using some other tool outweigh the use of Fortran at some point in my research, I would be silly to not abandon Fortran to use the other.
If others find other languages more comfortable to use and develop, let them use them. Maybe they are more productive in those environments than in Fortran. But based on my almost 2-decades-long experience, this is frequently incorrect and possibly only due to their lack of knowledge of modern Fortran or more importantly, misinformation about Fortran, sometimes intentionally shared by some people for various reasons like profit or gaining popularity at the cost of spreading falsehood. And this is the only case that makes me furious and gives me the feeling that I am in a battle, the battle against misinformation, not the battle between Fortran and some other X language.
I have vigorously defended each of the programming languages that I know, like Python, MATLAB, R, Julia, to the extent that I know, in various forums over the past years. Not because I have a special love for any one of them, but to fight misinformation, whether it is about Fortran, Python, Julia, or some hardly known language. As long as I am alive and teaching, I won’t leave the battlefield of misinformation.
Now, if Fortran programmers (like me) want to see more people using Fortran for scientific research, they need to train more people in Fortran and write/develop more in Fortran. I am sure if the glmnet
team had some members who knew modern Fortran and who were willing to rewrite the old code in modern Fortran, the team would have not opposed it (They might have had doubts, but I seriously doubt if they would have opposed rewriting it in modern Fortran). So the first programmer who volunteered to modernize the codebase happened to be a person who knows C++ and therefore, they rewrote everything in C++.
If you ask a random programmer in the street about what compiled language they know and use, what are the odds of them responding to you “C++” as opposed to “Fortran”? Almost 100%. Given this information, what does this rewriting of glmnet
from F77 to C++ tell us about Fortran? Nothing, except that modern Fortran developers, are indeed scarce. How can this be resolved? By training more people and younger programmers in Fortran.
Why did Intel make its compilers freely available to all students and teachers several years ago? Because they knew these people grow up and go to companies all across the world, asking their bosses to buy them Intel compilers on Intel architecture, because that is what know and that is what they are addicted to.
Why is the Julia discourse forum flooded with undergraduate and graduate students? Because, the for-profit company behind Julia knows the secret to winning the market and making profit is to train a massive generation of Julia programmers who will fight to their deaths for Julia and are ready to sacrifice the fundamental Principles of Science to remain addicted to their beloved programming language.
I very much like the style of the current spiritual leader (from my perspective) of the Fortran programming language, Steve Lionel, who always keeps objectivity in his discussion, focusing on what really matters to Fortran and what the goals are, and nothing else, and I believe all Fortran programmers should follow that spirit of objectivity in their discussions and work.