Joel does a great job explaining what the issues are, and what the problems are as well as where we stand currently. He also briefly touches on stuff he’s talked about before, mainly why Windows 95 was so great (which coincidently just so happens to be when Joel of Joel on Software last worked for Microsoft). His argument is that basically 1/3rd of the code in windows 95 was compatibility stuff so that code that worked on older versions of windows still worked on windows 95. This includes code to make horrible horrible hacks that worked before still work on windows 95. His rant about the idealists and the pragmatists is basically re-iteration of this point.
And it’s a valid point. The reason Windows has dominated to this point is because what worked on windows 3.x, worked on windows 95, and what worked on windows 95 worked on XP. But things are starting to break down…
Eventually in all software you have to give up on what you had before and start fresh. Microsoft has so far managed to avoid this up to this point. Other manufacturers have already run smack dab into this problem. Apple ran afoul of this when they transitioned from OS9 to OSX, Linux hits this on a regular basis, but usually on a much smaller scale every time a new major revision of the kernel is released. The fact that Microsoft has managed to avoid this to this point is a testament to the people they’ve had working with them, but it’s become the expected behavior. And that behavior is going to come back and bite them in the ass.
When you do new things, you have to expect some of the old things not to work with your new things.
For all intensive purposes windows has become
on a highway of supercars.
There’s only so much bailing wire and bubble gum you can tack on before the thing is going to just fall apart. And the creaking you’re hearing is Windows.
Vista is a bastard child. Microsoft realized around windows 2000 that they needed to start fresh and crated a decent operating system, but due to marketing and time they had something that was windows XP underneath and all shiny on top.
To add all the new features they’re going to need for a next generation Operating system they’re going to have to start fresh.
Tabula Rasa (clean slate – not the video game)
With no back ties to previous cruft they can design features that are un-encumbered (new graphics layers, new file system layers, new registry stores, etc). This is also why Microsoft has been focusing on Virtualization technologies so much lately.
Once again Microsoft is cribbing Apple’s hard earned lessons. When Apple transitioned to OSX they added an emulation layer that allowed the modern operating system, to run the old broken OS9 inside it. It wasn’t perfect, and it allowed Adobe (one of their then premier partners) to be lazy and wait 2 years before issuing a new version of Photoshop for the new OS and the new Intel architecture, but it meant that almost all programs worked, (albeit slowly).
Once again to see the future of the windows platform you only need look as far as the closest mac.
The only possible way Microsoft has of preserving functionality with newer and newer versions of Windows it to emulate the previous versions. In the past that meant running code that had been designed to mimic older code, but windows has become so huge it’s become required that you run the entire operating system as a separate process in a separate emulated environment.
Microsoft is once again trying to shrink the foot print and the noticeably of virtualization with their new HyperV technology…. basically only emulating the parts of the operating system that a program accesses so that your program thinks it’s running inside windows 95, when it’s actually running on the latest and greatest version of windows, without spinning up a version of Windows 95 inside a VPC.
This is great, but it means in your next install of Windows, you’ll be installing every version before it (in a massive 40Gig or so install – at least that’s my guess of the what the final install will be), but storage is cheap. The question is will Microsoft charge you for the pleasure of running all their crappy old code?