A few months back I decided to try to get back up to speed with Windows. This was largely a career hedge — I was worried that I’d been doing server-side Unix work for so long that I was becoming a little one-dimensional, and this didn’t please me.
The toughest part about development in Windows is the lack of tools. In Unix, there are 1,000,000 different tools that fit perfectly in with the OS and you use the one that’s best for the task. Sure, Windows has most of the tools that you can find under Unix, but they don’t work with the OS nearly as well.
Microsoft’s .NET platform promises to change all of this for the better. Their goal seems to be making the entire system run under .NET and the tools are following. MS has their entire tool suite generating code for .NET. Unfortunately, they offer only a very limited range of languages — C#, a niced-up Java (which isn’t saying much if you aren’t a fan of Java); VB.NET, a niced-up piece of crap; managed C++, which will be great once the get the likes of Boost working with it. What really makes .NET cool, however, is that third-party developers are starting to write implementations of other languages — interesting languages — that target .NET.
Iron Python is my favorite, as Python is an imminently nice language and the implementation is very well done. More interesting, though, is something I saw on The Larkware News today: L Sharp .NET.
L Sharp .NET is a Lisp implementation (based on Arc) for .NET. According to the docs, the early implementation has all the good stuff that you’d expect from Lisp — functions, lexical closures, macros, etc. It’s currently only an interpreter, but they claim to be working on generating .NET executable files.
Unlike most of the other .NET languages (Iron Python excluded, of course), Lisp is a fun language. It’s seems less like work to code in Lisp, and that can’t be a bad thing. So yay for the L Sharp .NET folks.