"Exploratory programming" is the most appropriate word. It aptly describes scientists (of non-Computer Science background) who do computation, but they never know beforehand which implementation will lead to an answer. When Fortran was language of choice in scientific computing data generation was the central focus. With advancement of human knowledge in various fields of science, data processing became equally if not more important. The role of biologists and chemists doing computation has evolved over years until today when they (researchers) are typically required to perform numerical calculations on one hand, as well as carry out diverse tasks like administering databases, procuring information from them, managing workflows etc. Therefore implementing python in such scenario is most viable option.
Another important reason for popularity of python was explained by Eddie Cao (Sr. Informatics Architect at Novartis) during US-PyCon 2012 "... For us python has lot of advantages, at the top of my mind is the fact that python is very approachable. We support scientists that are not computer scientists by training. They are chemists and biologists, but they can actually look at python code and make so many changes."
The legacy code which has been written in other languages like Fortran and MATLAB+ etcetra is time tested. Python works as a glue by perform mapping of the data structures in the classical (legacy) codes. For example, F2py which makes it possible to wrap complete Fortran modules.
![]() |
| Much of the useful code in science and engineering is already written in languages like Fortran and MATLAB+. |
Some python based projects :
Though this list can be very long but here are a few projects that are popular and/or I find of some personal interest.
| Project | Description | Website |
|---|---|---|
NumPy | provides support for large, multi-dimensional arrays and matrices, along with a large library of high-level mathematical functions to operate on these arrays | http://numpy.org/ |
SciPy | Library for mathematics, science, and engineering. It in turn depends of numpy which provides array manipulation libraries. | http://scipy.org/ |
iPython | Interactive Python consists of three interfaces:
| http://ipython.org/ |
Matplotlib | 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms | http://matplotlib.org/ |
MayaVi | 3D plotting library | http://mayavi.sourceforge.net/ |
Pandas | library providing high-performance, easy-to-use data structures and data analysis tools | http://pandas.pydata.org/ |
PyQuante++ | suite of programs for developing quantum chemistry methods. written in python, numerical python and C | http://pyquante.sourceforge.net/ |
MMTK | a.k.a. Molecular Modelling Toolkit | http://dirac.cnrs-orleans.fr/MMTK/ |
BioPython | set of tools for biological computation | http://biopython.org/ |
+ MATLAB is a registered trademark of The MathWorks, Inc.
++ Rate limiting steps in PyQuante are written in C. If sometime in future, you expect to see a complete Python based Quantum Chemistry program, you must consider contributing some money towards fund raising for PyPy project. I really do not know if that is an exaggeration, but developers at PyPy are known for doing some crazy stuff (including development of a faster although restricted form of Python!).
