Tuesday, January 06, 2009

John Udell is a well known blogger with an interest in Python, who now works for Microsoft. Recently he has been exploring various aspects of working with Microsoft technologies with Python, including several posts on using the new cloud computing platform Azure.

But what happens behind the scenes is quite interesting to me. The URL hits a deployment in the Azure cloud where I’m hosting an IronPython runtime. Then it invokes that runtime on a file that contains this little Python program:

hello = "Hello world"

Finally, it gets back an object representing the result of that program, extracts the value of the hello variable, and pops it into the textbox.

I’m exploring the viability of Python as a way of programming the newly-announced Microsoft cloud platform, Azure. Partly that’s because I love Python, but mainly it’s because I believe that the culture surrounding Python and other open source dynamic languages can fruitfully cross-pollinate with the culture that infuses Microsoft’s platforms.

It isn't as straightforward as he'd hoped - both because of the lack of C extensions used by standard library modules and because of the Azure security policy.

Jon does however turn his proof of concept into "a service in the Azure cloud that aggregates calendar events from Eventful.com and from a diverse set of iCalendar feeds".

Jon explores the problems of working with Azure from IronPython - Azure runs in a 'medium trust' environment, something that only partly works with IronPython. He also talks about the blurring of the lines between static and dynamic languages:

Along the way, I’ve been recalling something IronPython’s creator, Jim Hugunin, said at the Professional Developers Conference back in October. Jim’s talk followed one by Anders Hejlsberg, the creator of C#. Anders showed an experimental future version of C# that makes use of the Dynamic Language Runtime which supports IronPython and IronRuby on .NET. The effect was to create an island of dynamic typing within C#’s otherwise statically-typed world. We all appreciated the delicious irony of a static type called ‘dynamic’.

Jim might have sounded a bit wistful when he said: “I’m not sure what a dynamic language is any more.” But I think this blurring of boundaries is a wonderful thing. Many smart people I deeply respect value the static typing of C#. Some of the same smart people, and many different ones, value the dynamic typing in languages like Ruby and Python. If I can leverage the union of what all of those smart people find valuable, I’ll happily do so.

His more recent posts track the development of this project, including how his experience of Python development is affecting the C# he writes.