Three years ago, I wrote an article entitled Why Virtual Machines are a Bad Idea. My concern was about virtual machines (the JVM and CLR) and the issue of efficient implementation of dynamic languages.

A couple of days ago, during the MIX07 event, Microsoft introduced Silverlight — a Flash-like programming environment powered by a small .NET VM. Silverlight was very well received by the audience, but during the show Microsoft also introduced a new Dynamic Language Runtime support for .NET; this is far more interesting:

The new Dynamic Language Runtime (DLR) adds a small set of key features to the CLR to make it dramatically better. It adds to the platform a set of services designed explicitly for the needs of 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.

Why this is big? Because it means that dynamic languages are getting so serious that Microsoft decided to embrace them in their core technology. Sure, this is not really about altruism and Microsoft made a pretty good job at promoting .NET compared to Sun that failed to push the Java Runtime on this ground.

The CLR already supports popular languages such as Python and Ruby. I’m sure the Mono team is already at work implementing the Dynamic Language Runtime, making it available for all systems.

Business or not, this means that the industry is finally moving — we’ve just been waiting for 20 years.

Read more