Python

Why Python?
 
In the fall of 2008 I was building an 8mm Telecine. A Telecine converts film images into video. The result of the project is described in the May 2009 issue of Linux Journal as the article "Linux-Based 8mm Telecine". There are a few different ways to make the conversion but all of them involve writing some software. I wanted to use open source software so that others could benefit from the effort. The language would need support for scanning, serial (or parallel) port communication (to control the film transport), a math library and an image library. A plotting/drawing library would be helpful for program development. I was familiar with C, but I wanted a language that offered higher level constructs. I searched for a while and then chose Python. It's easy to learn and well supported. There are any number of on-line documents and tutorials. Error handling and type checking/conversion are built into the language making debugging easier. The Python Imaging Library (PIL) included an interface to SANE for scanner support. It turns out that Python is also available for Windows, although I used Linux for the Telecine.

The best place to start learning about Python is http://www.python.org/. Go to the documentation page and select the Browse Current Documentation link for the version of Python you are using. There is also a Python Wiki which has lots of tutorial material.

For Linux go to the download page to get the software. If you are working on Ubuntu you can also get the version for your OS using the Synaptic Package manager. If you are working under Windows I suggest using the version of Python packaged up by Active State. It's a larger download, but the package includes libraries you might have to load separately otherwise. If you use Active State's version, follow their install instructions. If you want to run Python on both platforms I would suggest that you use the same release versions to maintain compatibility.

The easiest way to find specialized references is to use google. That said, here are some links to information sources I've found.

Numeric and Scientific Plotting
Python Imaging Library (PIL)
PLPlot Python Plotting Library
NumPy - Scientific Computing with Python