LAS VEGASA "very cool story" is among the many announcements Microsoft is making at its MIX 07 conference here.
The software giant announced its new Dynamic Language Runtime that enables dynamic languages to talk to each other and support for it on the Microsoft Silverlight platform. Microsoft is making the technology broadly available to the community via its permissive license and CodePlex community site.
"One of the things were doing with Silverlight is, beyond having it based on .Net, were going to be shipping support for dynamic languages inside the client-side runtime," said Brian Goldfarb, lead product manager of the Web Platform and Tools team at Microsoft. "So, basically bringing dynamic languages to the browser and doing that in a very easy-to-use way."
The story actually started nearly three years ago, when Microsoft hired Jim Hugunin in August of 2004. Hugunin, the creator of the IronPython implementation of Python for the .Net platform, is a development leader on Microsofts CLR (Common Language Runtime) team. "I joined Microsoft with IronPython, but I joined to make the CLR a better platform for dynamic languages," Hugunin said. IronPython was the start of something big, in that it represented a quality production implementation of a language. "Now that we have that one quality implementation, we started saying, Well, how can we make more languages run well on the platform and make them run even better?" Hugunin said.
"So the idea of the DLR is to support a broad spectrum of languages building on what weve learned already, taking all the things in the CLR," Hugunin said. "IronPython runs well in the CLR because its got great things inside it, like really excellent GC [garbage collection], JITs [just-in-time compilation], excellent type system that you can work within, debugging, profiling, sandbox security modelgreat features that make it easy to build a language on top of it."
Click here to read a Q&A with Jim Hugunin and John Lam.
In an interview with eWEEK last August, Hugunin said that if Microsoft is able to learn from the process of implementing IronPython on the CLR then "Ruby becomes easy." Indeed, in that interview, Hugunin said, "As I think about where we go beyond IronPython, what we really want to do next is try to generalize what weve learned."
Meanwhile, to help make the process of integrating Ruby onto the Microsoft platform a little easier, Microsoft hired John Lam, a Ruby guru and creator of the RubyCLR .Net to Ruby interoperability bridge, last October. Lam said he has been bootstrapping the Ruby effort and has a solid demonstrable implementation.
However, despite being a technological coup in itself, what makes the DLR stand out in this instance is its integration with Silverlight. Silverlight is a cross-browser, cross-platform plug-in, akin to Adobe Systems Inc.s Flash, for delivering the next generation of media experiences and RIAs (Rich Internet Applications) for the Web.
Hugunin said he anticipates broad adoption for the DLR, particularly because of its connection with Silverlight. He said that at various events and conferences, he has seen the Python community get "excited" about things like WPF (Windows Presentation Foundation) rendering APIs, XNA Game Studio APIs or Microsoft Robotics Studio APIs. But Silverlight goes further, he said.
"They always get excited about heres this platform that you can build on top of," Hugunin said of the Python community. "I think the Silverlight platform goes far beyond any platform weve been able to give them before. Now you can write your Python code and you can run it in any browser anywhere with an amazing set of APIs behind you. The Silverlight rendering is just great fun to play with."
While playing around with the platform, Hugunin said he found it surprising "how much fun it was to write in a real programming language, with all the kinds of structures that I was used to having working against a powerful set of APIs and have it run in the browser."
So, added Hugunin, "I think the ability to do this in the browser changes the game from what we can provide and what weve been providing before with IronPython, and then there are the other languages."
Lam agreed, adding: "I think the browser makes it very distinctive for people to build stuff on top of, which is something that you really cant find elsewhere. So to attract users to the platform were coming out of blocks with something that is really compelling."