Tuesday, September 09, 2008

Reports on IronPython and Dynamic Languages from Recent Conferences

Several reports on talks on IronPython and dynamic languages from the Microsoft TechEd conference (New Zealand) and Microsoft Technology Summit.

Scott Yang liked harry Pierson't talk at TechEd:

The final show today was the highlight — “Pumping Iron: Dynamic Languages on .NET” where Harry Pierson talked about the benefit of dynamic typing languages and why they are useful to .NET users. Great presentation, and great arguments on why the lack of compile time checking is NOT really an issue. IronPython was used in the code example, which is something I am a bit familiar with.

Jamie Penney's notes on the same talk:

WEB305: Pumping Iron: Dynamic Languages on .Net - Harry Pierson

  • Tradeoff between Type Safety and Flexibility
    • Rails ActiveRecord example - AR adds the column names of a table as properties on the model class at run time.
  • Real products are being shipped on IronPython - Resolver One
  • Dynamic languages are very productive - good for initial work on greenfield projects.
  • Dynamic languages are not as fast as Static languages, so optimise by replacing slow parts of Iron(Ruby/Python) with C#. This is easy in the Iron* languages.
  • Dynamic Languages are easy to teach and learn.
    • Short on Ceremony - You don't have to add extra stuff like package management or class creation to python if you don't want to.
  • Formatting and whitespace matters. All Python code looks the same, so it is easy to start working with someone else's code.
  • Dynamic languages are powerful.
    • AOP is easy in Python - it is possible to pass functions around as they are first level citizens, or you can use decorators to wrap functions.
    • You can create new types at runtime - example given was an XML to Python loader, which created Python objects from any given XML document.
  • Iron* languages are first class .Net citizens.
    • Interop with other .Net code. Easy to use C# or VB.Net code from Iron* languages, but it is harder to go the other way. Standard .Net assemblies just work in Iron.
  • Iron languages are embeddable by using the DLR.
  • Microsoft are working on integration with Visual Studio currently, due in 2009.
  • IronRuby and IronPython are both true Open Source.

A report on dynamic languages from day 2 of the Microsoft Technology Summit. This is from a talk given by John Lam:

Dynamic Languages @ Microsoft
John Lam, Senior Program Manager for Visual Studio Managed Languages discussed the Dynamic Language Runtime. In response to his own rhetorical question asking why Microsoft would support dynamic and open source languages on the .NET runtime, he listed the following reasons:

  • increased opportunity to get Microsoft technology used
  • clear trend to build stuff on OSS
  • developers want freedom to create stuff
  • developers want freedom to see the source code

The Microsoft Permissive License got changed to Microsoft Public License(MSPL), and got OSI approval.

The Dynamic Language Runtime(DLR) was refactored from the IronPython implementation. Common code and services that were needed for dynamic languages was extracted into a reusable framework.

Because the DLR is distributed as MSPL, anyone can port to other platforms. So assemblies can run on Mono without changes.

Microsoft is hoping to have Rails running on the DLR by RailsConf 08. John demoed Django today, but acknowledged having to make a few changes to the Django source to do so. He also admitted that both IronRuby and IronPython have performance issues right now.

No comments:

Post a Comment

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