Navigation


Upcoming courses:

  • Aarhus, Denmark, March 5 - 9, 2012
  • New York City, USA, March 26 - 30, 2012
Read more on our website

About me

Brian Holmgård Kristensen

Hi, I'm Brian. I'm a Danish guy primarily working with ASP.NET e-commerce solutions using Microsoft Commerce Server.

I'm co-founder and core-member of Aarhus .NET Usergroup (ANUG), which is a offline community for .NET developers in Denmark.

You can visit my View Brian Holmgård Kristensen's profile on LinkedIn or follow me on Twitter @brianh_dk. Also please feel free to contact me via e-mail Send me an e-mail.

Categories

On this page

IronPython and Dynamic Languages on .NET

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

RSS 2.0

Send mail to the author(s) E-mail

Total Posts: 36
This Year: 0
This Month: 0
This Week: 0
Comments: 10

Sign In

Follow me on Twitter @brianh_dk
 Wednesday, 07 November 2007

Now here was a session where I had absolutely no glue of what to expect. I have pretty much no experience working with dynamic languages other than writing some pretty simple JavaScript code from time to time. But sometimes it can be very good to anticipate in something without having any initial knowledge of what to expect because this usually wideness your perspective on the input you receive (I hope you know what I mean).

The goal of this session was to give us as the audience an understanding on how to use IronPython within our development. Makesh Prakriya, who is working on the IronPython team at Microsoft, gave us an introduction of what defines a dynamic language and where IronPython is resided in the system of .NET. The IronPython dynamic language is built on top of the Dynamic Language Runtime (DLR) which again is running on top of the well known Common Language Runtime (CLR).

Makesh mentioned four factors that makes IronPython interesting:

1. It is a true Python implementation.

2. It has seamless integration with .NET as it is built on of DLR.

3. It is open source released on a Microsoft Public License and also available on CodePlex.

4. It is the fastest implementation of Python out there being at least 70-80% faster than other implementations.

He told us a true story from Microsoft they had an expert (I did not catch his name) initially developing the 0.1 version using .NET to implement it to prove that .NET performance sucks, however they actually discovered that this was not the case, having even this initial version performing better than all the other implementations.

After enough talking about IronPython Martin Maly, another guy from Microsoft, did a level 400 demo to show how it all works under covers. Pretty advanced stuff but also very interesting to hear about, and I think I understood at least most of it :-)

Moving on we had Makish back to demo some IronPython stuff. He basically wrote all his code directly in a Console (see screenshot below) and with only very few lines of code he was able to create an application that allowed him to enable drawing on the form and having this being recognized as text and having this text being spoken by a Speech Recognizer. It was pretty cool to see how making handwriting to speech could easily be implemented using IronPython. This gave pretty good feeling of how easy it is with IronPython to load up any COM object, glue it together with something else and sort of poke around with it and execute its methods in a “quick environment” compared to having the environment of Visual Studio.

IMG_1415

The support of IronPython within Visual Studio is possible, but needs to be done through the Visual Studio SDK. This goes for both Visual Studio 2005 and Visual Studio 2008.

Makish continued with another demo where he talked about game development. With XNA you can write games in .NET targeting the Xbox 360 console. However since the Xbox uses the Compact Framework and because it does not support the ability to emit dynamically created MSIL into an assembly for execution, games written in IronPython are not supported on the Xbox 360. However you can run these games on the desktop. This problem will be addressed in the future.

The last demo from Makish was having a little robot on the stage and through the Microsoft Robotics Studio framework using IronPython as the language he made this robot drive around in front of the audience on the stage. He had a Windows Forms application with some steering buttons and communication was using Bluetooth technology. See below for a picture of the robot. It actually stopped just in front of where I was sitting.

IMG_1420

Last on the scene was Michael Foord, who demoed a real world product that has been implemented in IronPython; Resolver. Resolver basically is a very powerful and dynamic spreadsheet application which gives users the capability to write IronPython functions directly in the spreadsheet. Please refer to this blogpost for more information on Resolver.

Resolver consists of 30.000 lines of IronPython code, and has 100.000 lines of testing code.

Unfortunately there were no more time at this point – actually they went 30 minutes over time, but who cares as long as the content was exciting. I’m definitely intrigued by IronPython and I’m looking forward getting my hands dirty with some IronPython code in the future.

IMG_1414 IMG_1413

Posted on Wednesday, 07 November 2007 08:27:44 (Romance Standard Time, UTC+01:00)
# | Comments [0]