Thursday, May 31, 2007

Zen of the DLR and DLR Experiences

John Lam has published two sets of slides from the 'compiler dev lab'. Both are on the DLR runtime that is at the heart of IronPython 2, and contain interesting details about Dynamic Languages, the .NET framework, IronPython and the DLR.

Wednesday, May 30, 2007

IronPython Cookbook Wiki

I've created an IronPython Wiki, with code examples for .NET and IronPython: - The Cookbook Wiki

There is already some interesting content on there, and hopefully more to come. Feel fre to join in and add your own favourite, silly or useful snippets...

Silverlight Components

In order to implement the Vista Smalltalk environment for Silverlight, Peter Fisk has implemented various support components for Silverlight.

These (now) include:
  • TextBox
  • Window
  • Desktop Menu
  • Context Menu
  • ListBox
  • ScrollView

And over the next few days, he expects to add:

  • SplitterView
  • TreeView
These components should be available for all Silverlight languages (including IronPython of course), which should make it easier to do something practical with Silverlight...

How to download a web page using IronPython

Andrzej Krzywda provides two code snippets for downloading a web page using IronPython and .NET classes.

Implementing c# style indexers in ironpython

Sunil Pottumuttu provides a code example of howto create a C# style indexer with IronPython.

Monday, May 28, 2007

IronPython in a Virtual Desktop (in a Browser!?!)

The front page of the Vista Smalltalk Website is currently showing a screenshot of IronPython running on the Virtual Desktop - inside a web-browser...

This looks like a very interesting test and development environment for IronPython on Silverlight.

The code shown illustrates using some of the core-CLR assemblies from IronPython, plus it benchmarks "a million iterations involving assignments in just over two seconds (3GHz Pentium) - this is orders of magnitude faster than traditional JavaScript".

'Orders of magnitudes faster' sounds good for web applications, but I have no idea how this compares to the upcoming alternatives...

The code isn't available yet, and I'm not sure what you'll be able to do with it (although as a testing and experimentation environment it could be awesome), but it certainly looks cool!

Saturday, May 26, 2007

IronPython and .NET 3.5

The Lazy Coder presents a (terse) report on using IronPython with .NET 3.5:

.Net 2.0 to 3.5 conversion notes

Building a Second Life Bot

Second Life Insider has an interesting article (by Tateru Nino) on building a bot in Second Life - using libsecondlife and IronPython!

Under The Grid - Building a simple bot in ironpython

IronPython TechEd Talks

There are several IronPython focussed talks at the Teched Conference:

IronPython at TechEd

These include:

  • WEB06-TLC - Developing Data Driven Applications Using the New Dynamic Data Controls in ASP.NET
  • DEV315 - "IronPython" and Dynamic Languages on .NET
  • WEB324 - Dynamic Languages on the Web
TechEd 2007 is a Microsoft developer conference, in Orlando June 4th - 8th.

Friday, May 25, 2007

IronPython and PyFit

Steve Gilham posts some work-arounds for using the PyFit module with IronPython 1 and 2:

IronPython and PyFit

Silverlight and the Compiler Lab

Miguel de Icaza continues his report from the Microsoft Compiler Lab (on the DLR):

Compiler Lab: Second Day

Interesting snippets about the DLR. Miguel's blog has been added to Planet IronPython, so you can keep up with the (Mono) Moonlight implementation of Silverlight there.

Meanwhile, Peter Fisk has 'Vista Smalltalk' running on Silverlight (and in the browser):

Smalltalk in Silverlight

(Which also works on the Macintosh)

You can try it yourself at: Vista Smalltalk Silverlight Test

Enumerating Windows Media Player library Contents

Saveen Reddy has a blog entry illustrating how to enumerate your Windows Media Player library contents, using both Powershell and IronPython:

Enumerating Windows Media Player library Contents

(Actually this entry doesn't work as it stands - there is a corrected version on the IronPython Cookbook.)

Tuesday, May 22, 2007

Moonlight: Silverlight on Linux

Work on the Linux port of Silverlight (by the Mono team) is well underway. The project page shows the state of the project, the work needing to be done, and a discussion of some of the issues:


Miguel de Icaza has been prototyping some ideas for the video streaming and graphical aspects of Silverlight, and has a report on the DLR presentation from the first day of 'Compiler Lab':

Moonlight, Trivial Video and Canvas

Monday, May 21, 2007

Silverlight for Mac Designers

Not strictly (just) about IronPython, this blog entry by Don Burnett is about Silverlight development tools on the Mac:

Silverlight for Mac Designers

Sunday, May 20, 2007

IronPython Community Edition: Sixth Release

There is a fresh release of the IronPython Community Edition (FePy)

FePy Download Page

FePy Homepage

Changes in this release:


Updated to IronPython 1.1.


Huge improvements to AST support.
Support inspect.getargspec().
Pickle integration with .NET Serialization.
platform module that can handle IronPython. (Anthony Baxter)
Implement os.access(). (Rachel Hestilow)


pybench benchmark (thanks to platform module).
pyflakes code checker (thanks to AST support).
wsgiref synced to 2.5.1.


You can read the summary of applied patches here.

New in this release:

Thursday, May 17, 2007

IronPython 2 Performance on Different Platforms

In the DLR Talk at Mix '07, Jim Hugunin claimed a 12% improvement in performance between IronPython 2 and IronPython 1.

Seo Sangyheon ran some tests, and discovered that IronPython 2 is either faster or slower; depending on what platform it runs on...

IronPython 2 compared to IronPython 1:
 Mono 1.2.4+: -32%
Whidbey: -21%
WinFX: +6%
MIX07 (Orcas?): +12%
This shows that IronPython 2 makes heavy use of some of the improvements in recent versions of the CLR runtime.

IronPython 2 Really Works on Mono

Perhaps the earlier post was premature, but either way - IronPython 2 (and the DLR) really works on Mono now:

Includes amusing IRC transcripts around the subject and some cool pictures of penguins...

Wednesday, May 16, 2007

DLR Implementation: Language Trees

Jim Hugunin has posted another blog entry:

DLR Trees (Part I)

This is about how the DLR builds language trees (an AST or CST I guess?) for representing dynamic languages. These are unlike the trees that C# compilers use because they are untyped (and unbound).

"The value of having dynamic languages target this tree form is that we can perform lots of optimizations in the DLR layer on behalf of the language implementations."

Monday, May 14, 2007

A Simple HTTP Server

An article on creating a Simple HTTP Server with IronPython and the HttpListener class:

Simple HTTP Server in IronPython

This article also touches on various parts of the .NET framework, including text encoding, asynchronous callbacks, URI and XHTML escaping, and creating a simple Windows Forms dialog.

Sunday, May 13, 2007

Silverlight and an IronPython Bouncing Ball

The first implementation of something useful with IronPython and Silverlight. Yup, it's a bouncing ball:

Bouncing Ball in IronPython

Aaron Leiby has made the sourcecode available to play with.

Saturday, May 12, 2007

IronPython and "Project Jasper"

Project Jasper is a(nother) new project from Microsoft for interacting with databases:

Project Jasper is geared towards iterative and agile development. You can start interacting with the data in your database without having to create mapping files or define classes. You can build user interfaces by naming controls according to your model without worrying about binding code. Project Jasper is also extensible, allowing you to provide your own business logic and class model. Since Project Jasper is built on top of the ADO.NET Entity Framework, it supports rich queries and complex mapping.

Jasper is designed for CLR languages with late-bound facilities such as VB and IronPython. (Interesting to see new research in Microsoft that targets IronPython rather than C#.)

The project CTP includes some IronPython examples, and there are a couple of blogs that illustrate playing with Jasper from the IronPython interactive console:

A walkthrough the Jasper API with IronPython - Part 1
Using the Entity Framework with IronPython 1.1 in Project Jasper

Friday, May 11, 2007

Silverlight Console (and Silverlight Interactive Interpreter)

Jamie Cansdale has been exploring running Silverlight programs as console applications, rather than in the browser.

His experimenting includes the IronPython interactive shell running as a console application inside Silverlight. The reason for this experimentation is 'so that unit tests can be executed inside the CoreCLR'.

IronPython 2.0 Alpha (and the DLR) on Mono

Seo Sanghyeon reports that IronPython 2.0 Alpha 1 now compiles with the SVN version of Mono:

Mono revision later than 77232 compiles IronPython 2.0 Alpha 1 without any modifications besides makefile patch.

Wednesday, May 09, 2007

Silverlight: Dynamic Languages in the Browser

Along with the new release of IronPython comes Silverlight. Silverlight is the new name for WPF/E (Windows Presentation Foundation Evrywhere). This, amongst other things, is a sandboxed version of the CLR (the .NET runtime) for browsers. This 'core CLR' is capable of running the DLR, so you can now script browsers with IronPython.


The DLR comes with Silverlight 1.1 alpha, not with 1.0 beta.

There are a set of demos for using IronPython with Silverlight up on CodePlex.

There is also a new ASP CTP (Community Technology Preview) called 'futures' which features Silverlight integration.

John Lam, one of the implementors of the DLR, along with IronRuby one of the languages that will run on top of it, has a couple of posts that link to a lot of the commentary (both positive and negative) about Silverlight and the DLR.

Silverlight: Love it or Hate it

Clearing the air about Silverlight and the DLR

Whilst I, of course, mainly link to the positive (including some screenshots of the IronPython demos).

Silverlight: Python in the Browser

IronPython and the Microsoft Dynamic Language Runtime

IronPython 2.0 Alpha 1

IronPython 2.0 has been released. This is built on top of a new dynamic language runtime for the CLR, called the DLR.

IronPython 2.0 alpha 1 release notes

Jim Hugunin has posted some blog entries about the DLR and its type system.

A Dynamic Language Runtime (DLR)

The One True Object Part I

The One True Object Part II

Fuzzyman on Board

Uhmm... hello to me. I'm now assisting Mark (who is busy jetsetting round the world at the moment) with the IronPython URLs blog. (By the way, if you find interesting articles that we haven't linked to, then email them to one of us.)

Just to get them out of the way, here are a few articles and blog entries that I've made recently on IronPython:

Python and Rich Comparison

A look at the Python rich comparison methods, including how IronPython is different (and better) than CPython in this respect.

Exploring Second Life with libsecondlife

Threading with IronPython

Benchmarking IronPython (on .NET and Mono)