Several projects are completely new projects. I'm not sure that this is specific to scientific computing, but, at least in this area, you usually create your applications based on existing (scientific) models, possibly created by other groups / people. You will always have to deal with some outdated code, whether you want it or not.
Fortran is something that many scientists have taught, and which has many libraries that they need. Some of them may not be computer or IT specialists, but computer scientists. Their main task is rarely to calculate, this is their science in the first place. While a large number of programmers will tend to learn a new programming language or structure when they get a chance (including in their free time), most scientists will use this time to learn new ideas about their science.
A domain expert trained in Fortran (or any other language) and surrounded by people in a similar situation will have no incentive to move away from him. It’s not only that other languages can now be as good as Fortran in terms of performance, they should be much better: you need to be a good reason to move away from what you have and know.
It is also a vicious circle to a certain extent. I have always found comparisons between Java and Fortran a bit complicated, simply because a number of scientific Java applications are not programmed in the Java way. Some of the Java Grande applications look exactly like Fortran programs converted to C programs, copied / pasted / modified into Java programs (in a method that passes the length of the array as an additional parameter next to the array itself gives the key, if I remember well). Because of this, Java (for example) does not have a great reputation in the scientific community, although its performance is getting better . The consequence of this is that there is little overlap between the HPC experts and the Java experts, for example. Even for hardware or library developers, little user demand leads to little support, which in turn repels users who might be interested in switching to other languages.
Please note that this does not prevent the same (or other) scientists from using other languages for other purposes (for example, workflow management, data management, faster modeling using Matlab, Numpy, ...).
Bruno Jan 25 '12 at 3:17 2012-01-25 03:17
source share