Saturday, April 28, 2007

Stealth Dynamic Languages Presentation at MIX07

According to Beth Massi's April 27, 2007 So, you're going to Mix? post on the Visual Basic Team blog:

Jim Hugunin and John Lam [will be] talking about dynamic languages on .NET. (11:45am, Tuesday) This one has so much revolutionary stuff in it that they actually pulled it from the session descriptions on the Mix site. Long story short, search the web on musings about why John and Jim are at Microsoft, add to that the fact that the VB team has been working with them heavily, and you might be able to figure it out.

The original name of their currently anonymous presentation was Just Glue It! Dynamic Languages in "WPF/E": Jim Hugunin - Microsoft, John Lam - Microsoft.

Update: 5/2/2007: The final session blurb that appeared yesterday is:

DEV02 - Just Glue It! Ruby and the DLR in Silverlight

Speakers: Jim Hugunin, John Lam
Abstract: The web was built using dynamic languages. Their plain-text format made it easy to mash up scripts to create the next great app. Similarly, dynamic languages will find a home in Silverlight applications where plain-text formats are common. Silverlight can be easily deployed, which means that a wider range of dynamic languages will be used in building browser-hosted applications. In this demo-centric talk, you will see this happen before your eyes as we rapidly create an application by combining code and markup from existing samples in Ruby, Python, JavaScript, and Visual Basic. This unprecedented level of integration is possible since all of these languages are implemented on top of the new Dynamic Language Runtime (DLR).

Catch a preview with a few screen captures from the video in this post.

I'm guessing that the "Jim and John Show" will extend their March 26, 2007 MTS07: Jim Hugunin and John Lam on Dynamic Languages and the CLR presentation at the Microsoft Technical Summit and describe what Mary Jo Foley called the "Dynamic Language Runtime" (DLR) in her Microsoft to roll out dynamic-layer for .Net post of April 24, 2007.

In an August 6, 2006 eWeek interview, Darryl K. Taft quotes Jim:

"I joined Microsoft because I was so inspired by the possibilities of .Net," Hugunin said. "The chance to work with the Visual Basic team is wonderful. The chance to make changes into .Net to make it more amenable to dynamic languages is phenomenally exciting."

[W]ith Visual Basic, Hugunin said Microsoft is looking at leveraging some of the simplicity that Basic has. "That feels a lot like what people say they love today about dynamic languages," he said. "People say they love a language like Ruby because it has this simplicity and this dynamism."

And Visual Basic, in its formative years, "was state of the art in providing this simple, dynamic experience. So we see that there's this great potential for Basic to be another great dynamic language, where we keep all the great benefits that we put into Visual Basic .Net, but we have some of this dynamic feel that people love."

Hugunin demonstrated how, with simple changes in the code, Visual Basic could be made to behave like a dynamic language. "But that's just, at the moment, an experiment," he said with a smile.

So there's sure to be a VB hook in Jim and John session.

It appears that Andrew Conrad (one of the original ObjectSpaces devs and an early LINQ proponent) has been working on dynamic languages code for a MIX07 session or two. Andrew says:

More information to come in the new few weeks, but all I can say at this point is that the experience has been very dynamic. And if you can’t make it to Mix07, we should have some screen casts and white papers available some time in the next several weeks. [Emphasis Andrew's]

Plain Old Visual Basic (POVB) as a Dynamic Language?

The following MIX07 session underwent a dramatic metamorphosis recently:

Rapidly Building Data Driven Web Pages with Dynamic ADO.NET
Speakers: Samuel Druker Polita Paulus - Microsoft, Shyam Pather - Microsoft
Audience: Developer

ASP.NET dynamic data controls are part of a powerful, rich new framework that lets you create data driven ASP.NET applications extremely easily. ASP.NET dynamic data controls do this by automatically discovering the schema at runtime, deriving behavior from the database and finally creating an ASP.NET page. Anything that can be inferred from the schema works with almost no user effort. If needed, the page can be further customized either by using static languages such as Microsoft Visual C# or Visual Basic .NET, or dynamic languages such as IronPython, Visual Basic, Jscript, etc. In this talk, we show you how to build rich, database driven Web applications from scratch, such as TaskList along with other demos. [Emphasis added.]

Come learn about how new technologies from Microsoft bring together the concepts of dynamic languages and ADO.NET and allow you to quickly develop data driven web pages using ASP.NET dynamic data controls, scalable to even the most complex databases.

Notice that "dynamic ... Visual Basic" in the preceding description is plain VB, not VB .NET, which I'm betting is a reincarnation of VBScript for the CLR. Polita is the developer of Blinq, so there might be a LINQ hook in the session.

One of the topics of MTS07 was "When is the veil of silence going to be lifted?" It's been almost eight months since Jim added a post to his Thinking Dynamic blog. The last post announced the release of IronPython 1.0 on CodePlex and included a brief history of the three-year project. Microsoft released IronPython 1.1 with little fanfare on April 17, 2007.

Andrew Conrad's April 27, 2007 post starts with: 

Over the last several months, because of my current project I have had to program in a bunch of different languages.   (The reason for this will become crystal clear early next week).  Basically, I have had to code in C#, VB, and IronPython while at the same time I have been trying learning Haskell and occasionally Ruby - and some Javascript just for fun on the weekends. 

What's the chance of an announcement that IronPython (and perhaps even RubyCLR) will support LINQ?

Microsoft's Shri Borde wrote in a May 12, 2005 IronPython list message:

IronPython 1.0 will not support LINQ. We have started to look at it, but will seriously look at it after the summer. It is a meaty issue given that many of the concepts in LINQ are based on static typing.

Keith J. Farmer, now with Microsoft, started a [IronPython] Extension methods... thread on the list that compares Python's list comprehensions with LINQ expression trees, along with LINQ and Python extension method syntax. In his September 20, 2005 message, Keith says:

I think the interesting bit for us, now, is that all this runs on the [.NET Framework] 2.0 runtime. From what I can tell, all it'd take would be some compiler modifications to recognize extension methods (marked by attribute) and to create an easy way to create expression trees, and IronPython would be set for it.

Yes, I'm excited about LINQ.. I've seen many gems come out of .NET (and a few blunders). This, I think, is just plain beautiful.

LINQ is the big thing for C# and VB, as are dynamic languages for .NET. They deserve one another. Unfortunately, LINQ integration with .NET dynamic languages isn't one of Miguel de Icaza's guesses for MIX07 announcements.

Note: Go to LINQ-Related Sessions at MIX 07 for updates to current LINQ sessions.