Welcome to MSDN Blogs Sign in | Join | Help

IronPython 1.0 released today!

I’m extremely happy to announce that we have released IronPython 1.0 today!

I started work on IronPython almost 3 years ago.  My initial motivation for the project was to understand all of the reports that I read on the web claiming that the Common Language Runtime (CLR) was a terrible platform for Python and other dynamic languages.  I was surprised to read these reports because I knew that the JVM was an acceptable platform for these languages.  About 9 years ago I’d built an implementation of Python that ran on the JVM originally called JPython and later shortened to Jython.  This implementation ran a little slower than the native C-based implementation of Python (CPython), but it was easily fast enough and stable enough for production use – testified to by the large number of Java projects that incorporate Jython today.

I wanted to understand how Microsoft could have screwed up so badly that the CLR was a worse platform for dynamic languages than the JVM.  My plan was to take a couple of weeks to build a prototype implementation of Python on the CLR and then to use that work to write a short pithy article called, "Why the CLR is a terrible platform for dynamic languages".  My plans quickly changed as I worked on the prototype, because I found that Python could run extremely well on the CLR – in many cases noticeably faster than the C-based implementation.  For the standard pystone benchmark, IronPython on the CLR was about 1.7x faster than the C-based implementation.

The more time I spent working on IronPython and with the CLR, the more excited I became about its potential to finally deliver on the vision of a single common platform for a broad range of languages.  At that same time, I was invited to come out to Microsoft to present IronPython and to talk with members of the CLR team about technical issues that I was running into.  I had a great time that day working through these issues with a group of really smart people who all had a deep understanding of virtual machines and language implementation.  After much reflection, I decided to join the CLR team at Microsoft where I could work with the platform to make it an even better target for dynamic languages and be able to have interesting technical discussions like that every day.

The first few months at Microsoft were a challenge as I learned what was involved in working at a large company.  However, once the initial hurdle was over I started experiencing the things that motivated me to come here in the first place.  The team working on dynamic languages in general and IronPython in particular began to grow and I got to have those great technical discussions again about both how to make IronPython as good as it could be and how to make the CLR an even better platform.  We began to take advantage of the great new features for dynamic languages already shipping in .NET 2.0 such as DynamicMethods, blindingly fast delegates and a new generics system that was seamlessly integrated with the existing reflection infrastructure.

We were also able to release IronPython publicly from Microsoft with a BSD-style license.  In the agile spirit of the project, we put out a new release of IronPython once every three weeks (on average) over the course of the project.  This helped us connect well with our daring early adopters and receive and incorporate their feedback to make IronPython better.  We've had countless excellent discussions on the mailing list on everything from supporting value types to calling overloaded methods.  Without the drive and input of our users, IronPython would be a much weaker project.

IronPython is about bringing together two worlds.  The key value in IronPython is that it is both a true implementation of Python and is seamlessly integrated with the .NET platform.  Most features were easy and natural choices where the language and the platform fit together with almost no work.  However, there were challenges from the obvious cases like exception type hierarchies to the somewhat esoteric challenges concerning different methods on strings. We spent long days and sometimes weeks looking for the best answers to these challenging problems and in the end I think that we have stayed true to both Python and .NET.

To drive our Python compatibility, we run a large portion of the standard Python regression test suite in addition to a large custom test suite we added that runs IronPython and CPython side-by-side to test for identical behavior whenever possible.  Despite all of this work, there will still be differences between IronPython 1.0 and CPython.  The most obvious difference is that IronPython is missing a number of standard C-based extension modules so things like "import bsddb" will fail.  We maintain a detailed list of differences between the two implementations and aim to reduce the size of this list in every release.

IronPython has also striven for deep integration with the CLR.  For the implementation this is a great thing as it lets us take advantage of highly-tuned components developed for other languages such as the just-in-time compiler, garbage collector, debugging support, reflection, dynamic loading and more.  This integration is also valuable to IronPython developers as it lets them easily use any and all libraries built for .NET from their Python code.

This is the 1.0 release of IronPython.  It's more complete and well tested than any other 1.0 product I have personally released in my career.  However, like any other software product it's not perfect.  You can search for known issues and let us know about any new ones that you find in our public bug database.  We're continuing to work on IronPython and we want your input on how to make 1.1 and future releases even better.

It's been an exciting journey for me to see IronPython go from a rough prototype playing around with some ideas to a solid 1.0 release.  This never could have happened without all the people who've contributed to this project along the way.  My thanks go out to all the users who braved our early releases and passed along their problems and suggestions.  My thanks also go out to the amazing group of people here at Microsoft who've come to join this project and drive it to this quality 1.0 release.

Shipping IronPython 1.0 isn't the end of the road, but rather the beginning.  Not only will we continue to drive IronPython forward but we're also looking at the bigger picture to make all dynamic languages deeply integrated with the .NET platform and with technologies and products built on top of it.  I'm excited about how far we've come, but even more excited by what the future holds!

Thanks - Jim Hugunin (for the IronPython Team)

Published Tuesday, September 05, 2006 1:01 PM by hugunin

Comments

# IronPython 1.0 Ships!!

IronPython is a project that implements the dynamic object-oriented Python language on top of the CLI. ...
Tuesday, September 05, 2006 4:43 PM by IronPython Blog

# IronPython V1.0 Released!

Congratulations to the IronPython team for releasing their final version of V1.0 for production...
Tuesday, September 05, 2006 5:05 PM by Jason Zander's WebLog

# re: IronPython 1.0 released today!

Congratulations!
All of the hard work is really appreciated.
I look forward to see how support for dynamic languages is improved in future versions of the CLR.
Tuesday, September 05, 2006 5:40 PM by me

# IronPython 1.0 released today!

You've been kicked (a good thing) - Trackback from DotNetKicks.com
Tuesday, September 05, 2006 9:02 PM by DotNetKicks.com

# re: IronPython 1.0 released today!

Congrats.
Tuesday, September 05, 2006 10:14 PM by Dan McKinley

# Andrew Conrad's WebLog : Iron Python 1.0!

Wednesday, September 06, 2006 1:07 AM by Andrew Conrad's WebLog : Iron Python 1.0!

# Iron Python 1.0 is released

You probably already read this 100 times, but Iron Python 1.0 is released. Check out Jim Hugunin's reflections...
Wednesday, September 06, 2006 1:31 AM by Mike Stall's .NET Debugging Blog

# IronPython goes 1.0

Wednesday, September 06, 2006 1:35 AM by Brain.Save()

# re: IronPython 1.0 released today!

Excellent language! I'll start to play with it
Wednesday, September 06, 2006 5:32 AM by DaHcn

# Python dla .NET

Implementacja języka Python dla platformy .NET, czyli IronPython, doczekała się wersji 1.0. Warto zauważyć,
Wednesday, September 06, 2006 6:00 AM by RaDzAw's .NET Weblog

# Iron Python 1.0 Release

Wednesday, September 06, 2006 6:20 AM by Олег Михайлик

# IronPython 1.0 released

I just read the announcement on James Huguin's blog, that he and his team released IronPython...
Wednesday, September 06, 2006 6:51 AM by Smartwombat Blog

# re: IronPython 1.0 released today!

Good job! Interesting read, I will try it out.

Any word on wether this will ship integrated with Visual Studio 2005 (maybe a service pack)?
Wednesday, September 06, 2006 7:52 AM by Mike

# Where Are The Wise Men? » Blog Archive » IronPython 1.0 released

# re: IronPython 1.0 released today!

This is outstanding, but are there any plans to provide any support for it within Visual Studio?
Wednesday, September 06, 2006 9:31 AM by Kurt Christensen

# Microsoft releases IronPython 1.0

IronPython is a Microsoft sponsored open source implementation of the Python dynamic programming language on Microsoft’s .NET framework and version 1.0 was formally released yesterday…

...
Wednesday, September 06, 2006 9:36 AM by Microsoft News Tracker

# re: IronPython 1.0 released today!

downloads are broken
Wednesday, September 06, 2006 11:42 AM by downloads are broken

# » IronPython 1.0 » Linux Platense

Wednesday, September 06, 2006 11:47 AM by » IronPython 1.0 » Linux Platense

# V1.0 of the IronPython project for .NET released

Scott Guthrie has announced the release of V1.0 of the IronPython project for .NET, avialable for download
Wednesday, September 06, 2006 12:12 PM by alexbarnett.net blog

# re: IronPython 1.0 released today!

Congratulations Jim and team: it's great to see you achieve this milestone!
Wednesday, September 06, 2006 12:31 PM by Ron Bodkin

# IronPython 1.0 released today!

Wednesday, September 06, 2006 12:42 PM by Groovy Links

# re: IronPython 1.0 released today!

Three cheers for you and the IronPython team!
Wednesday, September 06, 2006 1:45 PM by sfb

# re: IronPython 1.0 released today!

<blockquote>This integration is also valuable to IronPython developers as it lets them easily use any and all libraries built for .NET from their Python code.</blockquote>

It bears repeating that the IronPython license is no kind of safe-harbor for developing open-source applications on top of Microsoft's platform. Specifically, if you want to license your application as GPL (and you may have important strategic business reasons for doing so), IronPython's license itself won't hinder you, but you probably cannot import many of those libraries.
Wednesday, September 06, 2006 2:31 PM by Michael Bernstein

# IronPython 1.0 has been released

IronPython 1.0 has been&amp;nbsp;released yesterday!&amp;nbsp; I fondly remember using Python when I was in college...
Wednesday, September 06, 2006 3:08 PM by Ricky Tan, UI Framework Client Team

# Emerging Thoughts with Nav Bhachech : Snakes on a Platform

Wednesday, September 06, 2006 3:15 PM by Emerging Thoughts with Nav Bhachech : Snakes on a Platform

# IronPython 1.0 availble now on CodePlex

Dynamic programming language lovers or Python die-hards, check out this great release of IronPython 1.0...
Wednesday, September 06, 2006 6:30 PM by B# .NET Blog

# Easy Street

Via Stefan, here is a pragmatic posting that cogently explains that the enterprise software picture isn't as black and white as folks who constantly engage in the &quot;enterprise vs. enterprisey&quot; battle wish it were. I especially like the &quot;Enterprise-Class
Wednesday, September 06, 2006 11:27 PM by Middleware Matters

# The Blog of Dave5 &raquo; Blog Archive &raquo; IronPython 1.0 Ships

Wednesday, September 06, 2006 11:59 PM by The Blog of Dave5 » Blog Archive » IronPython 1.0 Ships

# re: IronPython 1.0 released today!

Great work.  Thanks for bringing python to .NET.  Ship it with Visual Studio!
Thursday, September 07, 2006 1:54 AM by baus

# IronPython 1.0 &laquo; Coding the markets

Thursday, September 07, 2006 9:41 AM by IronPython 1.0 « Coding the markets

# re: Visual Studio support for IronPython

There have been several question about IronPython and Visual Studio.  IronPython has no official VS integration; however, the VS SDK provides fairly rich IronPython integration as a sample which is available with complete sources.  To use this integration you have to be willing to deal with installing the VS SDK and building from sources.  More information is available here:
http://blogs.msdn.com/aaronmar/archive/2006/02/16/533273.aspx
Thursday, September 07, 2006 1:19 PM by hugunin

# This Week in Dynamic Languages on Statically Typed Virtual Machines

Thursday, September 07, 2006 3:34 PM by Dare Obasanjo aka Carnage4Life

# Marc Abramowitz &raquo; IronPython 1.0

Friday, September 08, 2006 12:41 PM by Marc Abramowitz » IronPython 1.0

# IronPython 1.0 has shipped!

As has been announced all over the Internet, the IronPython team shipped their 1.0 release this past...
Friday, September 08, 2006 1:06 PM by Aaron Marten's WebLog

# Roman&#8217;s blog &raquo; Blog Archive &raquo; Sun hires JRuby core-developers fulltime

# Catching Up &laquo; Tales from a Trading Desk

Saturday, September 09, 2006 11:49 AM by Catching Up « Tales from a Trading Desk

# Popular WebLogs &raquo; Blog Archive &raquo; Why argue about dynamic versus static languages when you can use both?

# IronPython 1.0 Released | FuCoder.com

Sunday, September 10, 2006 9:33 AM by IronPython 1.0 Released | FuCoder.com

# Bieber Labs &raquo; Jon Udell Screening Room Screencast on IronPython

# IronPython 1.0 talks at TechEd Developers

This week Jim Hugunin, lead architect on the CLR-team for IronPython, announced the release of IronPython...
Sunday, September 10, 2006 2:02 PM by David Boschmans Weblog

# IronPython and JRuby

The IronPython and JRuby announcements have been making the rounds in the blogosphere. and of course I want to add my 2c.  I think that these announcements are very significant and should be welcomed by people in both the Python and Ruby communities,
Monday, September 11, 2006 2:26 AM by Ted Leung on the air

# schlapsi&#8217;s blog &raquo; Blog Archive &raquo; IronPython-LanguageBinding f??r SharpDevelop

# PHP, Python &amp; Ruby: Lining Up Behind a Language

Remember the good old days, when the language landscape was a simple two party battle, defined by Microsoft and .NET on the one hand, with Java and virtually every other large ISV on the other? Yeah, me neither. While I'm...
Monday, September 18, 2006 4:14 PM by tecosystems

# randyorr.net &raquo; links for 2006-09-06

Wednesday, September 27, 2006 2:08 PM by randyorr.net » links for 2006-09-06

# Dynamic Languages

Ruby &amp; Phyton are just some of the dynamic languages that I&#39;ve been hearing about quite a bit

Saturday, October 21, 2006 10:52 PM by Software

# Balance On Rails : Evento, FNAC, hoje! e outras coisas mais

# IronPython 1.0 has shipped!

As has been announced all over the Internet, the IronPython team shipped their 1.0 release this past

Friday, November 03, 2006 12:32 PM by Aaron Marten's WebLog

# A New Direction for the .NET Framework?

An interesting series of events have taken place over the last few months in regards to the .NET Framework.

Monday, February 26, 2007 7:30 PM by Robert McLaws: Windows Vista Edition

# &raquo; Microsoft to roll out dynamic-language layer for .Net | All about Microsoft | ZDNet.com

# IronRuby & DLR – Giving Developers more Language Choice in .Net

I know when I think about .Net programming languages the first thing that pops into my head is "C#" followed

Tuesday, July 24, 2007 2:53 PM by Adam Wiener's Thoughts and Comments

# IronRuby &amp; DLR – Giving Developers more Language Choice in .Net

I know when I think about .Net programming languages the first thing that pops into my head is &quot;C#&quot;

Tuesday, July 24, 2007 3:16 PM by 外部部落格

# IronRuby & DLR – Giving Developers more Language Choice in .Net

I know when I think about .Net programming languages the first thing that pops into my head is &quot;C#&quot;

Tuesday, July 24, 2007 3:24 PM by Noticias externas

# andreas-schlapsi.at &raquo; Blog Archive &raquo; IronPython-LanguageBinding f??r SharpDevelop

# A Lot of Reading Around &laquo; Stop Duplicating - Start Applying!

Thursday, November 15, 2007 12:03 PM by A Lot of Reading Around « Stop Duplicating - Start Applying!

# Mono.Cecil vs. System.Reflection

Mono.Cecil is an open source framework, part of the Mono project, that reads .NET assemblies, but also

Tuesday, March 18, 2008 6:08 AM by Patrick Smacchia [MVP C#]

# Compare oxycontin to oxycodone.

Compare oxycontin to oxycodone. Oxycontin vs. oxycodone.

Sunday, November 09, 2008 7:29 PM by Oxycodone and oxycontin.

# Codegear in the news - Page 9 | keyongtech

Wednesday, January 21, 2009 8:04 PM by Codegear in the news - Page 9 | keyongtech

# Jim Hugunin s Thinking Dynamic IronPython 1 0 released today | Paid Surveys

# Jim Hugunin s Thinking Dynamic IronPython 1 0 released today | Outdoor Ceiling Fans

# Jim Hugunin s Thinking Dynamic IronPython 1 0 released today | Portable Greenhouse

# Jim Hugunin s Thinking Dynamic IronPython 1 0 released today | Wood TV Stand

# Jim Hugunin s Thinking Dynamic IronPython 1 0 released today | Insomnia Cure

# Jim Hugunin s Thinking Dynamic IronPython 1 0 released today | garden decor

New Comments to this post are disabled
 
Page view tracker