Why Python?

I chose to use Python for these courses for a handful of reasons including:

  1. It is the language with the greatest potential to be used across the breadth of biology. It is increasingly utilized by folks spanning from traditional bioinformatics to climate modelers. Other languages tend be more discipline specific in my experience (for example, if I was targeting this course at ecologists, R would have been the natural choice).
  2. It is a general purpose, high level, programming language. This means that you should be able to do anything you want to do using Python, and it should be relatively easy to accomplish.
  3. It’s free. Funding rates for scientific research are extremely low at the moment and this means that expensive software licences are often untenable, especially for students conducting their own research. This also allows students in the class to program on any computer they want without dealing with licensing hassles, and guarantees that anyone can take advantage of the online resources that are being developed.
  4. It runs on all major operating systems.
  5. It is used by many professional programmers and taught in many computer science departments. This makes collaborating with experts on large or complex projects much easier.
  6. Software Carpentry, a truly excellent resource for learning scientific programming, is available primarily in Python. This makes it easier for students to learn more advanced topics on their own and allows me to avoid duplicating effort by using Software Carpentry lectures and by contributing material that I have developed back to Software Carpentry.

Or maybe I chose it because of this great XKCD comic. Who knows?