On Sat, Apr 11, 2015 at 08:35:08PM +0400, Vick wrote: > Given that all scientists like to code in Fortran but does it mean that > Python is inferior to it in terms of mathematical / scientific computation?
Scientists do not like to code in Fortran. Anybody who tells you that is mistaken. If they wanted to be programmers, they would have become programmers, not scientists. If they *have* to program, they will, but they would rather do science, not programming. No, Python is not inferior. It is just different. It is designed to have different strengths and weaknesses compared to Fortran. Strengths of Fortran: - You can write very fast, powerful numeric programs. - Fortran excels at high-speed number-crunching. - Fortran is an old language, in fact it is the first (and therefore oldest) programming language. Because it has been around since the 1950s, there are lots of Fortran libraries you can use -- if you can find them, or afford them. Weaknesses of Fortran: - It is difficult to write Fortran code. - It is an old language which lacks modern programming features. - It is hard to work with strings or do anything except number-crunching. - It is a very low-level language, which means you have to care about things that have nothing to do with the problem you are trying to solve, like memory. Strengths of Python: - It is a modern language with many modern features that Fortran lacks. - It is easy to work with strings and other associated data structures. - It is a high-level language that automatically looks after all the boring book-keeping details, like memory. - It excels at rapid application development. - It excels at being a glue-language for calling pre-written C or Fortran libraries. Weaknesses: - Pure Python code may be a bit slower that C or Fortran code. (But that doesn't matter, if you can call a C or Fortran library to do the heavy lifting, and leave Python to do the parts that C or Fortran struggle with.) When people tell you that "real scientists" write their code in Fortran, they are being macho pretentious fools. Do "real scientists" also make their own test tubes from sand they dug out of the ground themselves? No, of course not. It isn't 1800 any more, and the average scientist no more needs to program in Fortran than they need to grind their own lenses. Some scientists may still need to use Fortran, but that is a sign that they are still stuck with using ancient computer programs, not a good thing to be copied. To give an analogy, Fortran is like flying a Suyez rocket. It is very difficult to learn to fly, but once you master it you can go into space in seconds. But it will takes years of training and months of preparation for each flight. Python is like driving a car: it won't get you into space, but it takes weeks to learn to drive a car, not years, and you can jump in the car and drive to the shops with no preparation needed. And you can get in your car and drive to the Suyez rocket, but you cannot get in the Suyez and fly to where you parked your car. Which is better? Well, it depends. If you want to drive to the shops, the Suyez is completely useless. It costs fifty million dollars every time you use it, and you cannot even get to the shops. If you want to spend six months writing a Fortran program to analysis your data, you can, and when you have finished, it will run in five seconds. Or you can spend six days writing it in Python, and it will run in five minutes. Which is better? To be more precise: Python can use Fortran and C libraries to do the heavy lifting, the difficult work. Doing that from Fortran or C is a horrible experience: they are hard languages to learn, and hard to use. But using those libraries from Python is fast, and fun, and easy, and that means that scientists can spend more time doing science and less time trying to program the computer. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor