Why doesn’t FORTRAN finally die for good?
In 1957 the first FORTRAN compiler was released by IBM after 4 years of conceptualizing an easier way to enter an equation into computers than a hand-coded language like assembly.
Before FORTRAN, earlier languages consisted of a sequence of numerical codes, each representing a basic operation that can be done on a computer register, such as “fetch” a number from memory to a register or “Add” to add two numbers, these languages were time-consuming and error-prone.
The IBM scientific programmer John Backus found it possible to write a series of calculations expressed in mathematical notation, and then use a translator (what we call now a compiler) from this mathematical notation to the numeric codes that the earlier language used to interact with the hardware. This proposal in 1953 resulted in the Formula Translating System Language (FORTRAN).
65 years fast forward now (at the time of writing the article) a lot of other programming languages appeared and took a couple of years then disappeared like COBOL, Objective C, and many others. Nevertheless, FORTRAN is still being used, probably not as popular as it was in the past but in some communities, it has a high rank among the most used languages, one of these communities is the scientific community, and here are the reasons.
Why scientific community still use FORTRAN?
As FORTRAN was originally designed specifically for scientific computing, and to be mainly used for array operations whether on the whole array or a slice, among the good reasons for its survival is the easy-to-use array syntax which guaranteed long code longevity.
Arrays are first-class citizens in FORTRAN, A higher-level abstraction for arrays compared to C, which makes it easier for scientists to describe their model domain in multi-dimensional arrays in FORTRAN than in any other language.
Straightforward restriction-based language
Too many restrictions is another feature of FORTRAN, these restrictions imposed on the programmers gave the compiler the best possible code to optimize, while in other languages, like C the programmer has a great deal of freedom that would lead in most cases to slow the code.
The legacy code & Backward compatibility
As with most scientific algorithms, differential equations and their solvers do not get outdated, therefore the applicability of using the same code that was developed decades ago without the need to go through the hustle of fixing the incompatible old syntax with the new versions of the compiler, and without degradation in the performance was a great deal in FORTRAN back compatibility. FORTRAN's strict backward compatibility policy helped all the legacy code from being deprecated.
Besides the backward compatibility, Most of the research centres and scientific organizations have a FORTRAN legacy code as it was one of the only options available when they started developing their base code, and over time it became easier and more efficient to keep developing in the same language other than migrating to a completely modern language, especially that there is no computational gain, as many scientists do not come from a computer science background the sheer effort and the amount of time that it will take them to master a new language to the same degree that they can write very complex algorithms make it a hard decision to migrate the code to a different language. Rewriting a codebase with over 10000 commits of FORTRAN code (like Climate models) is like rebuilding an entire neighborhood.
NVIDIA and GPU computing support for FORTRAN?
Many codes have the ability to be distributed over many compute cores, and for that FORTRAN offers another layer of improvement, Message Passing Interface (MPI), MPI makes it possible to distribute your model domain on many CPUs, which helps to accelerate the computation and improve performance. Not all languages can use MPI with the same performance that FORTRAN does.
CUDA FORTRAN is another parallel programming feature that started with FORTRAN 2008, developed by NVIDIA. CUDA FORTRAN is a low-level explicit programming model that gives the programmer direct access and control river all the GPU features including CUDA-managed data. CUDA enables developers to speed up compute-intensive applications by distributing the parallelizable part of their computation on different GPU chips
with all of these computation-enhancing features that are being added to FORTRAN, I can say FORTRAN will continue at the top list of best programming languages for scientists