At MIX07 in Las Vegas, Microsoft detailed planned .NET programming support for Silverlight, formerly known as Windows Presentation Foundation/Everywhere, as well as Visual Studio and Expression Studio tool support for this new client-side architecture. Also disclosed was the Dynamic Languages Platform, itself based on the Dynamic Language Runtime.
Of note, the company is now supporting the IronPython dynamic language, and it made its first announcement of IronRuby.
“With the IronRuby announcement, even in its current CTP form, we are able to show interop with statically typed .NET libraries, and code written in JScript, VB, and Python,” Soma Somasegar, corporate vice president of Microsoft’s Developer Division, wrote on a blog entry called MIX07 -- Silverlight shines brighter. “You can write Silverlight applications in Ruby on supported browsers for Mac and Windows."
The DLR is what makes all of this possible. It is a layer of software that supports dynamic languages running on the CLR. It provides a shared set of language services such as a dynamic type system, fast dynamic dispatch, smart code generation, and a hosting API. It layers on top of the CLR, which provides its own set of shared services such as a world class JIT and GC, sandboxed security model, and debugging/profiling interfaces.
The Dynamic Languages Microsoft is releasing will be offered under shared sourcing, Somasegar said.
In a blog entry called A Dynamic Language Runtime, IronPython author Jim Hugunin noted that the DLR adds a small set of key features to the CLR. It adds a set of services designed explicitly for dynamic languages.
These include a shared dynamic type system, standard hosting model and support to make it easy to generate fast dynamic code. With these additional features it becomes dramatically easier to build high-quality dynamic language implementations on .NET. More importantly, these features enable all of the dynamic languages which use the DLR to freely share code with other dynamic languages as well as with the existing powerful static languages on the platform such as VB.NET and C#.
The Lam and Hugunin show
“The Dynamic Language Runtime started off as IronPython,” Ruby Bridge for CLR maker Jon Lam told Microsoft’s Jon Udell on the company’s Channel9 site. “Iron Python was a project to see, well, can we implement a very high performing as well as very compliant implementation of the Python dynamic language on top of the [Common Language Runtime].”
Once IronPython was created, Microsoft teams looked to see what other languages could be supported, and what aspects of the IronPython experience “could be factored out into a set of libraries that could be useful to other people trying to build other dynamic languages,” said Lam, now program manager on the Common Language Runtime team at Microsoft.
Dynamic methods classes added to the CLR with .NET 2.0 help enable the new dynamic language support, Lam indicated. “The interesting things are dynamic language interop as well as dynamic language and static library interop,” he said.