Microsoft Phasing in Support for Dynamic Languages on .Net

The creator of IronPython says the company is baking in greater support for dynamic languages. Today Python; tomorrow Ruby, PHP, Perl, etc.?

Microsoft is working on a phased approach to enhancing its support for dynamic languages on the companys .Net platform.

Jim Hugunin, creator of the IronPython language and a development leader on Microsofts CLR (Common Language Runtime) team, told eWEEK that Microsoft is working to help usher in support for dynamic languages on top of the CLR in a variety of levels or phases.

At the lowest level, Microsoft will be building additional support for dynamic languages into the overall .Net plumbing, Hugunin said. A level up from there, Microsoft will instantiate successful software patterns and practices into code that developers can call on from libraries to help them build applications using dynamic languages on the .Net Framework.

And a level up from the libraries, Microsoft will offer lessons learned, based primarily on its work with IronPython, the companys implementation of the Python programming language running on .Net.

IronPython reached Release Candidate 1 status on July 26, and barring any problems, the technology will be released as a 1.0 version in a week or more, Hugunin said. IronPython officially releases every three weeks, but as the code is hosted on Microsofts CodePlex community development Web site, interested developers can gain access to new drops of code on an almost daily basis, he said.

/zimages/1/28571.gifClick here to read more about the release candidate for IronPython 1.0.

Microsoft is taking measures to enhance its development platforms support for dynamic languages as developer demand for, and use of, the languages such as Python, PHP, Perl, Ruby and others continues to grow. Both Microsoft and Sun Microsystems—and the Java community—realize the growing need to support dynamic languages on their platforms.

In fact, dynamic languages dominated the conversation at the recent Lang.Net 2006 Symposium held July 31 through Aug. 2 on Microsofts Redmond, Wash., campus. Hugunin spoke with eWEEK at the event.

"As I think about where we go beyond IronPython, what we really want to do next is try to generalize what weve learned," Hugunin said.

For instance, Hugunin said, he has spent a lot of time talking to Microsofts Visual Basic team and to the Windows PowerShell team. PowerShell is a relatively new shell scripting language, formerly known by the code name Monad, which people can use instead of, he said.

"And their rules arent very different from ours," he said. "So if we could combine the best of what everybodys learned and tell people, Here is how you do it, then Ruby becomes easy."

Moreover, Hugunin explained the hierarchical approach he sees Microsoft bringing to dynamic language support.

"There is stuff that will make it into the CLR, and that will be the stuff we know best," he said.

Indeed, an example of the kinds of dynamic language support Microsoft put into .Net 2.0 "is dynamic methods, which is a general-purpose feature that people can build a lot of things on top of," he said.

John Lam, a principal consultant and partner at ObjectSharp Consulting, in Toronto, and also creator of RubyCLR, a .Net to Ruby interoperability bridge, said the baked-in support for dynamic languages in Net 2.0 has helped him in his work.

Lam, who also presented at Lang.Net, said, "In .Net 2.0 the major feature that I rely on, and tons of other people do too, is this thing called the dynamic methods. Dynamic methods allow us to gain an incredible amount of flexibility. … RubyCLR is built entirely on top of dynamic methods." And this enables Lams solution "to have high performance and some of the other things that are more challenging to do without that kind of support built into the platform."

Next Page: Dynamic language library.