Recently, Mary Foley at Microsoft Watch has been going off on Windows Vista (formerly Longhorn) along with some of her colleagues on one common theme. Their latest beef with Windows Vista is that (GASP!) it isn't written in Microsoft .NET. I suppose if someone knew absolutely nothing about computer operating systems and development platforms they might fall for such a dumb accusation, but professional journalists who cover computing technology should know better. Our own John Carroll did a wonderful job exposing the first Microsoft Watch article in his "Spreading the .NET surface area" blog two months ago and I thought that would be the end of it. Unfortunately I was wrong and here we are again two months later with this article and this article following up on the exact same bogus theme to bash the .NET development platform and the newly named Windows Vista operating system.
Microsoft .NET development platform, like Sun's Java is a development platform, is designed to run on top of a run-time engine that hides the nuts and bolds of the base operating system to make programming faster and easier. It is essentially a quick and dirty development platform for corporations to save costs on internal development projects with the trade-off that it will require a lot more CPU and memory resources to run the application. In general, you wouldn't ever want any mass production software to be written in either .Net or Java because they will typically eat up four times the memory and consume more CPU resources to do the same thing. To write an operating system in .NET or Java, even if it were possible, would produce the biggest hunk of bloat-ware garbage the world has ever seen. Fortunately, it isn't possible because some corporate bean counter might actually try and pull it off.
The reason it isn't possible to write an operating system in .NET or Java is quite funny when you think about it. Since .NET and Java both run on top of run-time engines, which in turn run on top of an operating system, how would you ever write an operating system in .NET or Java? What would supply the run-time engine and the OS beneath that in the first place? Operating systems have to be written directly to the hardware platform in highly optimized C, C++, and some Assembler and I wouldn't want it any other way. For someone to suggest that Microsoft's Vista should be written in .NET is comical at best and would be the equivalent of suggesting that Solaris or Linux should be written in Java.
This isn't a debate of whether Java is better than .NET or whether Vista is better than UNIX because people will argue that till the end of time. All I want to see is a little sanity in the debate.