Microsofts Growing Support for Dynamic Languages

The Microsoft DLR enables dynamic languages to run well on the .Net framework.

MONTREAL—Microsofts Dynamic Language Runtime sets the tone for enabling dynamic languages to run on the .Net platform, according to Jim Hugunin, a DLR architect at Microsoft.

Speaking at the conference on OOPSLA (Object-Oriented Programming, Systems, Languages and Applications) here Oct. 22, Hugunin said that with the use of dynamic or scripting languages growing, Microsoft was looking for a way to enable such languages to run on .Net.

Microsoft wanted to draw more Web and open-source developers to the .Net platform, officials at the Redmond, Wash., company said. For developers, the benefits included being able to develop on a stable framework with a proven set of supporting tools.

"The idea was to make it as simple as possible to build a good language for .Net," Hugunin said.

The DLR was designed as a general framework to enable various languages to run well on the .Net Framework, including Python, JavaScript, Visual Basic, Ruby, Perl and PHP. The first language to run on the DLR was Microsofts own IronPython, Hugunins creation.

Hugunin listed tips for developers looking to build a language to run on the DLR. Among his suggestions: "Implement a tokenizer and parser, translate your AST [abstract syntax tree] to our DLR trees, and implement your custom types and customizations to existing .Net types."

In addition to IronPython, Microsoft is targeting IronRuby—an implementation of Ruby for .Net—JavaScript and Visual Basic for implementation on the DLR.

IronRuby adds Ruby-style names to the language, which pleases the Ruby community, he said. The JavaScript implementation adds JavaScript-style names by lowercasing the first letter in names, Hugunin said. "But its hard to find out what the JavaScript style is," he quipped, joking about the numerous ways JavaScript is implemented in various products and platforms.

The first version of the DLR is hosted on Microsofts CodePlex community development site and is an open-source project that developers can build upon. However, the next major release will be a standard component of the .Net Framework, Hugunin said.

Hugunin said he developed IronPython essentially to debunk the theory that dynamic languages could not run well on .Net. He started work on it soon after leaving the Xerox Palo Alto Research Center, where he had worked on AspectJ, an aspect-oriented implementation of Java.

Hugunin joked that he couldnt understand how Microsoft, "with second-mover advantage [could] be screwing things up so much." He said Microsoft often has had the advantage of being a late arriver to a party, and then seizing on the groundwork set by others.

Hugunin created IronPython, and eventually Microsoft hired him to help with what became the DLR effort. Now IronPython runs effectively on .Net. Although a similar implementation of the C language runs probably 30 times faster that IronPython, "to me whats important is not about approaching the performance of C, its whether [IronPython] can run on the platform and you can do things," Hugunin said.

He said he had two goals for IronPython. One was to create a true Python implementation with seamless integration with .Net. The second was Visual Studio integration. The IronPython team is working with the Visual Studio Software Development Kit team.

Microsoft released IronPython 1.0 on Oct. 5, 2006, followed by Version 1.1 March 17. The technology is licensed under an open-source license, Hugunin said.

Hugunin said the DLR works with several Microsoft products, including XNA Game Studio, Microsoft Robotics Studio, ASP.Net, Windows Vista, Exchange Server and Silverlight. He then showed a demonstration of Silverlight running on Firefox with an application written in Python.


Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.