
The three most well-known implementations of Python are the original C implementation (CPython), one in Java (Jython), and one in .NET (IronPython).
Jython makes it easy to write Python programs that use Java classes and to test a Java library at an interactive prompt. Similarly,
IronPython allows Python programs to be written that use the .NET libraries (these are the same libraries used by C# and Visual Basic).
IronPython (sometimes abbreviated as FePy) is relatively new and had its first release in 2006. It is Open Source and developed by Microsoft (by the same developer who started Jython). Although .NET is strictly for Windows, IronPython can also run on top of
Mono, the open source implementation of .NET which is available cross-platform.
As a cheminformatician should you be interested in IronPython or .NET? Well, Dimitris Agrafiotis
thinks so. And Eli Lilly recently
open sourced a life science platform implemented in .NET (here's the
SF website, but where's the mailing list?). I'm not yet convinced, but I'm keeping an open mind. I'm helping Matt Sprague to prepare C# bindings for OpenBabel. I think this will make OpenBabel the first cheminformatics library accessible from C# (although probably someone will contradict me below).
At this point, if you're still interested, you should check out the first chapter of "IronPython in Action", which you can
read on the web. This explains in more detail the background to IronPython and why you might want to use it.
IronPython in Action will be published later this year by Manning Press, and is written by Michael Foord and Christian Muirhead. Foord (aka Fuzzyman) is a
very active blogger on Python and FePy in particular, and works at a company whose main product is implemented in FePy.
Just to make it clear, this is not a book for someone who wants to pick up programming from scratch. There's little hand holding here. The obligatory introduction to Python is quickly and efficiently dealt with before moving on to the main subject - accessing .NET classes and creating a GUI application. For those coming from C# to IronPython, there is a whole chapter on unit testing with Python, as well as another that covers everything from Python magic methods to metaprogramming. A particularly nice feature of the authors' style is to logically link each section to the following, so that you always understand the point of what you've just read and where it fits into the bigger picture.
From my point of view, it's nice to see that explanations are provided for those using the free version of Visual Studio, Visual Studio Express, as this means that I can test out all of the examples myself. Other chapters yet to be finalised cover using IronPython in a webbrowser (apparently IronPython can run in
Silverlight, the new browser plugin from Microsoft), and extending IronPython with C# or VisualBasic.
In short, for any serious users of IronPython, this book is a must have. It may also convince those using C# to make the switch to a better and more productive life with Python...