IronPython

IronPython is an implementation of the Python programming language which runs on The .NET Framework.

.NET is a primarily Windows platform, but is also covered by open standards, and there is a cross-platform implementation called Mono. Not only does IronPython run on Mono, but it comes included with it.

IronPython was originally written by Jim Hugunin, who also initially wrote Jython - Python for the JVM.

Jim was hired by Microsoft, and IronPython is now developed by a Microsoft team. IronPython is a Python compiler, it compiles Python source code into in memory assemblies that execute natively. Because of the highly dynamic nature of Python, these assemblies are still dependent on the IronPython dlls.

IronPython 1.X is an implementation of Python version 2.4.

IronPython 2 is an implementation of Python version 2.5.

Python itself is a mature language that has been around since 1990, and is steadily growing in popularity. It is a cross-platform, Open Source, dynamically typed, object oriented and interpreted language. It is used for a wide range of tasks including web-development, science, system-administration, desktop applications, games and more.

The Python philosophy emphasises clean and readable code, whilst allowing the maximum developer flexibility and power. As a dynamic language and multi-paradigm language, IronPython brings things to .NET not easily found in traditional .NET languages: dynamic typing, duck-typing, functional programming, late-binding, runtime modification and introspection of objects, metaprogramming, an interactive interpreter (REPL) and more...

IronPython is a very faithful implementation of Python. The major difference is that because IronPython is written in C#, you can't use C extensions written for CPython. This means that not all of the standard library works, but the IronPython team have gone to a lot of effort to make sure that as much of it as possible does. several of the C Python modules are actually built into IronPython, and alternative wrappers are available for several others.

You can natively access .NET types and the framework classes from IronPython. This makes IronPython a great tool for experimenting, writing applications, or embedding into other programs as a ready made scripting language.

The permissive open source license of IronPython means that derivative works and commercial use is allowed.

Resolver Systems is writing a large project in IronPython. Their current codebase is 20000 lines of production code, plus 80000 lines of test code. Until someone else says otherwise, we claim that this is the worlds largest codebase of code in IronPython! (And proves that large, maintainable projects are more than feasible in IronPython.)

For lots more resources on Python and IronPython, see the Useful Links page.

Back to Contents.