InfoQ

News

Dynamic Language Runtime Announced

Posted by Jonathan Allen on May 01, 2007 12:45 PM

Community
.NET,
Ruby
Topics
.NET Framework ,
Dynamic Languages
Tags
Visual Basic.NET ,
CLR ,
IronRuby ,
IronPython ,
DLR ,
RubyCLR ,
Mono

Microsoft has announced that they are building an extension to the Common Language Runtime called the Dynamic Language Runtime (DLR). This extension is being designed to enable interoperability between dynamic languages in the same manner that the CLR enabled interoperability between statically typed languages.

Currently the biggest problem with dynamic language interoperability is the lack of a unified object model. Even when running on the same underlying platform like the CLR or JVM, each dynamic language had to independently extend the type system to support modifying classes at runtime. These implementations are inherently incompatible, making it difficult or impossible for languages like IronPython and RubyCLR to share objects.

The Dynamic Language Runtime offers a shared dynamic type system that should eliminate the barriers between Ruby and Python on the CLR platform. In theory, objects can be freely shared between programs written in each language.

In addition to the dynamic type system, the DLR project intends to offer other functionality for making it easier to develop new languages and port existing ones to the CLR. Jim Hugunin's write

The DLR is about giving you the best experience for your language - true to the language, excellent tools, performance and seamless integration with a wealth of libraries and platforms. The essential benefits of the DLR are about sharing. It lets language implementers share standard features rather than rebuilding them from scratch. This lets them focus on the features that make a given language unique rather than on reinventing yet another GC system.

Jim also lists the four dynamic languages that will initially be built on the DLR. Once these are complete and the platform stabilized, Microsoft intends to work with other language developers that wish to target the DLR.

Microsoft has mentioned that VB was going to adopt more dynamic features, but it never before hinted that it would approach the level of Python or Ruby. What this means for the language is still unknown.

It is important to note that the DLR is being released as open source. This is very good news for the Mono team, as Miguel de Icaza explains.

The release for the DLR is done under the terms of the Microsoft Permissive License (MsPL) which is by all means an open source license. This means that we can use and distribute the DLR as part of Mono without having to build it from scratch. A brilliant move by Microsoft.


2 comments

Reply

Not sure if I like this by Wavell Watson Posted May 3, 2007 10:29 AM
Re: Not sure if I like this by Jonathan Allen Posted May 5, 2007 11:00 PM
  1. Back to top

    Not sure if I like this

    May 3, 2007 10:29 AM by Wavell Watson

    Given that part of MS strategy is to imbue switching costs into any standard that they adopt (see the book "the keystone strategy" for details), I'm not sure if I like the direction this might take ...

  2. Back to top

    Re: Not sure if I like this

    May 5, 2007 11:00 PM by Jonathan Allen

    I think the switching cost is obvious. Once your Ruby application starts taking advantage of the BCL, or perhaps a Python library, switching back to pure Ruby will be very painful.

Exclusive Content

Dan Farino About MySpace’s Architecture

Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.

The Maxine VM

Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.

Joe Armstrong About Erlang

Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.

The Limits of Code Optimization: a new Singleton Pattern Implementation

The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.

Pressure and Performance – The CTO's Dilemma

Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.

Biztalk Services in the Cloud

Cloud computing feels like a tomorrow technology. Simon Thurman shows how developers can use Biztalk to create an Internet Service Bus which can be deployed locally or in the cloud.

Java FX Technology Preview

InfoQ takes a look at the JavaFX preview build and talks to Sun Staff Engineer Joshua Marinacci about the upcoming version 1 release expected this autumn.

Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams

Jeff Sutherland, co-creator of Scrum, and Guido Schoonheim, CTO of Xebia, present an actual case of reaching hyper-productivity with a large distributed team using XP and Scrum.