Dynamic Languages Shine in Silverlight

Microsoft announces a new Dynamic Language Runtime to enable dynamic languages such as Python, JavaScript and Ruby to talk to each other, and the company is using Silverlight as a distribution platform for the DLR.

LAS VEGAS—A "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."

Moreover, "At the show were going to be shipping bits that let people use JavaScript and Python," Goldfarb said. "And were going to be demo-ing Ruby in the keynote working on top of Silverlight. Its a very, very cool story."

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 model—great features that make it easy to build a language on top of it."

/zimages/3/28571.gifClick 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."

That is because "In the past, Ive tried to write code in AJAX [Asynchronous JavaScript and XML] and Ive tried to write code in Flash," Hugunin said. "When I write code in both of those "languages" I find that theyre platforms. I find that Im writing the program in my head and then figuring out how to turn it into AJAX code. Nobody writes AJAX code directly. Everybody figures out what they want to do and then figures out how to turn that into AJAX code," he said. However, "people do write Python code directly all the time. And Silverlight was kind of a revolutionary thing for me in that I could just be writing Python code that just said what I wanted to say and it ran in the browser, because somebody else had built a complicated platform for me."

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."

Next Page: Talking Points