On the Friday before MIX, I recorded this podcast with John Lam. He’s the creator of RubyCLR and, as it happens, he joined Microsoft on the same day I did. John’s been running silent since then, but no longer. In this conversation we discuss the dynamic language runtime (DLR), a generalization of Jim Hugunin’s work on IronPython, and a quartet of languages that make use of its services. They include a refactored IronPython, a new managed implementation of JavaScript, Visual Basic, and a new implementation of Ruby which, unlike RubyCLR, does not rely on the C-based Ruby runtime.
We also explore the ability of these languagues to run inside Silverlight-equipped browsers. Key benefits include cross-language interoperability, access to Silverlight’s subset of the .NET Framework, and more broadly, a new approach to writing ambitious browser-based software.
Among other things, that approach restores and reinvigorates a capability that’s been around for a decade. I can well remember, back in the day, running ActiveState’s Perl as a scripting engine inside Internet Explorer. It made for an interesting demo, but I never wound up using it for anything and I never heard of anyone else who did either. In retrospect I think there were two reasons why. First, the notion of running serious amounts of software inside the browser hadn’t taken hold. Now it clearly has.
Second, it’s risky to deploy a standalone language runtime — like Perl’s, or Python’s or Ruby’s — inside the browser. But the Silverlight languages are nicely sandboxed because they ride atop the dynamic language runtime, and it doesn’t rely on any privileged operations.
The DLR-based version of Ruby isn’t quite ready, and it doesn’t yet run Rails. That’s the acid test because, as John says, Rails uses every metaprogramming trick in the book. But the intent is to get it working, and I think that’s the kind of thing that’ll open up possibilities nobody can fully predict. The AJAX model has succeeded despite the fact that JavaScript arguably isn’t well suited to programming in the medium-to-large. DLR-based implementations of Ruby and Python should be better suited to that purpose. What’s more, in this environment they can not only interoperate with each other — so you can use a Python library directly from Ruby, or vice versa — but with statically typed languages like C#. So they can leverage capabilities that depend on static typing, like LINQ (language integrated query).
It’s hard to talk about a topic like this without sounding hopelessly geeky. “Look, I’ve got IronPython using ActiveRecord and LINQ, all inside the Safari browser on my Mac, and I’m debugging it in Visual Studio remotely from my PC.” These kinds of scenarios are in fact becoming possible, and those of us who appreciate all of these components individually will rightly pronounce it cool that they can come together in these ways.
But it’s more than a parlor trick, though it’s hard to explain why that’s so, or why anyone other than a code monkey and dynamic language junkie should care. In view of that challenge, I referred at the beginning of this podcast to my interview with Avi Bryant and Andrew Catton about Dabble DB, which is built on top of the Squeak implementation of Smalltalk. Dabble DB surfaces the virtues of the underlying dynamic language engine — direct manipulation, always-live data, continuous refinement — to people who create and use Dabble DB applications. Yes, dynamic languages can make programmers more productive. But when used properly, they can also produce software that makes everyone more productive for the same reasons.
We’ve seen the proof. JavaScript is a dynamic language, and it’s at the heart of a new breed of web applications that make things easier for everyone. I hope that expanding the range of dynamic languages available in the browser, while at the same time basing them on a common runtime, will accelerate the trend.
April 30, 2007 at 4:04 pm
“We’ve seen the proof. JavaScript is a dynamic language, and it’s at the heart of a new breed of web applications”
By default. People wanted to build better web applications. Programming against Flash movies sucked. Javascript was already in all the browsers. If you’re the last man left on earth, it doesn’t matter how ugly you are when the women come to re-populate the planet.
April 30, 2007 at 5:38 pm
[...] Jon Udell quoted Jon Lam as saying that in a podcast he had right before MIX 07. [...]
April 30, 2007 at 7:30 pm
[...] Suite. Microsoft’s Scott Guthrie also covered their Dynamic Language Runtime, something Jon Udell wrote about today. For more on Mix see Dan Farber, Richard MacManus, and Ryan Stewart. The keynote [...]
April 30, 2007 at 7:41 pm
[...] Ruby and Python on the DLR “On the Friday before MIX, I recorded this podcast with John Lam. He’s the creator of RubyCLR and, as it happens, he joined Microsoft on the same day I did. John’s been running silent since then, but no longer. In this conversation we discuss the dynamic language runtime (DLR), a generalization of Jim Hugunin’s work on IronPython, and a quartet of languages that make use of its services. They include a refactored IronPython, a new managed implementation of JavaScript, Visual Basic, and a new implementation of Ruby which, unlike RubyCLR, does not rely on the C-based Ruby runtime.” (Jon Udell) [...]
April 30, 2007 at 9:19 pm
[...] John Udell interviewed John Lam, and has a backgrounder here. [...]
April 30, 2007 at 10:14 pm
[...] we haven’t even begun to talk about how Live.com plays a role overall. I mean sure, we released the Dynamic Language Runtime (DLR – aka you can now have Perl, Ruby, Python etc in the room?) but what about Live.com. That cute [...]
April 30, 2007 at 10:57 pm
Dynamic languages are much better glue than static languages. Especially with metaprogramming and reflective capabilities thrown into the mix. What would be interesting is to leverage a strong static programming language to build commonly used libraries that the dynamic languages glue together. Any idea if F# will be able to compile to Silverlight?
May 1, 2007 at 4:28 am
[...] John Udell regarding our announcements yesterday morning: “Look, I’ve got IronPython using ActiveRecord and LINQ, all inside the Safari browser on my [...]
May 1, 2007 at 5:52 am
[...] Its not just the web anymore. Everything is going to run everywhere. This entry was written by jgovernor and posted on May 1, 2007 at 10:52 am and filed under Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL. « RedMonkOne Dynamic Language Jam Session May 7 [...]
May 1, 2007 at 6:11 am
[...] sure to check out Jon Udell’s Podcast with Jon Lam where they talk about the DLR (Dynamic Language [...]
May 1, 2007 at 8:42 am
[...] oggi un po’ di interviste e news su Microsoft Silverlight e trovo qualche dettaglio in più sul DLR (Dynamic Language [...]
May 1, 2007 at 9:03 am
[...] Udell has just posted a description of what he and John Lam talked about in a recent podcast. What drew my attention to it [...]
May 1, 2007 at 9:46 am
[...] language enthusiasts in the form of some sort of mysterious “Dynamic Language Runtime.” Jon Udell interviewed John Lam about it, as well as how it will integrate with [...]
May 1, 2007 at 11:10 am
There’s more on the MIX07 “Jim Hugunin and John Lam Talk” at http://oakleafblog.blogspot.com/2007/04/stealth-dynamic-languages-presentation.html.
–rj
May 1, 2007 at 11:11 am
[...] Udell has just posted a podcast with John Lam from the Dynamic Languages team at Microsoft that they recorded last week. John Lam was the [...]
May 1, 2007 at 6:58 pm
[...] A conversation with John Lam about the dynamic language runtime, Silverlight, and Ruby On the Friday before MIX, I recorded this podcast with John Lam. He’s the creator of RubyCLR and, as it happens, […] [...]
May 1, 2007 at 7:10 pm
Vijay: I don’t see why F# couldn’t do so right now, assuming that it didn’t require additional libraries. If you dig even slightly into Silverlight (Hanselman’s recent post is a good place), you’ll see that it’s the same IL on pretty much the same CLR.
May 2, 2007 at 2:25 am
[...] A conversation with John Lam about the dynamic language runtime, Silverlight, and Ruby « Jon Udell On the CLR/DLR thingy in browsers. (tags: via:JamesGovernor dlr clr silverlight wpf/e browsers ria dynamiclanguages) [...]
May 2, 2007 at 5:26 am
[...] A conversation with John Lam about the dynamic language runtime, Silverlight, and RubyJohn Lam is the creator of RubyCLR (a bridge between Ruby and the .NET framework) who disappeared into the bowels of Microsoft a few months back. I’ll give this a listen when I get back from my holiday…[Tags: workblog podcast dynamiclanguages ruby] [...]
May 2, 2007 at 10:38 am
Silverlight has an amazing potential, but honestly, I wish it was another company that owned it. Microsoft simply has too much baggage in the cross-platform area, things like Rotor, the PRFest that is Port 25, or going back a bit, Active X on !Microsoft.
They have regularly trotted out their “new attitude” towards interop, and it’s lasted a version, if that long, then all of a sudden, it’s a Windows – Only technology. Usually, after they’ve seen enough sales in the dev tools to know that changing to a competing tech would be more than a little painful. The problem today is, that the people who made these earlier decisions are still, for the most part, running MSFT. So while the tech is cool, I can’t really take it seriously as a “universal” RIA until I see regular updates for *all* supported platforms, and a few years of it being fully supported.
Given MSFT’s past and outside of one rather small business unit, its management’s continual hatred of !Microsoft, trusting Microsoft MS to not act according to type is, IMO, irresponsible at worst, unrealistic at best, especially considering that the current management team is the one that made the earlier decisions.
(And no, I don’t particularly think of Ray Ozzie as the guy that will drag Microsoft into a brave new world of interop. I think of him as the guy who foisted Notes on the world, and as someone who has tried to both use and support Notes, I’m not terribly impressed with the guy who created groupware best defined as something you do *to* people, not *for* people.)
May 3, 2007 at 12:34 am
[...] What all of this means is that there’s baked-in support for Ruby in what could be one of the biggest runtime environments on the Web in the next few years, and this can only be a good thing for Ruby. Jon Udell sat down with John Lam (the creator of RubyCLR) and talked about the DLR, Ruby, and how the whole caboodle works / will work. [...]
May 3, 2007 at 12:49 pm
Achieving Vendor Lock-In Through Open Source
There seems to be a renewed interest from proprietary software vendors in the use open source to create vendor lock in.
This week, add Microsoft’s Silverlight 1.1 and Dynamic Languages Runtime to the mix alongside Adobe’s Flex SDK.
Jeff G…
May 4, 2007 at 7:32 am
very interesting.
May 5, 2007 at 1:45 am
[...] of Silverlight, Microsoft is doing some open source scripting languages that run inside it (the Dynamic Language Runtime). They’ve already released some demos where they are running IronPython (Python) and Managed [...]
May 7, 2007 at 10:51 am
I just provided a bit of a rebuttal / posed some questions based on a sound bite from the podcast: http://www-03.ibm.com/developerworks/blogs/page/pmuellr?entry=structured_javascript
.
This is all great stuff; can’t wait to see and hear more about it.
May 22, 2007 at 5:52 pm
[...] asked about the inclusion of the Dynamic Language Runtime, something Scott announced during his part of the keynote and something that garnered a bit of [...]
November 15, 2007 at 4:08 pm
[...] John Lam (the RubyCLR developer) discusses DLR, ruby and Silverlight. [...]
January 20, 2008 at 8:42 am
“JavaScript arguably isn’t well suited to programming in the medium-to-large”
Oh yes? And guess why? M$ is arguably half responsible of this because of their arguably not very suited web browsers…
As for the other half, I should recognize that it’s simply inherent to the language been poor indeed.
March 31, 2008 at 8:32 am
[...] What all of this means is that there’s baked-in support for Ruby in what could be one of the biggest runtime environments on the Web in the next few years, and this can only be a good thing for Ruby. Jon Udell sat down with John Lam (the creator of RubyCLR) and talked about the DLR, Ruby, and how the whole caboodle works / will work. [...]
May 6, 2008 at 2:48 am
[...] What all of this means is that there’s baked-in support for Ruby in what could be one of the biggest runtime environments on the Web in the next few years, and this can only be a good thing for Ruby. Jon Udell sat down with John Lam (the creator of RubyCLR) and talked about the DLR, Ruby, and how the whole caboodle works / will work. [...]