Also, even in terms of high-performance computing,
python is being used more and more. It is not as fast as
C++, but if you want a highly parallel application you can use MPI bindings for
python and there's decent OpenCL/Cuda libraries available, because in that instance scalability is more important than single core performance. In scientific research, the ability to do new things quickly and correctly is the most important factor. What good is a code that is achieving 90% of the theoretical FLOPS if you don't know the calculations it is doing are correct? I can see a shift in the scientific software community to open-source software, and when that happens the emperor will be left with no clothes and people will finally realise that many of the results obtained in computational physics over the last 20 years are complete crap due to some obscure bug buried in 50k lines of C code. Not too long ago a PhD student found dozens of bugs in a widely used MD program called Amber, because he went through and used
python to methodically unit-test as many functions as he could. Of course, that could have been found with proper unit-tests in the first place, but in academia people do not value proper software engineering. Added to the fact that most people who work on these codes are PhD students. How long does it take to get proficient enough in
C++ to be able to write proper, re-usable code in some open source software? I would suggests at least 3 years, which is the length of an entire UK PhD. Moving to languages like
Python which people can understand and do useful things with in < 1 year is a positive move in that arena.
Of course, there are some applications where you really do need to get as many FLOPs as possible, and in those cases C/
C++/Fortran are great. The thing is, very few codes and applications actually need that. Rapid development is usually a more important factor. C/
C++ are good at some things, but not the best choice for most. In contrast,
python is good for most things, and not the best choice for some.
Anyway, it seems I'm preaching to the choir here with quite a few
python fanboys on quantnet. Now we just need to get that dinosaur Daniel Duffy to start cutting some
python code :P:D