In December 2005, I posted this: Thinking about Monad and other Scripting Languages

I was learning Powershell (called Monad at the time) and was thinking about it in relation to IronPython. In December, despite my 10 year history with Python I was cautious about using IronPython. That caution stemmed from the unknown level of commitment and support to the project. I still have that question, but since that time I've spent a lot of time using IronPython and wanted to share my experience.

 

Summary: I like it. A lot.

- I can leverage 10 years of knowledge with Python

- I can leverage a lot (but not all) of my knowledge of the Python standard library

- I can leverage my experience in C# and the .NET framework.

- Embedding IronPython in a .NET application is simple.

 

But the biggest discovery ...

With "CPython" there is the notion that one writes in first python first and can optimize the 5% of your code that needs it into low-level C/C++ (if needed). Thanks to projects like SWIG, there was a relatively straightforward to interface between C++ and C. I've used SWIG and yes, it's straightforward, but it's still not *easy*. There's still to much "activation energy" required.

What I found with IronPython and .NET was that the interoperability story is *easy*. Not just "possible". Not just "if you spend a lot of time reading you might get this to work". It was *EASY*.

The world I always hoped would exist, the world where code can be written in the traditional languages and then cleanly interop with "scripting" languages has arrived. Starting with IronPython I really can just simply move to "C#" as needed (and there are advantages to C# that go beyond speed).

 

Just try it

If you are a Python fan on Windows, I recommend taking a closer look at IronPython.

If you don't like Python, you have alternatives like RubyCLR and F# but I haven't experimented with them, so YMMV.