Dare posted up the other day about Microsoft's language choices and how they have “missed the boat” with some of today's trendsetters. He mentions that Microsoft is too busy competing with Java and the JVM with C# and, as a result, other language/technology crowds aren't receiving enough attention. He makes some good points, so definitely give it a read.

I originally just commented on the post because at one point he states that Microsoft provides no JavaScript IDE. Since I've been using versions of it since around 1996, that just didn't seem to make sense to me. Not to mention the Visual Studio IDE has provided the best JavaScript debugger out there (IMHO) since v6.0 with Visual InterDev.

Anyway, I just went back to the post and reviewed some of the other comments that have been made and naturally people have to bring out the “Microsoft is a monopoly” argument and that once they move into a space and crush the competition they just go stale. What I don't get about this argument is that, on one hand people bitch Microsoft is a monopoly and always tries to conquer everything, yet on the other hand people expect them to implement everything. Why in the hell does Microsoft have to provide every language? What's wrong with IronPython or any of the other language implementations that run on the CLR!? Just because it's not provided out of the box by Microsoft you can't use it? Wouldn't that just perpetuate the whole “Microsoft is a monopoly” ? Microsoft did their part by providing the CLR (100% free of charge I might add), standardizing it, having resources out there helping third parties port their languages to it, etc. Microsoft provides four languages out of the box that run on the CLR: C#, VB, JScript and C++. Why should they have to be the ones to provide all the others? 

Next, we all know a language isn't much good without a decent development environment. Well, Microsoft helps out there too: VS.NET is 100% extensible and anyone who might port a language to the CLR can also integrate into the IDE and provide a full set of debugging/editing services just as well as Microsoft can. Don't want to integrate into VS.NET because it's too “heavy” or you don't want to require your users to fork over the cash for it? Fine, write your own IDE and just hook into the CLR using the debugging and profiling APIs.

It's impossible for Microsoft to please everybody. In the end they are a business and need to be strategic about which battles they choose. If you don't like the fact that there's not a version of your favorite language on the CLR or that the support isn't that great, quit bitching and do something about it!