[Joe Krahn] is a contract employee at NIEHS (http://www.niehs.nih.gov) working in X-ray crystallography.
I used to think that Fortran was lame, and we should switch to C++ with matrix classes, as many people have. I now realize that C++ programming gets very complex, and the numerous matrix libraries make math source codes incompatible. In addition, the people maintaining C/C++ have a low priority for array math and things like C99 complex numbers.
My opinion now is that we should make Fortran not suck. F2003 and F2008 features have fixed the most glaring problems, such as portable C interfacing and allocatable-length strings.
There are still many stupid design problems in Fortran, partly owing to conflicting views among “traditionalists” and “revisionists” that have caused political interference with solving some of the basic, practical issues. An obvious example is that equivalencing real and complex arrays is not possible without using “sequence association” that is only allowed in EXTERNAL routines, or by some ISO-C-Binding hacks.
IMHO, the overall design of modules and their implementation by compilers is a major botch. The sub-modules feature fixes some of this. I avoid modules as much as possible, but this makes some features difficult to use, and often exposes compiler bugs because I am not using the “normal” approach.
If Fortran Standards had developed sensibly, it would still be a major programming language. Now days, many people view it as just a legacy language. Fortran is still superior in many ways for math, We need to weed out the remaining ugly Fortran annoyances.