The CLR and Dynamic Languages

This article is a summary of IronPython, an implementation of a dynamic language (Python) on the CLR.  Basically it's been “common knowlege” that the CLR is not a good platform for dynamic languages (basically languages that make a lot of decisions at runtime instead of at compile time).

The discovery is that the CLR is actually a pretty good platform for a dynamic language.

This is good news since Monad (the new Microsoft Shell) has a scripting language that is (fairly simple) dynamic programming language, and knowing that we should be able to expect decent performance from those scripts is encouraging.

(Monad lets you execute statements like:

  $o = new-myobject
  echo $o.Rows.Count

And this is executed much like VBScript in that there is no compiler.. it's at runtime that the runtime has to figure out if $o has a Rows property, and if that property has a Count, etc..)