TechEd 2007: IronPython May Rival C# for XNA Game Development
ORLANDO - Yesterday's TechEd demo of building an XNA Game Studio Express version of Asteroids using C# appeared to indicate the resurgence of low-level (in the processing sense) programming languages in experimental development.
But this morning, Microsoft's lead program manager for the Common Language Runtime team, Mahesh Prakriya, may have one-upped C#, showing another XNA revamp written by IronPython developer Jim Hugunin, of the exact same demo package, but using Microsoft's dynamic language IronPython instead.
IronPython is very different from C#, especially because it can be run from an interpreter console, and its code is not compiled. But like C#, its code is also managed by the .NET Framework, so it has just as much access to the XNA graphics library as does C#.
In a later demo, Prakriya showed IronPython 1.1 managing a wirelessly controlled robot whose programming borrows functionality from Microsoft's experimental robotics library. And earlier, he also showed how an IronPython console can be made to recognize handwriting from a tablet PC, convert that handwriting to legible text, and then speak that text using the speech recognition library, all using only six lines of code. Then he showed the creation of Vista desktop gadgets such as clocks, using a XAML file and references to the Silverlight library. The direct implication: Try doing that in C#.
During another demonstration, we learned that the team's Dynamic Language Runtime experimental console is actually a Silverlight application, whose front end is explained in a XAML file.
The DLR console can be used as a kind of "XAML canvas," Prakriya showed, letting developers build XAML front-ends on a trial-and-error basis, and exporting the results when they look just right.
The application provides an interactive console for trying and running IronPython, Ruby, and other dynamic language applications, with support for Visual Basic coming soon.
Prakriya confirmed his team is working on a 2.0 version of IronPython whose goal is to encompass full compatibility with the Python 2.5 language, which includes extended features for dynamic exception handling.
Photos and more information are forthcoming from this final day of TechEd 2007.