One of our goals is to encourage good software development and management practices among climate scientists. We have many years of experience in the software industry, and are sharing the lessons of that experience. Although code has become a key part of the scientific method, most scientists have little or no formal training in software development, and have to acquire their skills informally, "on the job". Working with scientists, we are helping develop important skills such as version control, code inspection, unit and system testing, defect tracking, and agile development methods.
We've been using Python in our consultancy work since the late 1990s (Python 1.5.2). It is important to the work of the Foundation for several reasons: clarity, availability, portability, flexibility, and not least because it is becoming the language of choice for climate scientists. However, as with any tool, it has strengths and weaknesses. Its weaknesses for our purposes in climate science include: 2-versus-3 incompatibility, a lack of library standardization (which used to be one of Python's great strengths), and performance problems. I describe ways in which each of these can be addressed.
As a tool, Python is part of a much broader toolkit. I describe some of the other tools we use, and how they can be integrated.
Finally, we advocate open-source publication of all science code, and I will outline the reasons for this, and identify and counter a few of the arguments against.
Supplementary URL: