Microsoft has officially released IronPython, its first foray into the world of dynamic languages, and it won't be the last, according to its developer.
Python is one of several dynamic languages that have come of age entirely on the Internet and is a popular language used by Web developers. Other dynamic languages include Perl, PHP, Ruby and Tcl.
These languages share several common traits, most notably they are interpreted rather than compiled, so they are executed at run time. Also, they rely on a very simple, basic syntax that makes them easy to learn.
While Python is enormously popular on the Web – it is used heavily by Google and BitTorrent – IronPython's claim to fame is that it's written for Microsoft's .NET framework. Not only can it use all of .NET services, it will work with the forthcoming .NET 3.0, which adds WinFX functionality.
Jim Hugunin, who had been developing IronPython independently before Microsoft hired him to be the architect and technical lead for it at the company, said no other Python implementation can support .NET without a great deal of extra work.
Bringing dynamic language support to .NET was important because the only options up to now were static, compiled languages like Visual C#, which are fairly complicated to learn, he said.
"The Common Runtime Library is about letting people program in whatever language they want to," said Hugunin. "Our target developers are people happy working in the Python language and want to work on .NET. We're giving them a way to keep working in a language that works for them and come to .NET."
Performance of dynamic languages is a complicated thing to measure, although the general opinion of Hugunin is that compiled languages are faster for intense, computational work.
However, a lot of programs use frameworks and libraries and their performance is independent of the application language. "For a lot of cases, with this huge framework doing the work or connecting to databases over a network, dynamic languages and C# will give identical performance because all the work is done underneath," he said.
Appistry, a developer of a real-time grid technology based on commodity hardware, is a supporter of both dynamic languages and .NET, which is why it has been using IronPython since its beta.
Sam Charrington, VP of product management and marketing, said the company supports IronPython because it marries .NET and Python and applications are written much faster in Python than C#.
"There are certainly reasons why people prefer compiled languages. But where Python and other [interpreted] languages shine is when it comes to agility and time to market and development cost," he said.
Microsoft will add IronPython to the Visual Studio 2005 SDK but it won’t be a part of the compiler itself, since IronPython is an open source project. It's available through CodePlex, Microsoft's attempt to create a SourceForge-like open source development community.
Huginin said Microsoft will work on fixes to IronPython in the near term, then start looking at other dynamic languages. One project Hugunin has been working with is Phalanger, a .NET implementation of the PHP language.
"Our goal is to have IronPython pave the way for other dynamic languages on .NET," he said. "IronPython has a lot of great ideas how to do dynamic languages on .NET, and we want to make those ideas usable by other languages."