John Lam and Jim Hugunin: DLR Presentation

Microsoft’s John Lam and Jim Hugunin go large with the DLR at MIX07. Here are my notes whilst listening and watching the presentation:

What to expect: a Mac, TextMate, Javascript, Python, Ruby, Safari and Silverlight.  TextMate equals text editing. Silverlight is not binary, its just XML and text. You can break it apart and look at the gooeyness inside. And some friendly Microsoft people bantering about Ruby vs Python.

And DLR is going Open Source, like IronPython.

What strikes me the most is that the language that people are comfortable with: Javascript, Python, Ruby, C# – you can code your client side in the same language as server side.

Also, having Ruby instantiate Javascript and call functions. Wow. With a C# object doing UI. Technorati via XML through Yahoo!Pipes to JSON to Silverlight on a Mac. Retrieving from the JSON object deserialised and queried via LINQ.

Let alone doing Basic, with REM and all.

In their only Powerpoint slide, Jim details the performance gains of IronPython on the CLR engine. I wonder if the perf gains are going to match to Ruby, too? Is the DLR/CLR going to be the saviour of the scaling bumps of Ruby?

Parts of the DLR (from Jim Hugunin at end of video):

  1. Dynamic type system, shared object system
  2. Shared hosting API; host one, get all of ’em. ruby bits are coming together now.
  3. Bunch of helpers for compiler writers, so dynamic language runs fast

Question: can use DLR inside console, ASP.NET?

Answer: yes, you can use DLR anywhere you are using .NET. More constrained in Silverlight, due to the sandbox.

Question: is it compiling an assembly, or executing script

Answer: Dynamic methods in .NET 2.0, for code generation lazily; and is a dynamic method. Only held whilst there is a live reference. ASP.NET scenarios with stress test not held onto. Not using method rental; System.Reflection.EmitDynamicMethod

Question: JScript.NET vs. new Dynamic Language Jscript?

Answer: Developer want language purity, not tight integration and following .NET. So follow the ECMA 3.0 spec. That’s Javascript. vs. Ruby “freelove” specification of Ruby is its implementation, not a specification document.

Microsoft has changed, big time. My head is spinning.

More DLR

John Lam, why Dynamic Languages from John Udell podcast:

expressing my intent in the code.

Interesting interview between Tim Heuer and John Lam on Ruby as a part of the announcements yesterday.

The Ruby support from Microsoft is more than just Silverlight; it also crosses into the server and the client, outside the browser.

21st Century SmallTalk: IronPython 2.0 in a browser, performance and dynamic fun.

By the light of Dynamic Silverlight

Keeping secrets is tough. Hearing about the Dynamic Language Runtime (DLR) from John Lam in February this year was one of those secrets that kept well.

John Udell interviewed John Lam, and has a backgrounder here. Some in the Ruby community didn’t see this coming.

Jim Hugunin has a posting on the new DLR, open source nature of the DLR on his “Thinking Dynamically” blog.

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.

The reality of being able to debug Ruby in a client-side UI framework on Safari on a Mac using Microsoft Silverlight tickles me, and others, greatly.

Blog from the keynote today, with all the ups-and-downs. Good to see I am not the only one who craves demos and has subversive thoughts in the midst of formal sessions.

Ryan Stewart has comments, and further links. The DLR adds 400K (what the!) to the Silverlight download. Wow.

zdnet has a sort of transcript of the Q&A that occured with Mike Arrington, Ray Ozzie and Scottgu.

Does Microsoft get Web 2.0? Yes.