What's Next for the .NET CLR?
2000
Microsoft releases beta versions of the .NET Framework. At that time the .NET Framework and the CLR were the core, the foundation of .NET. The CLR was modernizing/popularizing/mainstreaming compile-on-demand, runtime hosted programming. (Sure, Java was doing it, but .NET ushered in a change such that programming languages were to predominantly consist of languages compiled to IL and hosted in a runtime.) The Microsoft development division leaders were those building the framework. (Okay, C# was cool to but not really a revolution... just the perfect language to match the Framework. What made C# spectacular was it's meticulous development and painstaking pursuit of OOP perfection.
2003
Generics are added to early betas of the .NET Framework. Revolutionary... no... just an obvious next step that folks begged for at the language level but Microsoft wisely postponed so that it could be in the Framework. Was there anything revolutionary at the time for the .NET CLR.... not particularly.
2006
Okay, so what is on the horizon in the .NET CLR? I would say LINQ but unlike generics, this is a language implemented feature, not some fundamental change in the CLR. Well, Microsoft is obviously very pregnant with WCF/WF/WPF - known as .NET 3.0. But this didn't emerge from the CLR team and there wasn't any fundamental CLR change needed to support .NET 3.0 development. Phoenix is cool too but not anything that is garnering wide spread adoption.
So... what's next for the CLR? As I see it there are three main possibilities:
- Move to maintenance only mode. Heck, lets focus higher up the stack, we have solved this level in the same way that we "solved" assembler - making it unnecessary detail for the vast majority of developers.
- Aspect Oriented Programming: The idea has fallen out of vogue but there is still an untapped vision here.
- .NET scripting/dynamic language support
Well, Microsoft's recent hire of John Lam seems to be pretty indicative of where they are investing. And I am excited. If the pain I have endured to learn PowerShell is any indication, Microsoft has lots of work to do in this area. Sure, I love PowerShell but only because it has a .NET object pipe and that it exposes .NET objects on the command line. After that... Yuck! Anyway, imagine a world in which the CLR changes to truly embrace and conquer the dichotomy between strongly typed languages and scripting languages. Imagine scripting languages that supported intellisense. Imagine writing C# code on the command line and not having to go through the bother of compilation to an executable.
Well.... is that where Microsoft is going for sure? I can't say unfortunately, but I do know that the CLR team has been wrestling with it and the dabbling with Python, ..., etc means they clearly looking at it today and have been for some time now. I look forward to seeing what will emerge. I hope there is enough time to still see it in Orcas?
P.S. In hiring John Lam, Microsoft has made another surprising hiring move. Not because it was a bad move - certainly not! Rather, it is surprising because John Lam was willing to be hired by Microsoft. Again, not because he should have any unwillingness to working for Microsoft - certainly not! Rather, it is surprising because top industry experts have already been courted unsuccessfully by Microsoft multiple times in the past(meaning each expert multiple times). What makes this time different? I don't know in this particular case besides what John states in his blog, but I do know that Microsoft does not just make one attempt to hire these types of people and then quit. Generally, expert hires like this only come about by long term relationships - some times taking years.
Sunday, October 22, 2006 8:41:16 PM (Pacific Standard Time, UTC-08:00)
Computer Related | .Net