I think we are heading into a language renaissance, its been on its way for few years now with languages like Ruby and Python becoming more popular. Both of these languages have interesting dynamic aspects to them that make them appealing both as learning languages and a platform for some of the more interesting commercial projects (one of my favorite online games is written in Python).

As a developer its important to keep an open mind about programming languages and actively experiment with as many as possible. I know that I haven’t played with Ruby enough to truely appreciate it but I hope to rectify that in the next few months, although I have spent more time with Python as I’ve needed to debug a few Python programs when I drag them over to Windows kicking and screaming.

IronPython is a very popular version of Python that supports the .NET runtime written by Jim Hugunin who now works for Microsoft with Joel Pobar.

From what I gather both Jim and Joel are tasked with making the CLR a more hospitable home for dynamic languages. It makes perfect sense for language developers to target the CLR because they get so many runtime services for free – and its a lot more fun focusing on the core language features than figuring out how to manage the heap efficiently.

When the CLR first shipped there were a number of established languages that were ported to the runtime - especially by the academic developer community, but more recently I’ve seen a number of projects start up with new or derived languages.

One such example is “Boo” – cool name. Today I downloaded Boo and took a quick look at it. As the blurb page says, its borrows a lot from Python for its language syntax, but I was surprised how quickly I was able to get up and coding in it.

Booish

I loaded up the Boo interactive shell and pretty much started typing code. The above screenshot is actually my second session with booish.exe (the first one I made silly mistakes like using semi-colons). I think a version of C# with an interactive shell would be useful to teach C# – we could call T# – the prompt could be a swigly bracket