Thursday, February 12, 2015

Python featured in "Nature"

The esteemed, international scientific journal Nature has just published an article that names Python as THE programming language to use for scientists and researchers. The article, written by Jeffrey M. Perkel, Programming: Pick up Python a powerful programming language with huge community support. makes clear that programming skills are necessary tools for all working scientists. And Python is increasingly becoming the language that is considered the most powerful, flexible, and easy-to-learn tool available for working with what has become the raw material of today's science—big data. 
Photo credit: Kirby Urner CC-BY-2.0
Perkel's account begins with a case example. Dr. Adina Howe, an Environmental Engineer, realized upon taking a research job that she needed programming skills. Python was the language recommended to her by her boss at her first research lab job. Currently, as a Professor of Agriculture and Biosystems Engineering at Iowa State University, she includes programming skills in the curricula for future scientists. 
According to Perkel, "Among the host of computer-programming languages that scientists might choose to pick up, Python, first released in 1991 by Dutch programmer Guido van Rossum, is an increasingly popular (and free) recommendation. It combines simple syntax, abundant online resources and a rich ecosystem of scientifically focused toolkits with a heavy emphasis on community."
The Python community is cited as particularly important to Python's growing adoption. Perkel quotes PSF Director Jessica McKellar, who uses the concept of a "virtuous cycle" to help explain Python's rapid growth. According to McKellar "new users extend the language into new areas, which in turn attracts still more users."
Perkel also credits the many Python packages and libraries ("batteries included") that allow the language to be useful for a huge variety of purposes. In fact, as the programming community knows very well, that is the beauty of open source—if a need arises, the community will create a module or library to meet that need. Specific packages mentioned in the article are NumPy (mathematical arrays), SciPy (linear algebra, differential equations, signal processing and more), SymPy (symbolic mathematics), matplotlib (graph plotting) and Pandas (data analysis), and Cython.