The story of the Dynamic Language Runtime starts in early 2004. Jim Hugunin then decided to spend few weeks to explore dynamic languages in the context of Microsoft's .NET platform by implementing IronPython. It is a wonderful story and you can actually read directly from Jim himself.

In the late 2004 I found myself talking with Jim about IronPython in his Microsoft office. I had been looking around the company for something exciting to do and IronPython just sounded like an absolute dream project. In fact, they hardly come any better. Working on an open source compiler with frequent releases and interaction with community, and all that at Microsoft? So, being a bit of a rebel, I went for it and became the first full-time employee at Microsoft working solely on IronPython.

At that time Jim and I talked about the possible future of the project and many times since then I found myself looking back thinking that things have gone way better than our initial optimistic hopes.

The rest is history, they say ... Or is it?

I think they are wrong, the rest is the present! And it is called Dynamic Language Runtime.

Out of the success of IronPython came an idea that if Python can run successfully on Microsoft's .NET, perhaps other languages can, too. They key thing with IronPython is that it is a true implementation of Python. Lot of thought went into making it possible for IronPython to benefit from the offerings of the powerful .NET platform without sacrificing its language identity. So the question is, can this work for other languages?

And we believe it can. In this blog we'll be exploring some of the aspects of what it takes to implement a DLR-based language. There are several languages we can, and will, explore. We'll probably start with some simpler concepts that can be demonstrated on ToyScript - a small sample language we released with IronPython/DLR package on CodePlex, starting with Alpha 6 release. For the more advanced concepts we'll dive into IronPython or IronRuby, and of course we won't shy away from the runtime itself.