Monday, December 31, 2007

Command Line Client for Google Reader in IronPython

Dare Obasanjo has created an IronPython command line client for google reader. This is a first step in integrating RSS Bandit with google reader:

Minor Mentions

A few recent blog entries featuring or mentioning IronPython:
  • CALEBLOG: Garbage Collecting 2007 - a blogger includes being surprisingly interested by IronPython and the DLR in his mental garbage collecting of 2007.
  • Python.NET - Alcides Fonseca is a fan of both .NET and Python. He likes IronPython, but prefers Python.NET.
  • Playing with the DLR - Rainer experiments with the DLR. He shows code for executing IronPython, IronRuby and Managed JScript scripts by embedding the DLR (from IronPython 2) in C#.
  • Mood News - Now IronPython Powered - Davy Mitchell's 'Mood News' is now powered by IronPython
Oh, and there are some more IronPython Cookbook updates:

Friday, December 28, 2007

Using the Wiimote from IronPython

Another one in Japanese I'm afraid, but again the code is clear. This blog entry shows how to use WiimoteLib, a Managed Library for Nintendo's Wiimote, from IronPython:

Wednesday, December 26, 2007

WMI with IronPython

Another example of WMI with IronPython (this one querying the BIOS):
There are now four examples of WMI usage on the IronPython Cookbook WMI Page.

Monday, December 24, 2007

Put a Python in Your Game

A Christmas eve post on putting a Python console into XNA games:
UPDATE: link updated to new location - now with video and source code available!

Sunday, December 23, 2007

IronPython Studio, Resolver, Python Papers & IronPython Talks

Recently most of my blog entries have been on IronPython or Resolver (my apologies). It has been an important few weeks for Resolver, with our beta now out and the announcement that Resolver will be free for personal/Open Source use:

IronPython Cookbook Updates

There have been some great new additions to the IronPython Cookbook in recent weeks:
Plus the IronPython 2.0A7 files have been added to the Downloads page.

Saturday, December 22, 2007

IronPython on Mac OSX and Mono

You may struggle to read this unless you're Japanese, but the code and screenshots speak for themselves:

Friday, December 21, 2007

IronScheme, Dynamic Languages and Comparisons

Three links in one post!
The announcement is on the xacc.ide blog.
R Tyler Ballance runs Pybench for CPython and IronPython (on Mono). This was discussed back in April, which included a useful comparison of .NET and Mono performance.
A look forward to the future of dynamic languages in 2008, including the trend of implementing dynamic languages on top of high level languages.

IronPython 2.0 Alpha 7 Released

IronPython 2.0 Alpha 7 (source and binary) is now available:
Major points of interest with this release:
  • IronPython 2 should now be PEP 342 compliant (yield should now be fully compatible with Python 2.5)
  • This is the last release to be built and fully tested with Visual Studio 2005
Around twenty bugs (mainly minor) have also been closed with this release.

Sunday, December 16, 2007

Return vs. Finally - C# and IronPython

Mike Stall has an interesting new blog entry on the difference between C# and Python regarding returns in finally blocks:
Did you know that returns in finally blocks swallow exceptions in Python? (I didn't):

>>> def f():
... try:
... raise Exception('ouch')
... finally:
... return 3
>>> f()

Friday, December 14, 2007

IronPython and Jython Hello Windows

Kam-Hung Soh, a blogger from Australia (which should please my colleague Christian), has written a blog entry showing simple 'Hello Windows' scripts in both Jython and IronPython:
He notes "Both implementations allow setX functions in object constructor's argument list", which is unsurprising as both implementations are the creation of Jim Hugunin.

Thursday, December 13, 2007

Natural Sort in IronPython vs. C# 2.0

Continuing the 'natural sort' meme floating around the blogosphere at the moment, Dare Obasanjo compares natural sort code in IronPython and C# 2.0:
Unsurprisingly, IronPython is slightly more concise...

Tuesday, December 11, 2007

IronPython Studio Now Available

IronPython Studio is a free full IDE (Integrated Development Environment) for the Python programming language. It is based on the existing IronPython example that is included in the VS SDK.
IronPython Studio is based on the Visual Studio 2008 Shell runtime (royalty free) and can be installed without requiring any version of Visual Studio. It is hosted on codeplex.

Installer, source and screencast are available from the download page. The sources require Visual Studio 2008 (Team Edition apparently) and the SDK.

NOTE: Some users (myself included) had trouble getting this working. The magic steps are:
  1. Download and install the Visual Studio X redistributable from: Visual Studio Extensibility
  2. After you run the Install for the MS VS 2008 Shell Isolated Mode Redistributable, you must then go to the folder ("C:\VS 2008 Shell Redist\Isolated Mode") and click on: "vsshellisolated_enu.exe" to actually install the redistributable runtime.
  3. Install IronPython Studio
Thanks to Tom Clark for the instructions.

IronPython Present & Future: PyCon 2007 Podcast

The audio recordings for PyCon 2007 are finally making their way out. Jim Hugunin's talk is now available:
IronPython is an implementation of the Python language targeting the Common Language Runtime. IronPython has excellent performance, seamless integration with the .NET platform and very high compatibility with the standard Python implementation. The first public talk on IronPython was at PyCon 2004, three years ago. Since then, IronPython has progressed from a rough prototype to a 1.0 release with a vibrant user community. This talk will present the current state and future directions of this Python implementation.

Saturday, December 08, 2007

Resolver One Beta Released

After two years of work, Resolver One - the IronPython programmable spreadsheet, has reached public beta. You can download it now and have a play:
Resolver is a "rapid application development tool with a familiar interface", and should be useful to power users of spreadsheets and anyone who crunches numbers with Python. The Resolver Hacks website with articles and examples is in the process of being updated to use the new API that this beta introduces.

Today three of us from Resolver were interviewed by Robert Scoble today. He is on his way to Le Web conference in Paris, so I don't know when the actual video will appear - but I'll be sure to let you know.

Friday, December 07, 2007

Microsoft Volta: IronPython to Javascript Compiler

Microsoft Live Labs have announced a new project - the Volta Recompiler:
As far as I can tell, this allows you to compile IronPython (and other .NET languages) to Javascript:

Microsoft Live Labs Volta helps developers who build distributed applications on the .NET platform, using the Microsoft development stack (programming languages, libraries, and Visual Studio). This version of Volta supports applications that run on the Microsoft CLR, a JavaScript-enabled browser, or a combination of the two.


In essence Volta is a recompiler. Volta works on MSIL rather than on a textual source language. Volta rewrites MSIL into any number of target languages, including, today JavaScript and MSIL itself.


In summary, Volta confers flexibility in the architecture dimension through:

  • Language-independence. Write Volta code in any language that compiles into MSIL. For example, C#, VB, IronPython, etc.

Mono, Boo, Python, Gnome & IronPython

Miguel de Icaza has a blog entry responding to an article on 'Mono Usage in the Enterprise':
It has some interesting comments on the role of Python in the Gnome project and IronPython and Boo on Mono:

Python is indeed making great strides as a desktop development platform and am not sure that we are in the business of competing with it. If people like writing Python code, they should just keep writing python code.

Myself, I like the IronPython variation of Python more. IronPython just happens to be JITed Python and in most tests it is faster than CPython. For the past year or so, we have also been in love with Boo, another .NET language. Boo has support for strong typing, so for certain scenarios you will get even better performing code (basically, when you can determine the type of a variable ahead of time, instead of having the variable be entierly late bound).

Sunday, December 02, 2007

Mono and Windows Forms on OS X

Through Mono IronPython can be used to create cross platform applications, but the story for desktop applications on platforms like OS X has never been particularly compelling.

Miguel de Icaza outlines the future for Mono on OS X (one of the outcomes of the Mono summit), including easy access to the MonoDevelop IDE and screenshots of a winforms application on OS X using the native drivers!

IronPython Bug that Cost me a Can of Coke

Kamil Dworakowski (a Resolver developer) explains an obscure bug with comparing lists in IronPython 1, and how it cost him a can of coke:
The bug relates to IComparable and value types in the underlying framework and how IronPython implements equality in an attempt to remain faithful to Python.

Friday, November 30, 2007

Hosting IronPython 2.0 Alpha 6 via the DLR

A new blog entry from Ryan Dawson showing how to host IronPython 2.0 in a .NET application. It also talks about some of the changes coming in the IronPython 2 hosting API:

Thursday, November 29, 2007

DLRPad on Codelplex

The DLRPad is a Silverlight application for creating WPF (XAML) apps and scripting them with IronPython or IronRuby. This is now hosted on Codeplex:

Wednesday, November 28, 2007

Hosting IronPython 1.1

Ryan Dawson has a great blog entry on the hosting API for IronPython 1.1. He intends to follow it up with embedding examples for the IronPython 2 alphas as well:
UPDATE: Ryan is new member of the DLR team. He has also done a Hello World Blog Post, explaining his intention to blog more about IronPython and the DLR.

Monday, November 26, 2007

A Meme Tracker in IronPython

Dare Obasanjo has been learning Python, or more specifically IronPython so that he can port Sam Ruby's 'Meme Tracker' to run on .NET:

Wednesday, November 21, 2007

IronPython and Python Stack Frames

One incompatibility between IronPython and CPython that is unlikely to go away, is that IronPython does not have Python stack frames. IronPython is implemented on the CLR, which has its own stack frames that are very different to the Python ones.

This means that tricks with 'sys._getframe()' and friends will never work with IronPython.

JRuby, for Ruby compatibility, does use frames. Charles Nutter (one of the JRuby devs) has been experimenting with a frameless approach that yields faster execution:
(A paragraph near the bottom of that blog entry.) Python stack frames are seen as an implementation detail, and if you want your code to run across implementations then you shouldn't interact with them directly (does PyPy use Python stack frames?). Even though it is almost always a hack, we have missed them occasionally at Resolver. The notes from Charles sheds light on the IronPython design decision.

Tuesday, November 20, 2007

DLR Hosting Spec

The IronPython team have been firming up the hosting API for IronPython and DLR languages.

They have published an early spec, available via John Lam's website:

Sunday, November 18, 2007

SharpDevelop: IronPython AddIn Internals

The SharpDevelop team have created an IronPython language binding for the SharpDevelop IDE. This (like the Visual Studio SDK) is an example of creating new language bindings:

"This is a tutorial about how to create a language binding for SharpDevelop using the IronPython addin as an example. As well as covering how to create a language binding it will also look at how the addin used IronPython. The source code for the IronPython addin is available at the end of this tutorial."

DLR Pad - interactive programming with XAML and DLR

Stefan Dobrez writes:

"This post is about a tool that I have build. It is called DLR Pad. In one sentence it allows you to rapidly create simple XAML based applications and script against them with dynamic language of your choice."

The blog entry shows (another) Silverlight IDE like tool that can be used for experimenting with IronPython and XAML in Silverlight. You can also download the DLR Pad:

Mike Stall Learns Python

Mike Stall has just joined the IronPython / DLR team at Microsoft. Before this he was working on the CLR debugging team (and is an expert on the subject).

As he is now working on IronPython, Mike thinks it might be a good idea to learn Python. He is finding 'Learning Python, by Mark Lutz, a useful resource:

Thursday, November 15, 2007

First IronPython Book

As you may know, I' writing a book on IronPython for Manning: "IronPython in Action". The next third of the book is about to go for a review and will then be available in the early access program.

It won't make it as the first IronPython book though, there is already a Japanese one.

Boo, Java, .NET and IronPython

A blogger called Tomo wondered about which .NET language to choose Boo (a mighty fine language) or IronPython. He came down in favour of Boo, and an interesting discussion ensued in the comments:
The very next thing he tried was taking the Java class library for SWT (the user interface library) and compiled them into a .NET dll with IKVM. He then used them from Boo and IronPython, which worked!
This is an interesting coincidence, as a few days ago Rodrigo announced on the Boo blog about boojay - a compiler that emits Java bytecode from Boo:

Wednesday, November 14, 2007


Today Jeff Hardy announced on the IronPython list, the first release of NWSGI, an implementation of WSGI compliant server for IronPython 2.0. written in C# as a ASP.NET HttpHandler.

Currently it runs simple WSGI applications but has problems with the larger Python web frameworks due to bugs in IronPython 2.0 and NWSGI. Hopefully as IronPython 2.0 matures and Jeff continues to work on NWSGI, the will become less of an issue.

An implementation of a WSGI server for IronPython 1.0 is available with FePy

Monday, November 12, 2007

Multiple Python Engines in IronPython

One of the features of IronPython 1 that Resolver uses, which isn't currently available in IronPython 2, is the ability to create multiple isolated Python engines. The IronPython team have just announced that this feature will make it into IronPython 2:

LOLCode on the DLR

Martin Maly, as part of his TechEd talk on the Dynamic Language Runtime, showed an implementation of an exciting new language (LOLCode) that he hacked together whilst travelling. John Lam has made the source code to this available on his blog and Martin has contributed a write-up on the LOLCode site:

Hosting IronRuby with the DLR

The DLR (Dynamic Language Runtime) hosting API is still changing, in fact (according to Dino Viehland) it is now hosting API feature week.

Despite this, Tomas has written a great article on the DLR hosting API and IronRuby. Much of it is applicable to IronPython of course:

Thursday, November 08, 2007

Unicode Strings & Localization plus IronPython and the Standard Library

We recently had a strange bug from a Turkish user, that uncovered an issue with Unicode strings and the Python decimal module (when used from IronPython). The easiest fix is a simple modification to '', and Dino (an IP developer) says that Microsoft are looking at shipping the Python standard library with IronPython to make this kind of modification easier (a big step for Microsoft):

More IronPython News from TechEd

This week I've been at TechEd Barcelona, and as well as demoing Resolver, I've done some interviews and been to some IronPython talks:

IronPython 2.0a6

There is a new version of IronPython 2 out, 2.0a6:
This version fixes several bugs and is the first under the new public license. See the release notes for full details.

The release also includes a toy language implementation, ToyScript, that is an example dynamic language targetting the Dynamic Language Runtime. Martin Maly (one of the IP & DLR developers) has done a talk, at TechEd Barcelona, on the DLR that walked through part of toyscript and introduced a new DLR language - lolcode:

Thursday, November 01, 2007

Calling IronPython from C# with Delegates

A blog entry by 'Coding the Markets' on wrapping a "C# WinForms object in a Python dictionary".

Embedding IronPython in WPF C#

A Code Project article on embedding IronPython (1.1 from the looks of it) in a C# WPF application:

Monday, October 29, 2007

Accessing the .NET Field

Haibo Luo continues his series of posts on IronPython with information on accessing .NET class and instance fields with IronPython.

Sunday, October 28, 2007

IronPython 2, 'with' and COM

IronPython 2 targets Python 2.5, which means that the with statement is available. This is convenient because the currently released version of IronPython 2 there is a memory leak that keeps COM objects alive after they are used.

This bug is fixed in the IronPython source code control, but in the meantime a Japanese blogger has a workaround that uses 'with' and calls Marshal.ReleaseComObject - his fantastically nested example is for Excel Interop.
His blog has some other interesting IronPython stuff, including this example of Excel 2007 interop that creates a spreadsheet from a bitmap!

Friday, October 26, 2007

CPython Extensions for IronPython

Based on Python.NET I've got a proof of concept implementation for using CPython extensions from IronPython:
It has limitations, but the example code shows using matplotlib (with numpy and Tkinter) from IronPython 2.

EWeek Article: Microsoft's Growing Support for Dynamic Languages

An EWeek article on dynamic languages. The article is based on the presentation by Jim Hugunin at OOPSLA (Object-Oriented Programming, Systems, Languages and Applications).

Sunday, October 21, 2007

Dynamic Languages on .NET Video from Mix UK

The video of my talk from Mix UK is now available. See my blog entry for the link and talk description:

IronPython Support in SharpDevelop

The SharpDevelop community (specifically Matt Ward) has just announced IronPython support in SharpDevelop 2.2:
It looks pretty nifty, including intellisense and a Windows Forms designer. This is still in alpha and so is not included with SharpDevelop, but is a separate download from the blog entry.

Wednesday, October 17, 2007

Visual Studio as my IronPython Editor

Haibo Luo continues his series of posts on IronPython with instructions on how to setup Visual Studio 2005 & 2008 (currently in free beta) for use with IronPython, including intellisense, or even CPython!:

C Extensions for IronPython Mailing List

The new Resolver Systems project to allow IronPython to use CPython extensions now has a mailing list:

IronPython is now Open Source

The Microsoft license used for IronPython is now Open Source - or at least approved by the OSI. It is now called the Microsoft Public License:

Tuesday, October 16, 2007

Memory Savings with Magic Trampolines in Mono

Paolo describes the latest optimisations he has made in the Mono JIT compiler - and how this leads to memory savings for IronPython:

Monday, October 15, 2007

FePy 7 (IronPython Community Edition) Released

Seo Sanghyeon has just announced the release of FePy 7.

This is the first release of the IronPython Community Edition that includes IronPython 2 (specifically the recently released IronPython 2.0a5).

Seo is now working for Mozilla on the IronMonkey project, and this release was in part sponsored by Mozilla.

There are two projects that are part of FePy that are not included in this release.

Files under trunk/pyprof/, which tries to implement sys.setprofile with Mono profiler API. (Thanks to Miguel de Icaza and Paolo Molaro for help.)

Files under bench/, which benchmarks simple IronPython programs to measure progress of Mono runtime.

This release is built with Mono The minimum Mono version needed to compile and run for IronPython 1.x is 1.2.3. For IronPython 2.x it's 1.2.5. Mono 1.2.5 and are same except for ASP.NET bugfixes. DLR-based languages won't work with Mono versions before 1.2.5.

Changes in this release:


IronPython 2.0 Alpha 5.


dbapi module handles DBNull correctly. (Carsten Haese)
pyexpat module handles DTD. (Shozo Arai)


Following modules are now included: decimal, modulefinder, pkgutil, smtplib.
pystone benchmark. (It's under Lib/test.)

irclib, which works great. Try this example as a sanity test.


Patches are documented here.

New in this release:

For 1.x

For 2.x
patch-{325478,328022,333647} # Numbers refer to Mono bugs

Build system

Use NAnt to build IronPython 2.x.
Use quilt to manage patches.
Patches to build all IronPython 2 Alpha releases.
- AssemblyVersion.cs was missing in Alpha 3. (Miguel de Icaza)
Include both IronPython 1.x and 2.x, but share the library using

IronPython Cookbook Updates

There have been several new entries in the IronPython Cookbook since I last mentioned it. New material includes:
Plus various other new entries of course. If you haven't seen the cookbook before, it contains many examples of using .NET libraries from IronPython and also embedding IronPython into .NET applications.

Sunday, October 14, 2007

Dynamic Languages Support in Silverlight

An article on Ariel Nelson's blog, about dynamic languages in Silverlight, gives an introduction to using IronPython with Silverlight 1.1:

Saturday, October 13, 2007

IronPython 2.0 Alpha 5

There has been a new release of IronPython:
The main reason that IronPython 2 is still in alpha is that the Dynamic Language Runtime APIs change as it is extended / improved to better support the fledgeling IronRuby. It will need to be out of alpha by the time that Silverlight 1.1 final is released though!

This new version of IronPython fixes around 40 bugs / issues reported on Codeplex, plus 20 internally reported bugs. No major new features were added, but the 'array' module was ported from IronPython 1.1 to 2.0 in this release. (The bugs blocking my 'Python interactive interpreter in the browser' were fixed - so this should work with the next release of Silverlight.)

The source distribution should work with Visual Studio 2005 and 2008 (currently in free beta).

Python 2.5.2 is due for release soon as well...

Giles Thomas has also made an announcement on the Resolver blog: Open Source Project to get Some CPython Extensions Working with IronPython. This is a call for involvement (including advice) from the IronPython & Python community.

Friday, October 12, 2007

IronPython: Overloaded Methods

Haibo Luo's latest blog entry is about using .NET's overloaded methods from IronPython:

Thursday, October 11, 2007

Using C Extensions with IronPython: Resolver Announces Open Source Project

Resolver Systems has announced a new Open Source project, to get some essential CPython extensions working seamlessly with IronPython:

IronPython & Resolver at TechEd Barcelona

I'll be demonstrating Resolver at TechEd Barcelona, in a talk with Mahesh Prakriya and Martin Maly. IronPython will feature in several talks there:

VSX: Iron Cool Stuff

Alan Stevens looks at Visual Studio extensibility and is impressed with the IronPython examples:

Tuesday, October 09, 2007

More IronPython at Microsoft

Details of Visual Basic 10 are starting to emerge. This is a new version of Visual Basic that is slated to (at least optionally) replace VBA. Developers having been asking for more dynamic language features, so VB 10 will be built on the DLR.

Scott Guthrie and Scott Hanselman presented at the recent ALT.NET conference. They showed the new MVC version os ASP.NET - including the ability to create Controllers in IronPython and an IronPython view using a WebFormViewEngine. Demos of new technology from Microsoft always seem to involve illustrating the IronPython integration!

Want a job working on IronPython?
The Dynamic Language Runtime (DLR) team is expanding and is looking for a highly motivated and passionate engineer to join its test team. The DLR team is focused on delivering the most complete solutions around dynamic languages on .NET with respect to tools, libraries and community. Our main focal point is the DLR, which is a framework we’re building on top of the CLR to enable easy implementation of dynamic languages on .NET.

We’re looking for someone with a passion for dynamic languages to help us deliver the best experience in this space. As an SDET on the test team you’ll test our compiler implementations, contribute to our open source projects and help build our test automation and infrastructure.

dditionally, our test suites for IronRuby and IronPython must be flexible enough to ship to our open source community, without any ties to VSTS. The team is ripe with opportunities for growth and learning.

Saturday, October 06, 2007

IronPython 2 on Mono

Seo Sanghyeon has updated FePy to include a set of patches so that IronPython 2.0a4 will compile for Mono 1.2.5.
IronPython 2 is now an official part of the IronPython Community Edition.

Friday, October 05, 2007

Provide (or Not) Argument for By-ref Parameter

Haibo Luo continues delving into IronPython from a .NET point of view by looking at tuple unpacking, function return values and how to work with .NET 'by-reference' parameters from IronPython:

Max Recursion Limit in CPython and IronPython

Unlike CPython, a maximum recursion limit isn't set by default in IronPython. An exploration (and explanation):

Wednesday, October 03, 2007

Microsoft Opens up the .NET Class Libraries Source Code

Microsoft has just announced that it will be making the source code to a lot of the major .NET class libraries available. They will not be under an open source library, but it is still a big step.
Miguel de Icaza comments on what this does (and doesn't) mean for Mono. Mono is already distributing some Microsoft code (including IronPython...) that is available under their permissive license (which will soon be renamed the 'open' license - presumably in response to the OSIs request):

Python Keyword Arguments & .NET Arguments / Properties

Haibo Luo has done two more blog entries on IronPython, both about arguments and keyword arguments:
Using keyword arguments in .NET constructors to set properties (a nice feature of IronPython).
How different Python parameter passing styles map to .NET concepts.

Sunday, September 30, 2007

Python Implementations Matrix

'Someone' (moreati?) over on the 'Misspelled nemesis club' blog has started a Python implementations matrix (spreadsheet). This tracks the different versions and implementations of Python (CPython, Jython, IronPython and PyPy) and what features and libraries they support:
This is a great idea, but is far from being complete.

IronPython on

IronPython features in several places on Microsoft's websites. We covered the Knowledge Tools page, here are a few more:

IronPython in Action: Chapter 5 & 6 Available

Chapters 5 & 6 of "IronPython in Action" join the first four chapters in the Manning Early Access program:

Men of Iron Podcast

Craig Murphy has posted an interview with Michael Foord (uhm... me) on IronPython and the Dynamic Language Runtime and with Dave Verwer on Ruby and IronRuby:
The interviews were both done at Mix UK.

Friday, September 28, 2007

The IronPython 2 Hosting API

Shri Borde has just posted to the IronPython mailing list a link to a document on the IronPython 2 hosting APIs. It is from May, so things have changed a bit since then, but it will still be very useful for anyone embedding IronPython 2 (or any DLR based language) in an application:

Inside IronRuby

Cory Foy has posted a blog entry examining a bit of how IronRuby weaves its magic. All of the entry is interesting, and a lot of it is relevant to IronPython as they share code through the DLR:

Thursday, September 27, 2007

Resolver: The IronPython Spreadsheet

Jon Udell has posted a blog entry and screen cast on a new spreadsheet application written in IronPython:
Entering formulae into a spreadsheetis a form of functional programming, and is overwhelmingly the most common form of 'end user programming' there is. Jon feels that Resolver has something new to offer in this area. Smile

The clr Module

Two more blog entries from Haibo Luo, exploring the IronPython 'clr' module (which is the key to interacting with the .NET framework). Whilst aimed at .NET programmers exploring IronPython for the first time, the entry on 'AddReference' is particularly useful for understanding .NET assemblies and how IronPython works with them:

Wednesday, September 26, 2007

IronPython: Grab the .NET Type

A blog entry by Haibo Luo, on using IronPython to play with .NET types including nested classes, generics and what not:

IronPython/Mono Benchmarks

Seo has done some benchmarks of IronPython 1.1 on Mono, showing how performance has improved from 1.2.3 (February this year), through 1.2.5 (August) to current SVN head:

Monday, September 24, 2007

IronPython: My .NET Exploration Tool

IronPython is a great way to explore .NET assemblies; you can create and experiment with live objects using the interactive interpreter - as *CODER discovered. His blog entry shows using the 'System.Security.Cryptography' assembly:

Sunday, September 23, 2007

A Collection of Links

A collection of links to people discovering IronPython:

Finding the 'greatest common divisor' and fibonaci using IronPython.

Making .NET applications scriptable with IronPython.

Working with the 'Team Foundation Server' through the IronPython interactive interpreter.

A script for interactively working with Oracle. The text is in German, but the code looks straightforward.

And some news that is related to IronPython:

Oh, and I don't think I posted a link here to my set of articles / downloads / online examples for IronPython and Silverlight:

Wednesday, September 19, 2007

CLR Inside & Out: Article on the DLR

The latest issue of 'CLR Inside and Out' has an article on IronPython and the Dynamic Language Runtime:

Sunday, September 16, 2007

Microsoft Knowledge Tools

An interesting quote on the Microsoft Knowledge Tools page:

To make research progress, we build prototype tools and get them into the hands of these types of users. We build many of our prototype tools on top of IronPython, a version of Python for .NET.

Python is like a virus, once it infects one part of a company it spreads everywhere...

Sunday, September 09, 2007

Managed DirectX via IronPython

Andy Sy has put up a three part tutorial on using managed DirectX with IronPython:

Introduction to IronPython and Silverlight

My PyCon UK talk, introducing IronPython on Silverlight, is now online.

This goes through creating a minimal IronPython application for Silverlight and explores the Silverlight APIs. The Web IDE has also been updated and now has several examples built-in. More details to follow, but for the moment:

IronPython in Action

The first four chapters of IronPython in Action, the 'forthcoming' book, are now available via the Manning Early Access Program. The first chapter is free to download.
This means that you get access to the book as it is being written (and get the chance to point out our mistakes!).

The first five chapters (the fifth should be added in the next few days) are an introduction to .NET, a Python tutorial, and then a walk through an example structured Python application illustrating both the Python language and aspects of the .NET framework.

The rest of the book is going to be much more 'recipe style' and cover a wide range of aspects of .NET (ASP, databases, web services, working with Windows and so on), deeper into Python (testing, protocols, metaclasses and so on) and also embedding and extending IronPython.

Make Twitter Talk with IronPython

More code from Davy Mitchell. This time showing how to use the Twitter XML API from IronPython:

IronPython 2.0 Alpha 4 Released

IronPython 2.0 Alpha 4 has just been released:
The most significant changes in this release include:
• Completion of the –X:Interpret mode and its incorporation into the eval and exec functions
• The addition of the -X:PreferComDispatch mode
• Improved performance for the itertools module and the importing of CLR-based modules
• A number of bug fixes
Like previous Alpha releases, quite a bit of refactoring work has been completed and this process is still ongoing. In particular, effort has been put into making .NET interoperability easier for language implementers on the DLR.

-X:PreferComDispatch enables direct support for IDispatch COM objects, and includes support for indexers and output parameters in IDispatch-based calls. This will improve IronPython’s integration with IDispatch-based COM APIs such as in Microsoft Office.

Some of the notable bug fixes included in this release are:
_iter_ is now available for all iterable .NET objects with the exception of System.String (CPython’s string type does not support this)
• isinstance now works on interfaces
• fixed null reference exception when attempting to read a write-only (.NET) property
• fixed invalid IL generated for Python code similar to ‘System.IComparable.CompareTo(1,1)’,

Thursday, September 06, 2007

Semantic Password Generator

JoeSox has written a 'Semantic Password Generator' in IronPython, that uses Wordnet.
Sources and documentation are available.

Wednesday, September 05, 2007

SharePoint, IronPython, and another lesson in the virtue of laziness

A blog entry from Jon Udell on using IronPython to work with documents accessed via a Sharepoint server:
I’m doing an internal project that involves reading several different data sources from a SharePoint 2007 server, merging them, and posting the merged data back to the server. Being lazy, I wanted to use IronPython, write as little code as possible, and do everything dynamically.

Embedding IronPython in a Silverlight (C#) Application

I previously blogged about how to use the IronPython engine from inside a compiled C# Silverlight assembly. This worked fine when you used the resulting assembly from IronPython, but not when used standalone! This was due to a bug in the platform assumptions that the DLR makes, but with help from the IronPython mailing list a workaround has been found:
It means a bit of extra boilerplate code, but hopefully before Silverlight 1.1 final this code will have moved into the DLR and all will be rosy again...

Oh, and by the way... IronRuby is now Live on RubyForge. John Lam has build instructions and news on the latest updates on his blog.

Minimise a Winforms Application to the System Tray

Davy Mitchell has posted an example of how to minimise a Windows Forms application to the system tray:

Silverlight 1.0 Released, Plans for 1.1, and Microsoft / Novell Officially Collaborate on Silverlight for Linux

A flurry of 'official' news on Silverlight.

Silverlight 1.0 has just been released and Scott Guthrie has outlined the plans for Silverlight 1.1:

Now that Silverlight 1.0 is out the door, my team is cranking hard on our Silverlight 1.1 release.

Silverlight 1.1 will include a cross-platform version of the .NET Framework, and will enable a rich .NET development experience in the browser. It will support a WPF programming model for UI - including support for an extensible control model, layout management, data-binding, control skinning, and a rich set of built-in controls. It will also include a subset of the full .NET Framework base class library you use today, including support for collections, generics, IO, threading, globalization, networking (including sockets, web-services and REST support), HTML DOM, XML, local storage, and LINQ.

You'll be able to use any .NET language to develop a Silverlight application (VB, C#, JavaScript, Python, Ruby, Pascal, and more). It is going to really open up a lot of new development opportunities.
Silverlight currently supports Windows and Mac OS. The Mono team have been working hard on a 1.1 compatible release that supports Linux, called Moonlight.

Microsoft have now decided that this will be the 'official' way that Linux is supported and are collaborating with the Mono team on Moonlight:
The highlights of the collaboration are:
  • Microsoft will give Novell access to the test suites for Silverlight to ensure that we have a compatible specification. The same test suite that Microsoft uses for Silverlight.
  • Microsoft will give us access to the Silverlight specifications: details that might be necessary to implement 1.0, beyond what is currently published on the web; and specifications on the 1.1 version of Silverlight as it is updated.
  • Microsoft will make the codecs for video and audio available to users of Moonlight from their web site. The codecs will be binary codecs, and they will only be licensed for use with Moonlight on a web browser (sorry, those are the rules for the Media codecs).
  • Novell will implement Silverlight 1.0 and 1.1 and will distribute it for the major Linux distributions at the time of the shipment. We will offer some kind of one-click install for Linux users (no "Open a terminal and type su followed by your password..." as well as RPM and DEB packages for the major distros and operating systems.
Hopefully all the shared specifications might see full docs for the CoreCLR APIs (shipped with 1.1) arrive a bit sooner...

An important part of developing websites that use Silverlight is the desgn tool Expression Blend. There are free betas of this available, but it is a commercial product and is not cross-platform.

The Mono team are also developing a desgn product, called the Moonlight Designer.

Saturday, September 01, 2007

Bug in IronPython Visual Studio Integration

Aaron Marten manfully owns up to a bug in the IronPython Visual Studio integration, and explains the issues:

Why can't I show the "Add New Items" dialog in a WPF flavored project?

IronPython and Silverlight Resources

Chris Bowen has compiled a list of resources for using IronPython with Silverlight:

IronPython and Silverlight Resources

Friday, August 31, 2007

Mono 1.2.5 Released

Mono 1.2.5 has just been released. You can read the changelog here.

"This release fixes various issues that were exposed by IronPython 2.0 preview release and the Dynamic Language Runtime from Microsoft. They are both functional on this release."

Presumably this means that IronPython 2 (which is still in alpha) will now run on an unpactched Mono!

I also assume that the included version of IronPython is now 1.1 final rather than 1.1 alpha.

Other relevant changes:

Devirtualization optimization for sealed classes and methods, improving IronPython 2.0 pystone performance by 4%. Other programs can expect similar improvement [Rodrigo].

Invocation speed of non-multicast delegate methods has been increased by calling directly into the delegate, this improves IronPython 2.0 (pystone) performance by 25% [Zoltan Varga].

Math.Min and Math.Max are now inlined for signed integers and String.OrdinalCompare has been tuned to use these, which results in a 2-3% performance increase in running PyStone with IronPython.

Lots of other good stuff in there, including some support for the Mono implementation of Silverlight 1.1, Moonlight.

Wednesday, August 29, 2007

More Silverlight

A few more entries exploring Silverlight and IronPython:
If you serve Silverlight applications with IIS then this configuration guide may be helpful.

Manifold 8 - with IronPython Scripting

Manifold 8.00 has just been released. Included in the release highlights are 'IronPython Scripting'!

Manifold is a Geographic Information System package. Python has steadily been gaining ground as the standard scripting language for GIS applications.

Via Spatially Adjusted.

Tuesday, August 28, 2007

My First Look at DLR

Risman Adnan Mattotorang posts his exploration of the Dynamic Language Runtime:

My First Look at the DLR

In his previous entry he links to Nua, a fledgling project to implement Lua for .NET using the DLR.

Friday, August 24, 2007

Silverlight and IronPython

I've been doing some experimenting with Silverlight and IronPython. You will need Silverlight 1.1 Alpha Refresh to use these:
I have one more chapter to complete before IronPython in Action can go out to 'early access'. After that it is full steam ahead preparing for my two Silverlight talks...

IronLisp Benchmark Updated

The author of IronLisp has rerun his benchmark, running them as a program with IronPython rather than in the interactive interpreter. This means that the code is compiled by the DLR first.

This time IronLisp comes out twice as fast as IronPython, but IronPython is twice as fast as CPython:

Benchmarks Updated

Thursday, August 23, 2007

Handling POST with HttpListener and ProgressBar

There are two new recipes on the IronPython cookbook:

Tuesday, August 21, 2007

A New DLR Based .NET Language: IronLisp

There is a new member of the 'dynamic languages on .NET' family: IronLisp

The announcment is here:
It is built on top the Dynamic Language Runtime, which is at the heart of IronPython.

You can see a syntax example, including some benchmarks comparing against Python / IronPython / C# at: Benchmarks.

If you're interested in .NET languages, you may be interested in the Duck Typing Project. This is a library that implements duck typing for .NET, and is written in C#. The interesting thing is that it implements compile time duck typing rather than runtime.

From the website:

Duck typing is a principle of dynamic typing in which an object's current set of methods and properties determines the valid semantics, rather than its inheritance from a particular class.

The library handles a lot of casting between types that you would other wise have to do yourself, for example:

Casting a given object to a given interface that it does not implement by definition, but provides a compatible implementation of all its members. (This is done by dynamically generating a proxy type.)


Monday, August 20, 2007

Python.NET is Alive & Well

Python.NET is a project that hasn't had much publicity since IronPython became popular. Python.NET is a build of CPython with support for .NET, meaning that you can use .NET assemblies with ordinary Python (overcoming some of the limitations of IronPython - like the non-availability of C extensions).

There was recently an announcement (dated July 29th) about progress:

Good evening Python for .NET users!

I've a list of great news for you. In the past weeks I've spent some time in fixing and enhancing PythonNet.

  • PythonNet now works with Python 2.4 and 2.5. Python 2.6 compatibility is already prepared.
  • A bunch of small bugs were fixed and some new features implemented. Generics, overloading and variable parameter function should work better.
  • PythonNet also works under Un*x and Mono with UCS 2 and UCS 4 builds of Python. Two unit tests are currently failing.
  • The source repository contains project files for MS Visual Studio and MonoDevelop.
  • The clr module provides new features: AddReference, ListAssemblies(verbosity), preload
It sounds like Python.NET is alive and well...

Saturday, August 18, 2007

JVM Language Runtime (inspired by the DLR)

The DLR is at the heart of IronPython 2, and is a dynamic type system and language hosting system for .NET - abstracted out of IronPython 1. It makes creating dynamic languages for the CLR (the .NET VM) much easier and makes it possible for those languages to interact with each other (sharing a common type system).

Inspired by this, Charles Nutter (core developer of JRuby - Ruby for the Java VM) has started a similar project for the JVM:

JVM Language Runtime Project

This includes code and cooperation from the teams behind JRuby, Jython and Groovy - all prominent dynamic languages for 'Java-as-platform'.

Both JRuby and Jython are working heavily on their current implementations, but in the future both languages intend to use the 'JLR' to simplify and share their work.

Visio and IronPython

Two blog entries from Saveen Reddy, illustrating using IronPython with Microsoft Visio:

C# 3.0 as Python with Braces

A blog entry, by Saveen Reddy, comparing IronPython and C# 3.0 code side by side, using Notify Icon from the IronPython Cookbook as the example:

C# 3.0 as Python with Braces

Of course Python with braces isn't Python, but it could be worse...

Thursday, August 16, 2007

New and Updated Recipes in the Cookbook

There have been several new entries in the IronPython cookbook recently:

  • The IronPython 2 Parser - An example of using the IronPython 2 Parser API to extract the variable names used in a Python expression.
  • Screen Capture - Taking a screenshot from IronPython with Windows Forms.
  • Using Python Functions from C# - An example of embedding IronPython 2 in C# that creates IronPython functions and calls them from C#.
A while ago Andrzej Krzywda posted an example of downloading web pages with IronPython. It turns out that the examples can be made even shorter. See Accessing the Web with IronPython for details.

The IronPython Cookbook Downloading a Web Page recipe has been appropriately updated.

Silverlight Experimental 'Mini-Web-IDE'

I've posted an example IronPython Silverlight project - a mini web IDE that lets you enter and execute blocks of Python code in the browser. Read the description (or download the project) here:

About the Silverlight IronPython Web IDE

You can actually try it out here:

Silverlight IronPython Web IDE

This is useful as an example of an IronPython Silverlight project, but is also a useful tool for exploring the Silverlight assemblies.

How Badly will IronMonkey Hurt Performance?

'Someone' (couldn't find a name - sorry) posts a blog entry arguing that the implementation strategy for IronPython on Tamarin (IronMonkey) must be slow:

How Badly Will IronMonkey Hurt Performance?

Unsurprisingly, I'm not convinced:

My Response

In a further non-surprise, the original poster is not convinced by my response:

Perspective on Python Performance

Windows Forms Transparent Label

Davy Mitchell posts an improved version of his transparent label for Windows Forms:

IronPython - Transparent Label 2

Walkthrough of ASP.NET DataBinding with IronPython

A walkthrough of data binding in ASP.NET with IronPython:

DataBinding in ASP.NET with IronPython

ASP.NET with IronPython, Silverlight DLR Console Prototype

Ronan Geraghty has posted an example of using IronPython with Silverlight to create an ASP.NET site:

ASP.NET with IronPython, Silverlight DLR Console Prototype

Friday, August 10, 2007

IronPython in Visual Studio 2008 SDK

From the blog of Eric Lam, comes a post on the Visual Studio 2008 (what was codename Orcas), including these snippets:

2.1. Windows Presentation Framework (WPF) Designer Extensibility

The IronPython sample is enriched with Windows Presentation Framework (WPF) designer extensibility. This sample provides guidance for customers who want to extend Visual Studio to integrate their .NET based languages with XAML and WPF Designer, which are introduced in Visual Studio 2008. This sample is intended to showcase these extensibility points. The sample shows how to write a basic WPF application for a managed proprietary language by using IronPython as an example. The sample also illustrates how to handle events by using EventBindingProvider.

2.3. Expression Evaluator

Language integrators require an expression evaluator (EE) to work in the context of their programming language. We have created a new sample that shows how to write a basic EE for a managed proprietary language by using IronPython as an example.

Microsoft Visual Studio 2008 SDK August 2007

Wednesday, August 08, 2007

FbConsole 0.7.2 Release

There has been a fresh release of FbConsole, the "Firebird RDBMS Tool Powered by IronPython" (including a funky screenshot).

FbConsole 0.7.2

IronPython and CPython Sets

Flávio Codeço Coelho posts a performance comparison of IronPython and CPython sets.

CPython comes out a long way ahead, so more tuning needed for the IronPython set implementation:

Set Implementation Performance

Using Python Classes from .NET

IronPython classes aren't true .NET classes, not least because you can swap out their base classes dynamically, add methods and have all sorts of dynamic fun with them if you really want to.

There are ways to use IronPython classes from C# (and other .NET languages) though. This cookbook recipe shows one approach, which involves inheriting from a C# class:

Using Python Classes from .NET

Havana CMS

Lazy Coder reports his impressions working on Havana CMS in the past 2 months. Havana CMS is developed in C# 3.0 and IronPython.

Havana: Hybrid Programming

Saturday, August 04, 2007

A Web Based IDE for Distributed Programming (Part 2)

Mitch Barnett shows how far he has got with his web based distributed IDE for IronPython, and explains his plans for the future (including a release schedule as Open Source):

A Web Based IDE for Distributed Programming (Part 2)

DebuggerTypeProxy for IronPython Old Style Classes

Haibo Luo shows how to use the DebuggerTypeProxyAttribute to make debugging IronPython easier in Visual Studio:

DebuggerTypeProxy for IronPython Old Style Class and Instance

Thursday, August 02, 2007

IronPython, Visual Studio & WPF Designer

Aaron Marten explains how to get the IronPython integration sample working with Visual Studio with WPF Designer:

IronPython Integration Sample and the WPF Designer

Monday, July 30, 2007

Simpler Method to Get Logical Drives

Steve Gilham finds an easier way of listing the logical drives with IronPython (one that also works on Mono):

Simpler method to get logical drives

IronPython Telnet Controller for LiquidSoap

R Tyler Ballance shares a Telnet client written in IronPython (using Windows Forms and targetting Mono) for controlling an icecast2 music streaming server via LiquidSoap.

Hacking with IronPython

Sunday, July 29, 2007

Logical Drive Enumeration in IronPython

Steve Gilham reveals some of the magic of the System.Management assembly.

Saturday, July 28, 2007

Building FePy on Mac OS X

My description of the steps I went through to compile FePy from source on Mac OS X:

Building FePy on Mac OS X

WPF Examples

Steve Gilham has posted some IronPython examples of using WPF, translated from some IronRuby examples:

Hello WPF in IronPython

Steve also has another blog: Tinesware. This has example code for a program that calculates hashes of files by dragging and dropping onto a window (code for Python, Jython and IronPython) and also a screenshot of an FTP program he is writing with IronPython.

Friday, July 27, 2007

Silverlight 1.1 Refresh

There is a new release of Silverlight 1.0 out, version RC1. Silverlight 1.1, which has the DLR / IronPython integration has also had a 'Refresh' released (which apparently is different from a new version somehow).

This upgrades Silverlight 1.1 to use the new Silverlight 1.0 RC1 core. This does change the Sivlerlight activation model, so may break some code.

Microsoft Visual Studio Orcas has also had a new release - beta 2. This is the version of Visual Studio that can compile assemblies and build projects for Silverlight. The beta versions are free, but of course are windows only.

Tim Sneath has details and download links for all of this:

Silverlight 1.0RC1 is Here

IronPython License Submitted to the OSI

Microsoft have submitted their Shared Source Licenses to the OSI for approval as a recognised 'Open Source' licenses:

Intelligent Design, the OSI and Microsoft

There is now part of the Microsoft website devoted to open source, plus a blog from thier open source labs called Port 25.

New Release: IronPython 2.0 Alpha 3

A new version of IronPython 2 (still in alpha) has been released. See:

Announcement by Dino Viehland

The improved support for dynamic sites from IronPython has resulted in a performance improvement for a number of scenarios including method lookup, indexing operations, and member access.

This release brings IronPython up to date with the version of the DLR in the recent IronRuby release. It also includes initial support for an 'evaluation mode', where IronPython runs as an interpreter rather than a compiler.

As usual, the new release can be downloaded from IronPython on Codeplex.

IronMonkey: IronPython on Tamarin

Brendan Eich has announced three new Mozilla projects:

Brendan's Roadmap: New Projects

These are 'Action Monkey', 'Screaming Monkey' and 'Iron Monkey'. They are all to do with integrating 'Tamarin' (the bytecode JIT VM that Mozilla was 'given' by Adobe) into Firefox.

All three projects are led by experienced Pythonistas. 'Iron Monkey' is led by Seo Sanghyeon, and involves bringing IronPython to run on Tamarin!


Tuesday, July 24, 2007

Dynamically Compiling C# from IronPython

With IronPython it is possible to dynamically compile C# to in-memory assemblies and access them from the running application.

This can be used to access attributes, not normally available to IronPython - as well as many other tasks.

Dynamically Compile C# from IronPython

.NET Dynamic Languages Group on Facebook

David Peterson has created a Facebook group for dynamic languages on .NET:

.NET Dynamic Languages Group on Facebook

IronRuby Released and IronPython to Accept User Contributions

A pre-alpha version of IronRuby has just been released:

A First Look at IronRuby by John Lam

Scott Guthrie has posted a good introduction to using it (interacting with WPF):

First Look at IronRuby by Scott Guthrie

John Lam's announcement about IronRuby included a couple of surprises. It is to be hosted on Rubyforge rather than Codeplex and will accept contributions from the community.

This is something that hasn't so far been possible with IronPython, so members of the community were keen to hear if the same thing would also reply.

Jim Hugunin responded on the IronPython mailing list that this will happen in the long term, but we would have to wait...

Tuesday, July 17, 2007

Silverlight Links and Reference

Marchon has put together some link and reference pages on Silverlight - including 'Silverlight in 90 Seconds' and 'Silverlight for Python Programmers':

Silverlight for Python Developers

Sunday, July 15, 2007

Qyoto / Kimono

The Qyoto / Kimono project allows you to write Qt / Kde programs with .NET languages, including IronPython:

The Qyoto project

Currently this is for Mono / Linux, but cross-platform capabilities are in the works.

Resolver is Launched

Michael Foord finally can tell the IronPython world what he has been working on in his day job. The product Resolver One is a 'rapid application development tool', for analysing and presenting business data using a familiar 'spreadsheet interface written in IronPython. This certainly shows that IronPython is more than a scripting language.

John Lam on the DLR

The " .Net Rocks" team interviews John Lam about his work on the DLR. As well as the DLR, there is interesting discussion about IronRuby, IronPython and the challenges of other .NET languages using classes created in a dynamic language.

Monday, July 02, 2007

Embedding IronPython 2

I missed this one a few weeks ago. It is an example of embedding IronPython 2 in C#:

DLR Hosting Services

Unfortunately due to a bug in the released binaries it only works with IronPython 2.0 Alpha 1 and not Alpha 2...

Windows Media Encoder

It looks like there is a lot of IronPython going on in Japan!

This is an example of using Windows Media Encoder Interop :

Windows Media Encoder の COM

Once again the text is in Japanese but the code speaks for itself...

IronPython in Japan

Apparently we've just missed it:

Python Workshop the Edge

Of course most of that page is in Japanese, but there are a couple of particularly interesting links:

IronPython and Dynamic Languages (pdf) (in English)

Looks like Mahesh has been having fun in Japan - nice presentation.

IronPython Hands On (pdf)

This one is in Japanese, but the code examples are easy to follow! A good winforms example with the TableLayoutPanel.

Sunday, July 01, 2007 1.4 Released is an automation tool designed to implement client-side functional testing of web applications under Internet Explorer 6 or 7, using languages such as C#, VB.Net or IronPython.

InCisif Software Released 1.4

Friday, June 29, 2007

IronPython 2.0 Alpha 2

IronPython 2.0 Alpha 2 has just been released:

IronPython 2.0 Alpha 2 on Codeplex

This release has various changes, but is not (yet) compatible with Silverlight as both products are changing rapidly at the moment.

Hopefully IronPython 1.1.1 will be following shortly...

Hot on the heels of FBConsole 0.6 is... FBConsole 0.7

Just after I discovered FBConsole 0.6 comes, uhm... FBConsole 0.7:

FBConsole 0.7.0 Released

Interestingly that announcement on Firebird news uses exactly the same wording from the post I made a few days ago. Maybe they think I understand Japanese?

Anyway "FBConsole is an IronPython and Windows Forms console for working with the Firebird database".

Silverlight and IronPython Demo

At the recent Mix conference in the US, Jim Hugunin and John Lam did a demonstration of Silverlight and the DLR. This is an hour long video showing off Silverlight, IronPython, IronRuby and explaining how long it fits together:

Mix Sessions Site
Direct Link to the Silverlight and the DLR Video

Thursday, June 28, 2007

Moonlight Desklets

Miguel de Icaza shows off some desklets that are part of the Mono Silverlight implementation (Moonlight), with several mentions of IronPython and how it fits in:

Hack week: Moonlight Desklets

It seems like the Mono folks are using Moonlight to implement some really cool tools...

A Web Based Distributed IronPython IDE

So is this crazy or brilliant? Either way, Mitch Barnett is doing it:

Web Based Distributed Programming IDE for IronPython

CarbonPython - Even More Python on .NET

Antonio Cuni has just announced CarbonPython:

CarbonPython - aka C# Considered Harmful

CarbonPython is an RPython compiler for .NET, which can statically compile a subset of Python (Restricted Python) . The resulting assemblies can be used from IronPython and C#.

You can also read my summary of the project.

FBConsole 0.6

I'm not entirely sure what this is, but it would appear to be an IronPython and Windows Forms console for working with the Firebird database:

FBConsole 0.6

Monday, June 25, 2007

IronPython from Boo

Not got enough Python on .NET? The Boo (a Python inspired language) cookbook shows how to use IronPython from Boo:

Using IronPython from Boo

Saturday, June 23, 2007

A Web Based Interactive Console for IronPython

Software Industrialization continues his exploration of web based IronPython applications with:

A Web Based Interactive Console for IronPython

Thursday, June 21, 2007

Implementing Silverlight in 21 Days

The Mono team have made an enormous amount of progress in implementing their version of Silverlight, Moonlight. Miguel de Icaza talks about what they have done so far, and how they got there in:

Implementing Silverlight in 21 Days

Wednesday, June 20, 2007

SilverKey Demo Day in July, Egypt

Mohammed Tayseer has just announced the SilverKey demo day, to be held in Egypt on July 7th:

SilverKey Demo Day

The developer day will focus on both static and dynamic languages on .NET.

MSSecurity Library

Navtej Singh reports on his almost successful experiments with Mohamed Sharaf's encryption helper library:

MSSecurityLibrary and IronPython

Tuesday, June 19, 2007

Reading CSV Files, Folder Backup, Interop and the SaveFileDialog on the IronPython Cookbook

New additions to the IronPython Cookbook include:

IronPython Standard Library Patch Accepted into Python

Guido has accepted a patch to the Python standard library inspect module as acceptable for inclusion in Python:

Inspect Patch for IronPython (and Jython?) Compatibility

The patch originates from the FePy project and could be in Python 2.6, and even the next bugfix release of 2.5. Note that Guido has only agreed that it can be applied, it hasn't actually happened yet...

It is however, a good (if small) example of IronPython feeding back into CPython. This patch benefits other alternative implementations of Python as well as IronPython

Python vs IronPython Round 2 (TileCache)

Bill Thorp continues his attempts to get TileCache working with IronPython. Now he discovers that the lack of os.access is part of the problem, but that it is available in FePy. Unfortunately FePy doesn't yet support IronPython 2 - so the struggle isn't over yet...

Python vs IronPython Round 2

TechEd Videos

As well as the demos from the IronPython TechEd talks, there are now some videos online:

Dev315 - IronPython and Dynamic Languages on .NET

Web324 - Dynamic Languages on the Web

Monday, June 18, 2007

IronPython and TileCache Woes

Bill Thorp reports on his abortive attempts to get TileCache to work with IronPython:

Python vs IronPython: TileCache

Perhaps the lazy web can help him out...

Pointers for TechEd Demos

Mahesh has posted links to the demos he showed at TechEd:

IronPython TechEd Demos

These include Robotics, ASP, Web services and Powershell demos.

Sunday, June 17, 2007

Benchmarked: F#, C# and IronPython

Robert Pickering does some benchmarking:

F# versus IronPython

Unsurpisingly F# is faster than IronPython.

Something that will also be no surprise, C# is more verbose than both IronPython and F#. What might come as a surprise is that F# is almost as terse as Python.

NAnt Build file for IronPython

Seo reports on switching the FePy makefile to NAnt:

NAnt build file for IronPython

This was inspired by the changes in IronPython 2, but Seo is happy with the switch and NAnt works well with Mono.

Charting, MS SQL and MSO, & the CPython Server

Wish IronPython could talk to CPython? Perhaps the CPython server can help (execute arbitrary Python code on a localhost webserver which returns the response defined in the code):

The CPython Server

Iain has created a comprehensive page on the IronPython Cookbook for:

Managing SQL Server with SMO (Server Management Objects)

Want to generate charts and graphs with IronPython? ZedGraph is a good fit:

Generating Charts with IronPython and ZedGraph

Friday, June 15, 2007

Silverlight with HTML & Windows Flying Dudes on IronPython

Strange flying dues on Windows (and controlled by IronPython) in:

The Agent Server Objects

and a hint about programming html with Silverlight:

Silverlight and the London .NET Group

Web Based Source Code Editor for IronPython

Ok, so an IDE is always my example of an application that you wouldn't want to use in a browser, and therefore proof that web-apps won't take over the world... That aside, Mitch Barnett has started working on a web based code editor for IronPython:

Web Based Source Code Editor

More IronPython & Unicode

Calvin Spealman feels that having 'str' as Unicde departs too far from Python compatibility:

Python, IronPython, Apples, and Oranges

There are some interesting comments!

The debate is picked up and summarised in:

InfoQ: The IronPython, Unicode and Fragmentation Debate

Monday, June 11, 2007

IronPython and Unicode

Because IronPython strings are .NET strings, they are already Unicode strings. This means that string handling can be slightly different than with CPython. Generally things are better (less places where implicit decodes happen), but as always there are pitfalls. This entry notes a couple of the differences:

IronPython and Unicode