The Python programming language is increasingly becoming the language of choice to those programmers that require ease of coding and readability over speed and expressiveness. Knowing this I was curious why programmers in a High Performance Computing environment were giving a boot camp in how to program in Python. My previous experience with Python consisted of writing a couple of programs that were to perform some complex bioinformatics algorithms. Scripting languages such as Perl and Python are common in the field of bioinformatics so I was informed that it would be a good way to program. Unbeknown to me when beginning to code in python, one of our programs was to be a brute force algorithm (one with many orders of magnitude) and one that I learned would take my python program about two hours to run. That same algorithm written in java was compiled and ran in about 3 minutes, quite a difference. However, the java program contained about three times the amount of lines of code, making it much harder to read, and most likely, much longer to code. This tradeoff of run/compile time and coding time was exactly why the HPC guys chose Python for some of there mid level programs.
Though there applications with Python GUIs I thought was rather pointless(they used wxPython for this), just considering it's ease of use didn't seem any easier than using java or C/C++ GUI applications, I thought the way they approached programming in python was pretty smart. Basically for simple algorithms or instances were they just needed to obtain a result from some set of data, they could program in Python and then connect or wrap those programs into their C or C++ code. They used a tool called SWIG (Simplified Wrapper and Interface Generator), to embed a scripting language into an existing C/C++ program, thus making the program much more customizable and much quicker to code. Thus they could get the best of both worlds as far as performance and ease/readability that one wouldn't have with using just one of those languages.

