Issue No. 01 - Jan.-Feb. (2014 vol. 16)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MCSE.2014.26
Python programming capabilities are in high demand, not only showcasing that this academic software has gained commercial acceptance, but also indicating the widespread use of scientific computing.
I recently had a chat with a headhunter who specializes in recruiting software developers, system administrators, and other IT staff. People who can build Web applications are in high demand, she told me. When I asked her what the hot programming languages are, her answer surprised me: Besides the expected Java, .NET, PHP, and Ruby, she also mentioned Python.
My surprise arose from ignorance. Having been associated with CiSE since 1999, I'd seen articles about Python over the years. I even devised the concept for the cover of the magazine's first special issue on the language. Still, I had no idea that Python had spread beyond academic research and into commercial software.
Thanks to Wikipedia, I've since discovered that Google and Yahoo use Python. When you book an airline ticket online, chances are the system you use was built by ITA Software and runs on Python. TIOBE Software, whose business is based on checking software quality, named Python its programming language of the year twice—in 2007 and 2010.
Version 1.0 of Python was released in 1994 while its author, Guido van Rossum, was at the Netherlands' National Research Institute for Mathematics and Computer Science. Just two years later, an article appeared in Computers in Physics that, in retrospect, foreshadowed the language's popularity. Written by Python pioneers Paul Dubois, Konrad Hinsen, and James Hugunin, the article began:
Python is a small and easy-to-learn language with surprising capabilities. It is an interpreted object-oriented scripting language and has a full range of sophisticated features such as first-class functions, garbage collection, and exception handling. Python has properties that make it especially appealing for scientific computing.
How quickly did Python catch on among scientists? To find out, I searched for the word "Python" in all the journals hosted by the American Institute of Physics's Scitation platform. The earliest article I found that reported using a Python program for computation was "Efficient Calculation of the CurrentVoltage Characteristic of a Resistively Shunted Josephson Junction," which appeared in Applied Physics Letters in 2000. In 2008, I found a total of 48 Python papers. By 2013, the number had grown to 89. Both figures are likely to be underestimates, because researchers aren't obliged to cite the software they use in their research.
Flexibility and power no doubt account for Python's popularity, but so do its clarity and ease of use. Indeed, van Rossum designed Python to yield programs that could be readily understood. "Readability counts" is one of his guiding principles.
Dubois, Hinsen, and Hugunin evidently grasped Python's potential. They ended their May/June 1996 Computers in Physics article (pp. 262267) with the confident prediction:
Python's portability, free licensing, basic good performance, and ease of extension, combined with its appeal to the scientific community due to its simplicity and the ease with which application-specific objects can be created, make it a key tool for the future.
Now I wonder what the next, best language for scientific computing will be.