A Dynamic Language Runtime (DLR)
Today, at MIX 07, we announced a new level of support for dynamic languages on .NET that we're calling the DLR.
From the beginning, Microsoft's .NET framework was designed to support a broad range of different programming languages on a Common Language Runtime (CLR). The CLR provides shared services to these languages ranging from a world-class GC and JIT to a sandboxed security model to tools integration for debugging and profiling. Sharing these features has two huge benefits for languages on the CLR. First, it's easier to implement a language because lots of difficult engineering work is already done for you. Second, and more importantly, these languages can seamlessly work together and share libraries and frameworks so that each language can build on the work of the others.
The CLR has good support for dynamic languages today. IronPython-1.0 demonstrates this. 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. 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 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. It lets developers share code regardless of the language the code is implemented in and to use whatever language they prefer regardless of the language preferred by the environment they want to run in. Coupled with the Silverlight 1.1 platform announced today, it even lets languages share a sandboxed security model and browser integration. This means that developers building browser-based applications can now use their preferred language even for client-side code.
We're initially building four languages on top of the DLR - Python, JavaScript (EcmaScript 3.0), Visual Basic and Ruby. We shipped today both Python and JavaScript as part of the Silverlight 1.1alpha1 release today. John Lam and I will be demoing all four languages, including VB and Ruby, working together during our talk tomorrow at 11:45.
In addition to the Silverlight release, we've also made the full source code for both IronPython and all of the new DLR platform code available on codeplex under the BSD-style Microsoft Permissive License. All of that code can be downloaded today as part of the IronPython project at codeplex.com/ironpython. If you want to know more about the DLR, you should feel free to download the code. However, you should understand that this is a very early release of these bits and we still have significant work left to do including refactoring, design changes, performance tuning - not to mention documentation.
For the short term, our focus is on using a small number of languages to drive the first wave of DLR development where we can work closely and face-to-face with the developers in order to iron out the worst kinks in the DLR design. After this initial phase, we want to reach out to the broader language community. If you're building a language on top of .NET and are interested in supporting dynamic language features then we want your feedback on the DLR. However, I'd discourage you from trying to implement on top of the DLR today. I don't want you to get frustrated trying to work with these really early bits and then not be interested in working with us when we're better prepared to engage with the language community. We plan to kick off a broader engagement with language implementers at the upcoming lang.net conference in three months - at the end of July. This will be the best place to really engage with the DLR and let us know what we got wrong.
In the meantime, I'll be using this blog to post our design notes for the DLR as they're written and any feedback you have on the design is welcomed. Tomorrow I'll talk more about the shared dynamic type system and the "One True Object".
Comments
Anonymous
April 30, 2007
Dynamic Language Runtime on top of the CLR: This Is BIGAnonymous
April 30, 2007
Great stuffAnonymous
April 30, 2007
Awesome work. Great to see all of this work towards powerful dynamic languages on the CLR starting to come together. I'm particularly intrigued by the inclusion of Silverlight as a supported platform for dynamic languages... which leads me to a few questions. In just quick snippets of reading it appears the Silverlight's profile is close Compact Framework. Does this perhaps mean that dynamic language support for other Compact Framework platforms is near? Particularly, I'm quite curious as to how far off dynamic language support on the Xbox XNA mini-CLR is..Anonymous
April 30, 2007
I asked my Ruby question on the Castle Devel mailing list and Ayende pointed me to this . One of my firstAnonymous
April 30, 2007
Čakanie skončilo. Už vieme prečo si John Lam pred trištvrť rokom kúpil jednosmernú letenku na opačnéAnonymous
April 30, 2007
You've been kicked (a good thing) - Trackback from DotNetKicks.comAnonymous
April 30, 2007
Please, clarify what exactly is DLR. It is a layer on top of CLR (so there is a need to have CLR to have a DLR)? Probably not because Silverlight runtime do not incorporate whole CLR and DLR is available as part of Silverlight. So it is a fresh implementation of base services (such as JIT, GC, sandbox security, ...) which ca be considered as subset of CLR? If so, then what parts (what namespaces) are in both? thanks, P.Anonymous
April 30, 2007
MIX07 AnnouncementsAnonymous
April 30, 2007
Quick, where's my drool bucket?Anonymous
April 30, 2007
Please tell me this means that ruby will one day be a first class .Net citizen !!!Anonymous
April 30, 2007
I can't wait for Ruby on the DLR!Anonymous
April 30, 2007
Will it support some kind of dynamic dispatching? It would be great if I could leverage on the CLR (or DLR) to optimize calls, even when methods are overridden in runtime.Anonymous
April 30, 2007
DLR and IronRubyAnonymous
April 30, 2007
Scott also announced an implementation of another dynamic language, Ruby, for .NET. So IronRuby joinsAnonymous
April 30, 2007
Hi, This is a killer feature. I'm amazed by the quantity and the quality of stuff coming from MS these days. Ruby for .NET is a good news for all of us, Ruby users. Thanks.Anonymous
April 30, 2007
There is no mention of the support for PowerPC Macs in the future :(Anonymous
April 30, 2007
With the first day of MIX, it seems like there's been a staggering stream of announcements (all...Anonymous
April 30, 2007
Perl is huge in the academic world. Perl coming to your DLR any time soon?Anonymous
April 30, 2007
The comment has been removedAnonymous
April 30, 2007
Haha! That's what I get for clicking on the wrong link. Well, congratulations to you, too, Jim! :)Anonymous
May 01, 2007
The comment has been removedAnonymous
May 01, 2007
While yesterday was a pretty quiet day at the MEDC, next door at MIX07 things were certainly happening.Anonymous
May 01, 2007
While yesterday was a pretty quiet day at the MEDC, next door at MIX07 things were certainly happening.Anonymous
May 01, 2007
As more details are flowing out of Mix07 and the .Net world is a-buzz with dreams of Ruby On Rails andAnonymous
May 01, 2007
미국과 시간차이 때문에 이 시간까지 버티면서 키노트를 보고 발표한 것들을 정리해봅니다: SilverLight를 위한 새 커뮤니티 사이트 SilverLight 개발자 사이트 SilverLightAnonymous
May 01, 2007
DLR, Une nouvelle brique fournie par Microsoft au dessus de la CLR . Cette brique permet de contruireAnonymous
May 01, 2007
Great work! I've been predicting this (to the VFP community) for nearly 3 years now. This should be a tremendous help to the group, etecnologia, converting the VFP language to .Net (since MS passed on the opportunity <sigh>).Anonymous
May 01, 2007
At MIX07 in Las Vegas, Microsoft detailed planned .NET programming support for Silverlight as well asAnonymous
May 01, 2007
Microsoft Introduces Dynamic Language RuntimeAnonymous
May 01, 2007
Dynamic Language Runtime関連の情報Anonymous
May 01, 2007
昨天发布的 SilverLight1.1 Alpha 除了包括跨平台的CLR和类库外,还包括了动态语言运行时(Dynamic Language Runtime -- DLR),目前支持的动态语言包括IronPython和JScriptAnonymous
May 01, 2007
Pour ceux qui cherchaient le prochain bouleversement technologique chez Microsoft... http://blogs.msdn.com/hugunin/archive/2007/04/30/a-dynamic-language-runtime-dlr.aspxAnonymous
May 02, 2007
If you've looked at the Silverlight poster , you've probably noticed the list of languages supportedAnonymous
May 02, 2007
Check out Jim Hugunin's blog post about the new Dynamic Language Runtime , better support for dynamicAnonymous
May 02, 2007
Is managed JavaScript=JScript.NET?Anonymous
May 02, 2007
Managed JScript is a brand new implementation based on infrastructure provided by DLR. It is an implementation of ECMAScript Edition 3 with added support for access to the .NET Framework and cross-language support.Anonymous
May 02, 2007
Can anyone recommend a decent reference about DLR along the lines of history, usage, etc.? Thanks.Anonymous
May 02, 2007
Does it work on Linux? If not, we can't touch it.Anonymous
May 02, 2007
The comment has been removedAnonymous
May 02, 2007
Microsoft's Jim Hugunin reports from MIX07 that the .NET Framework is gaining new support for dynamic (read: scripting) languages such as Python or Ruby. The Dynamic Language Runtime (DLR) is an extension to the CLR that adds the features important toAnonymous
May 02, 2007
I'd like to read more about the DLR. Can someone provide a link to an offical Microsoft posting or even a whitepaper regarding the DLR? So far, I'm not find very much other than a few bloggers talking about it. Thanks!Anonymous
May 02, 2007
A new VB era with SilverlightAnonymous
May 02, 2007
wow. I guess time playing with IronPython is not wasted.Anonymous
May 02, 2007
Scott Hanselman , a .NET community leader and principal in the most excellent podcast HanselminutesAnonymous
May 02, 2007
Lucruri care m-au impresionat în ultima vreme : Buzz-uri Cross-platform CLR via Microsoft Silverlight.Anonymous
May 02, 2007
What will DLR really adds to the the .NET. i think we already have dynamic objects through Reflection. what's the real added value of DLR?Anonymous
May 03, 2007
Although I am personally impressed with C#, and Ruby is cute for fast prototypes, I make my living with start-ups (sometimes grown-up start-ups) and corporations programming for the Internet -- and that means Perl. If you want to take-over Internet programming, you will have to implement Perl.Anonymous
May 03, 2007
Seriously, Lee, don't bogart the time machine, bro.Anonymous
May 03, 2007
While I'm up to my neck in Tech Ed at the moment, I thought I'd drop you a couple of little tidbits...Anonymous
May 03, 2007
At MIX07 we released a new implementation of JavaScript on top of Dynamic Language Runtime (DLR) as partAnonymous
May 04, 2007
The question “ Is Jasper useable from c#? ” came up on the Jasper forum . The short answer is – We designedAnonymous
May 04, 2007
As I am working my way back home from the MIX 07 conference, I have had time to reflect on the conferenceAnonymous
May 04, 2007
Attached to this post is the Dynamic Client Script sample -- an ASP.NET control that simplifies creationAnonymous
May 04, 2007
As I am working my way back home from the MIX 07 conference, I have had time to reflect on the conferenceAnonymous
May 05, 2007
微软公司在其 MIX07 大会上宣布了IronRuby,一个运行在.NET CLR之上的Ruby实现的发布。其中,IronRuby与Java VM上的JRuby类似,但与 Ruby/.NET BridgeAnonymous
May 05, 2007
微软公司在其 MIX07 大会上宣布了IronRuby,一个运行在.NET CLR之上的Ruby实现的发布。其中,IronRuby与Java VM上的JRuby类似,但与 Ruby/.NET BridgeAnonymous
May 05, 2007
Dynamic Language Runtime(DLR)。DLR和IronPython全部开源,如果你微软这样的动作吃惊,请看看Microsoft 的 OpenSource Licence,可以到codeplex下载。新的动态语言运行时(Dynamic Language Runtime,DLR)向CLR中加入了一小部分核心特性,使之得到显著改善。它向平台中加入了一系列明确为动态语言需求所设计的服务,包括同享的动态类型系统、标准托管模型(Standard Hosting Model),以及轻松生成快速动态代码的支持Anonymous
May 06, 2007
Jim Hugunin's Thinking Dynamic has a series of blog entries on a new level of support for dynamic languagesAnonymous
May 06, 2007
Great job...Anonymous
May 07, 2007
Good but.... as Sturla already correctly implied, the really hard dynamic languages to handle are those in the Common Lisp and Dylan sphere. What provisions are there in the DLR to handle these? MarcoAnonymous
May 07, 2007
Nu när det har gått ett par dagar sedan jag kom hem från Vegas och jag hunnit smälta veckan som gickAnonymous
May 08, 2007
Ars Technica are reporting that "Mono project lead developer Miguel de Icaza says that the Mono developmentAnonymous
May 08, 2007
Încă puțin și devin de referință în 2.0 :o) Până atunci, să capitalizez - introduc 180 de secunde deAnonymous
May 09, 2007
The comment has been removedAnonymous
May 11, 2007
Y croe que puedo decir que si de forma parcial. Que es lo que tienen en comun Sun, Adobe y MicrosoftAnonymous
May 14, 2007
I'm here at DevTeach in beautiful Montreal ! And man, what great weather they are having so far. I'mAnonymous
May 14, 2007
Technical Currently-Reading ListAnonymous
May 15, 2007
Scott Hanselman , a .NET community leader and principal in the most excellent podcast HanselminutesAnonymous
May 16, 2007
It is a boom time for dynamic languages. Two weeks ago Microsoft announced DLR (Dynamic Language Runtime),...Anonymous
May 18, 2007
Hi, Do I need to learn only Ruby or Ruby + C# to take the addvantage of DLR. I am just confused, can any one guide me. Plus... where can i read regular progress on IronRuby. Once i start working with IronRuby, will i get more advantage than RubyonRails or Less Advantages..? ThanksAnonymous
May 19, 2007
I'm glad to report that Robert Pickering's book Foundations of F# will be out soon. I'll be writing moreAnonymous
May 19, 2007
The comment has been removedAnonymous
May 21, 2007
Asta dupa caderea de saptamana trecuta: doua discuri crapate simultan, plus backup (numai) din februarie.Anonymous
May 25, 2007
Yeah, this is almost a month old, but it's still the first time I've heard about it ...Anonymous
May 27, 2007
This is great news. My questions: Will this also be supported by PowerShell script? What will happen to JScript.NET?Anonymous
June 04, 2007
John Lam , Dino Viehland and I conducted a session on building languages on top of the Dynamic LanguageAnonymous
June 04, 2007
VB.NET gets a hard time from C# developers. For a variety of reasons, the leading .NET programmers seemAnonymous
June 04, 2007
This is a quick reminder about the upcoming events in June and July for the Perth .NET Community of Practice.Anonymous
June 07, 2007
En esta entrada de Jimmy Calahorrano comenté que me parecía interesante hablar sobre losAnonymous
June 07, 2007
En esta entrada de Jimmy Calahorrano comenté que me parecía interesante hablar sobre los lenguajes dinámicosAnonymous
June 19, 2007
This year's MIX conference brought a lot of excitement and buzz to the industry with the announcementsAnonymous
June 27, 2007
I'm not sure what to make of this one from the Googleplex , it's certainly food for thought butAnonymous
June 29, 2007
Harry Pierson examines The Rails Question, asked by Nick Malik, in his blog: “what is the Rails “answer” on the Microsoft platform? At first Pierson readily refers to the Microsoft Dynamic Language Runtime (DLR) team, which will provideAnonymous
July 01, 2007
Eftersom Microsoft har brutet räkenskapsår som slutar den sista juni har alla internt haft fullt uppAnonymous
July 01, 2007
Eftersom Microsoft har brutet räkenskapsår som slutar den sista juni har alla internt haft fullt uppAnonymous
July 10, 2007
The comment has been removedAnonymous
July 14, 2007
For audience opinons, see Korayem or Ahmad Shreef To know how we got the idea...Anonymous
July 23, 2007
You may have heard of IronRuby - a shared source implementation of Ruby that runs on top of the .NET.Anonymous
July 24, 2007
The comment has been removedAnonymous
July 24, 2007
The comment has been removedAnonymous
July 24, 2007
The comment has been removedAnonymous
July 25, 2007
Es gibt seit einer Weile eine Python Implementierung für .NET (IronPython). Python...Anonymous
July 27, 2007
Visual Studio 2008 Beta 2, Silverlight, Rosario, and more!Anonymous
July 28, 2007
Neljapäeval andis Microsoft välja Visual Studio 2008 teise beta-versiooni. Samuti tuli uus versioon Silverlight-ist, seekord siis 1.0 RC. Lähimal ajal on oodata Visual Studiole add-in-i, mis võimaldab Visual Studiot kasutada Silverlight-i arendusk...Anonymous
August 01, 2007
Am 23. Juli hat Microsoft die erste Release der Hauseigenen IronRuby Implementierung angekündigt. IronRubyAnonymous
August 21, 2007
July's PADNUG meeting featured John Lam talking about the work he is doing with IronRuby . That meetingAnonymous
September 04, 2007
Okay, I have caught the Ruby bug. It's like an itch, the more I scratch it, the more it needs to be scratched. Ruby is a great language. That's a fact. Rails is a great web framework. That's a fact. Somewhat over-hAnonymous
September 12, 2007
See I was right, in my post yesterday I said the key role missing in most WPF projects was the 'designerAnonymous
September 12, 2007
Parece que el lanzamiento del DLR realmente despertó la implementación en .NET de lenguajesAnonymous
September 12, 2007
Parece que el lanzamiento del DLR realmente despertó la implementación en .NET de lenguajes muy diferentesAnonymous
September 14, 2007
The comment has been removedAnonymous
October 09, 2007
My sixty-third podcast is up and this one was a blast. I recorded this one at Mix just two days ago withAnonymous
October 09, 2007
Updated: I got some feedback from some MSFTies and this is an updated ecosystem diagram. For referenceAnonymous
October 22, 2007
Dynamiska språk som Ruby och Python och är något som är oerhört hett just nu. Microsoft arbetar med attAnonymous
October 22, 2007
Dynamiska språk som Ruby och Python och är något som är oerhört hett just nu. Microsoft arbetar med attAnonymous
November 25, 2007
Some say DOM scripting will end in fire,Some say in Silverlight.Still others say with much desire,That...Anonymous
November 25, 2007
Some say DOM scripting will end in fire, Some say in Silverlight. Still others say with much desire,Anonymous
November 28, 2007
Você, leitor deste blog, pode pensar que tenho algum problema com a Microsoft, pois o conteúdo dos últimos...Anonymous
November 28, 2007
Hello everyone.  Welcome to my blog.  The focus of this blog will be dynamic languages at MicrosoftAnonymous
January 01, 2008
Not surprisingly, the year 2007 started with January. Microsoft and Ford launched SyncMyRide.com during...Anonymous
January 01, 2008
Not surprisingly, the year 2007 started with January . Microsoft and Ford launched SyncMyRide.com duringAnonymous
February 03, 2008
The comment has been removedAnonymous
April 17, 2008
I stumbled upon David Meyer’s Duck Typing Project while searching for infos about the DLR: The duck typing library is a .NET class library written in C# that enables duck typing. Duck typing is a principle of dynamic typing in...Anonymous
May 18, 2008
Will and I spoke with Martin Maly about theAnonymous
May 22, 2008
I think just about everyone in the software development community at least knows what Ruby on Rails is, so I won't do into it here. There is some real exciting things going on in the Ruby community and in particular, Ruby on Rails running on more thanAnonymous
September 16, 2008
Gracias a la gente de Microsoft de Argentina, en especial al bueno de Miguel Saez , tendré el gran gustoAnonymous
October 13, 2008
Bam. Silverlight 2 is out . There's the expected stuff, like the final SDK, Expression, and SilverlightAnonymous
October 13, 2008
Bam. Silverlight 2 is out . There's the expected stuff, like the final SDK, Expression, and SilverlightAnonymous
November 28, 2008
De multe ori primeam intrebari de genul "care e strategia Microsoft in domeniul limbajelor dinamice?"Anonymous
December 02, 2008
Given all the announcements and implications from the Mix'07 conference, I am writing this N&N attempting to capture in a list what it all means, at least what I think it means. I'm going to skip categories since the announcements span technologies.Anonymous
January 04, 2009
The Technology Deluge ContinuesAnonymous
March 22, 2009
DLR and IronRuby