Microsoft has unveiled a new Dynamic Language Runtime (DLR) layer for the .NET development platform. Designed to simplify the process of bringing support for additional dynamic languages to .NET, the Dynamic Language Runtime is largely based on lessons learned from developing IronPython, an implementation of the Python programming language that runs on .NET’s Common Language Runtime (CLR).
Dynamic languages, which have more flexible type systems than static languages, are generally more conducive to rapid development. Two examples are Ruby and Python, both of which are widely used for web application development. Ruby and Python are also very easy to learn and ideal for scripting and application prototyping. By incorporating dynamic language support into the .NET platform in a way that elegantly facilitates mixed-language projects, Microsoft is making it possible for developers to choose the right language for any given task without having to sacrifice library support.
Run-time performance has been a key consideration throughout the course of DLR development. IronPython already provides better run-time performance than the conventional C-based Python implementation in some contexts, and, in an interview with eWeek, Microsoft developer Jim Hugunin claimed that the eventual goal for IronPython is to achieve performance that is “at least two times faster than the native C-based implementation.”
- The DLR requires the CLR. So this means that it only works with the Silverlight 1.1 Alpha that was released at MIX, and not the Silverlight 1.0 Beta.
- The source code for DLR, IronPython (and IronRuby when it is released) are being released under the Ms-PL. The Ms-PL is a BSD-style license.
- The DLR will also run on top of the desktop CLR V2.0, not just the Silverlight CLR. We have a generic hosting API that lets us retarget the DLR to run on top of arbitrary hosts. Silverlight is only one such host.
- The Silverlight 1.1 Alpha bits released at MIX include the DLR, IronPython and managed JScript.
- Silverlight lets you run compiled .NET code in the browser, not just Python and JScript code. Any assembly that has been compiled to target the Silverlight libraries should just work. So if you want to write code in C#, VB.NET or Boo to target Silverlight, knock yourself out.
- JScript implementation targets the ECMAScript 3.0 specification.
- implement four languages for the DLR: IronPython, IronRuby, JScript, and Visual Basic. As of this writing we are only releasing the source code for IronPython and IronRuby under the Ms-PL. We have not decided whether we will release the source code for either JScript or Visual Basic.
- Silverlight is targeted at browsers that run on the two most popular client operating systems: Windows and Mac OS X. Miguel de Icaza was quoted as saying that they will release a Mono+Linux implementation of Silverlight by the end of the year.
- Silverlight V1.1 will only target Intel Mac OS X machines.