Sunday, May 31, 2009

Dynamic Languages at TechEd 2009

TechEd 2009 (Microsoft developer conference) is come and gone, but dynamic languages played a bigger part there than ever before and John Lam (IronRuby commander in chief) has blogged about his presentation.

He has been working on interesting twists on the REPL; the Read-Eval-Print-Loop otherwise known as the interactive interpreter. He demonstrates one that can switch between DLR based languages (IronPython and IronRuby) and is an editor as well.

The story for dynamic languages in Visual Studio is not massively impressive, but you can get good results with Wing or Netbeans, SharpDevelop has excellent IronPython support and there is also the editor built into the very interesting Pyjama Project.

With the Microsoft dynamic languages team getting interested in editors perhaps the future is brighter for a supported Microsoft IDE for IronPython and IronRuby?
Dynamic languages on .NET are picking up momentum at this year's TechEd. Your typical TechEd attendee is a mainstream .NET developer, since this conference focuses on technologies that are shipping today (as opposed to futures conferences like the PDC). To speak more to this crowd, I focused on how they can make their existing .NET apps better by mixing in some end-user scripting.

My talk was DTL332 if you're a TechEd attendee (not sure when/if the videos will open up to the general public). I showed how you can add Ruby and Python scripting to an existing app, and spent some time building some simple REPLs. Toward the end of the talk, I showed a more realistic scenario where I embed a REPL in an existing Open Source .NET application: Witty.

During the demo, I showed off a twist on the traditional REPL - one where the editor and the REPL are one and the same. To run code in this REPL, you select the code that you want to run, and the output appears immediately below the selection. Since the REPL is just an editor, you can just delete any output that you don't want. History behaves just fine as well.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.