Microsoft Phasing in Support for Dynamic Languages on .Net - Page 2

Hugunin also spoke about the libraries Microsoft will ship on top of the CLR.

"What were going to try hard to do is, instead of doing a dynamic language specification, provide a dynamic language library and have guidance on how to use it, because Im a firm believer in whenever you can capture something in code instead of text its a far better way to capture it," Hugunin said. "So were going to try to capture as much of these guidelines as we can in code."

Lam said he believes a "reasonably large" percentage of all dynamic languages are fairly similar. "So things like support for arbitrary length integer numbers is something that both Python and Ruby support," he said. "Yet those would be things that you would otherwise have to implement yourself."

However, these things are not easy to implement, Lam said. "So being able to pull some of that stuff out and put it into a common set of libraries that could be shared across multiple languages is something thats very important," he said.

And beyond the libraries, Microsoft will make IronPython available as a working example of "how you build a first-class production language running on .Net. So for the things that we cant generalize into the library, we can show people, Heres how we solved it for this one language."

Hugunin on Aug. 1 celebrated his second anniversary at Microsoft.

He said he started out in the latter half of 2003 tinkering with .Net and planning to write an article on why .Net was a terrible platform for dynamic languages. However, after he performed a few tests of his own he found out that .Net, and particularly the CLR, was an "excellent target" for Python, and so he started working on the implementation he called IronPython. Then, feeling he could work better as part of the company, Hugunin joined Microsoft in August of 2004.

Yet, "the first six months were horrible," he said, as most of his time was spent helping to get Microsofts Visual Studio 2005 out the door. But after that he was able to focus on working on IronPython and working with the CLR team.

"I joined Microsoft because I was so inspired by the possibilities of .Net," Hugunin said. "The chance to work with the Visual Basic team is wonderful. The chance to make changes into .Net to make it more amenable to dynamic languages is phenomenally exciting."

/zimages/1/28571.gifSun is looking at Java extensions to better support dynamic languages on the Java Virtual Machine. Click here to read more.

At Lang.Net, Hugunin gave attendees a peek at some of the work he is doing to integrate IronPython with Visual Basic and with PowerShell.

"If you happen to be a Python programmer and youre the administrator on a Windows machine, well youve got these great libraries that PowerShell makes available and theres no reason you shouldnt write Python code instead," Hugunin said. "If youre a VB programmer, again, it should be very natural to use these PowerShell libraries because theyre very dynamic libraries that fit nicely with the dynamic languages."

Hugunin said Microsoft wants to make all of the PowerShell libraries as easily usable from other dynamic .Net languages as they are from the PowerShell scripting language.

Likewise, with Visual Basic, Hugunin said Microsoft is looking at leveraging some of the simplicity that Basic has. "That feels a lot like what people say they love today about dynamic languages," he said. "People say they love a language like Ruby because it has this simplicity and this dynamism."

And Visual Basic, in its formative years, "was state of the art in providing this simple, dynamic experience. So we see that theres this great potential for Basic to be another great dynamic language, where we keep all the great benefits that we put into Visual Basic .Net, but we have some of this dynamic feel that people love."

Hugunin demonstrated how, with simple changes in the code, Visual Basic could be made to behave like a dynamic language. "But thats just, at the moment, an experiment," he said with a smile.

/zimages/1/28571.gifCheck out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.