Yes, you can tell from the title, this is another
You all know I can't stand .NET’s virtual machine architecture, and you probably think I’m a hopeless dinosaur who just doesn’t get it. Everyone knows Microsoft is great, everyone knows .NET and Java are the future, etc. Someday Ole will retire from railing at progress. (And everyone will be spared Sunday morning rants :)
Let me give you a clean example of what I can't stand about .NET’s CLR: Visual Studio 2005.
In terms of functionality, VS05 is a wonderful and pleasantly evolutionary improvement to VS6, which dates from 2001. There are all sorts of little niceties sprinkled all over the program which make a developer’s life easier. And the debugger is better, and edit and continue now works, and so on. But in terms of performance, VS05 is a horrible dog. And if you're a developer spending your whole day in the edit – compile – test loop, that performance goes straight to your bottom line.
I have a standard-Aperio-issue laptop, an HP nc8230 with 1.8GHz CPU and 2GB of RAM. Nobody should need a faster machine than this for development. And yet on my machine, VS05 is s l o w. The editor is slow, it can't keep up with my typing. The interface to P4 (my CMS) is slow. The make management is slow. The debugger is horribly slow. Switching windows is slow! Looking at compile errors is slow! Loading project properties is tectonically slow. Everything just feels glacial. Even just launching a new solution takes “forever”.
So why is VS05 so much slower than VS6? That’s easy, VS05 is written in C#, while VS6 was written in C++. It isn’t the C# language than makes VS05 slower – you could claim that C# is nicer than C++ as a language, and get no argument from me – it is the fact that C# compiles to an intermediate bytecode which then has to be interpreted by the CLR at runtime. A horrible architecture which slows everything down and provides no benefit.
If it wasn’t for the fact that VS6 has been discontinued, I would seriously consider switching back. As it is, I have to use VS05 all day long, and I hate it. I thought maybe I would get used to it, but I just hate it more every day. I keep thinking how wasteful this is, that we all have to suffer just because some idiot inexperienced kids in Redmond copied some idiot inexperienced kids in Santa Clara. (In Sun’s defense, I will say they were explicitly targeting a “write once, run anywhere” environment including multiple machine architectures, while Microsoft knew they were only running on Intel.)
Thanks for listening, we now return you to our normally scheduled content...