Although most has already been said, I'd like to emphasize a few
aspects of this problem :
> One of the reasons for considering C++ is the perceived difficulty in
> finding programmers who know fortran.
Look in the right places : physicists, numerical analysts, eventually
pure mathematicians. Here's why :
1) Learning the basics of a programming language is a piece of cake.
My estimate is abput a week.
2) Most of the students or graduates who claim to know C++ actually
just know C, and have a vague notion of what OO programming could be.
As for real C++ proficiency, you only find it with experienced
programmers.
3) The basics of programming is easy to learn, but a good understanding
of algorithms, convergence problems, accuracy difficulties, require
a solid training in applied mathematics. So if you use any non-trivial
algorithm, start looking for people with a good scientific/engineering
training.
4) There are a lot good programmers out there. For example, I have 20
years of experience with fortran programming, including F90, with
a solid applied mathematics background, and I'm open to all
interesting propositions ;-)
> Another reason is the maturity of
> fortran90 compilers. We have found fortran90 to run our code less
> efficiently than fortran77.
Sure, F90 is much more complicated than F77, so a compiler has much more
to do in terms of checking, and this caused performance problems.
But this has improved a lot since the early days, and is still likely to
improve again.
An interesting experiment is to compile your code with an older (2 or 3 years)
version of the compiler, and compare with the performance you would
get today : you sometimes gain a factor of 2.
C++ is even more likely to cause performance problems than F90, and C++
code is generally known to be substantially slower than the equivalent
F90 code. C++ fanatics claim the compilers will improve, but the F90
compilers will improve too.
> In either case, we do not intend to rewrite
> all of our current fortran77 code in a new language, but would write the
> backbone of our processing system in the new language as well as any new
> code.
Good idea. Rewriting a code to a different language is a long and
difficult process, and it puts you back to the process of designing,
debugging, validating. The F90 standard committee made a great job
of keeping F90 compatible to F77, and that's something all computational
labs would be well advised to take advantage of.
And now, good luck arguing with the C++ fanatics.
****************************************
* *
* Bertrand Meltz *
* CEA / Bruyeres-le Chatel *
* BP 12 *
* 91680 Bruyeres-le-Chatel *
* FRANCE *
* *
* Tel : (33) [0] 1 69 26 57 83 *
* Fax : (33) [0] I 69 26 73 84 *
* *
* e_mail : [log in to unmask] *
* *
****************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|