Io on .NET
In the past I’ve done metaprogramming for configurable applications using code generation techniques. The technologies I used were a mix of XSLT and T4 templates. However, I learned that generating code this way is very cumbersome and requires that you add an extra compilation step in addition to compiling the base libraries for your application framework. At the end of the project I had the feeling that using a dynamic language would have been a much better bet than trying to generate C# and compile on the fly.
So what does this all have to do with .NET or Io anyway? Well, having done some work with JScript.NET, I’m now watching out for dynamic languages on the .NET runtime that would be suitable for doing metaprogramming. I checked out Clojure-clr recently and (from the same author) DotLisp a long time ago. I just ran across a .NET implementation of Io during a google search while reading this article by _why on manipulating code as data.
I’ll write up another post when I get a chance to play around with things some more, but in the meantime, I’ll show you that we have full access to the .NET runtime from the Io REPL:
Io> MessageBox Show("Hello")