[Beowulf] Scientific computingâ€™s future: Can any coding language top a 1950s behemoth ?
Lux, Jim (337C)
james.p.lux at jpl.nasa.gov
Tue May 13 12:08:42 PDT 2014
When young programmers make snide remarks about Fortran and rewriting codes in modern languages, I ask them if they also considered replacing the old copper plumbing in their house (or parents house) because there are modern products like Pex. I don't even wait for an answer. I just tell them to get off my lawn.
I think there *is* a tendency among less experienced (and less cynical) developers, particularly from the CS community, to overlook the practicalities of working with an existing code base for large models, largely developed and used by people with very ad-hoc software engineering skills (e.g. climate scientists generally aren't software engineers, and neither are the folks who wrote the Numerical Electromagnetics Code)
I view a lot of the "let's rip out that old FORTRAN and replace it with language d'jour" as similar to when the new developer comes on a project and immediately proposes refactoring the entire codebase, because clearly, over the last 5-10 years, a lot of cruft has built up (notwithstanding that this cruft also represents a form of documentation of the evolving requirements and design).
I suspect that brand new computational codes are often NOT being written in FORTRAN as much as in days gone by. There's a lot of C, C++, and Python in various forms. The C++ tends to be somewhat restricted in terms of fully utilizing all of the language's capability. And, of course, there's a fair amount of FORTRAN styled C, Java, whathaveyou. It's written by crotchety people like me, who "think" in FORTRAN, because that's what I learned back in the 60s, and software development is not my primary job, so whatever inefficiencies there are from my not using all the mod-cons is of little consequence.
Actually there's a fair amount of Matlab "hand translated to language X" around, too. And Matlab is awfully similar to FORTRAN in many ways. If you got your big numerical analysis code running in Matlab, recoding it in FORTRAN is pretty easy, since it's unlikely you've used all the OO features of Matlab, and were just using simple flow control and lots and lots of math.
More information about the Beowulf