When I worked on a large contract for a customer with 20,000 desktops and a couple of thousand servers we used to take great delight in waxing about our server virtualisation to major hardware vendors... and then drop the bomb that we had virtualised 250 instances of Windows NT...
NT was (then) 7 years out of support and is nearer 10 now. But if you have apps that run on it, they still run on it...
However trying getting an replacement network card with NT drivers these days. Virtualisation is your man...
I hate Jeff, but this post makes sense: instead of being constrained by the backwards compatibility requirement, one can just pack every past version of the software on each release, just like HTTP clients and servers do when they ask for the protocol version.
I see this also as a way of getting developers to stop being so damned lazy. If I were MS I'd start stripping deprecated API calls out of the OS immediately - force anyone who's still running an ancient code base that they refuse to maintain to virtual mode. This might light a fire under their asses to get "Windows 7 compatibility" (i.e. no lame dead API hooks) higher priority.
Back-compat has always been the main force that held MS back, I'm glad they're doing something about it.
If MS strips out deprecated APIs, won't they have to include virtualised XP with all new versions of Windows, and not price discriminate on it? They don't want horror stories of Aunt Tilly not being able to run her favourite apps on her new PC and blaming Windows.
The thing is, Aunt Tilly is likely to run apps like IE, Outlook, Office, and Firefox, all of which are run by teams that are professional enough to keep their code up to date. It's unlikely that these guys can't have "Windows 7 compatibility".
The horror stories will come from enterprise software, where companies are running Win3.1 binaries even to this day, and where developers are even lazier.
And there's no reason to strip out WinXP compatibility per se from Windows 7 - IMHO the OS needs to keep native back-compat for at least the last couple of generations - but anything older shouldn't be in the code base.
That's true, but when MS decided to make all versions of windows backward compatible, I think they were thinking more about companies than the home user. Companies are the ones who really need to be able run their programs on their machines, sometimes really old programs that no longer have support or alternatives they can choose from.
These ancient, unsupported apps aren't things like spread sheets and word processors, they're industry specific applications. They're much more expensive to create and update (and buy) because of limited demand, and there's often little choice in what software a company can use.
I've been working on a project to upgrade a old DOS based industry specific app to a "modern" browser app. There are still people using the DOS based version, and our main client for the browser app is still using Windows 2000 and IE 6.
I have suffered a similar fate. Back in 1998 I had to translate the shipping cost calculation of a huge brick-and-mortar store in Brazil written in FoxPro - it was the _only_ documentation on how to calculate it they had and finally I gave up on understanding it and made a line-by-line translation for their web store.
It ran for about five years, until the company went bankrupt.
In the Windows world? Yes. By no coincidence whatsoever: Windows customers have been trained to this behavior, over decades, by Microsoft and Moore's Law.
Microsoft thrives when people buy new PC hardware, because the easiest way to acquire a customer for a new Windows license is to bundle that license with every PC sold. [1] And Moore's Law provided great leaps in processing speed every year or so. So there was never any incentive to save on resources. Quite the contrary: A Windows release which pushed the envelope of compatibility with current hardware encouraged fence-sitting users to bite the bullet and buy a new PC -- with a new Windows license -- rather than watch their apps gradually slow down or become incompatible as app developers gradually introduced features of the new Windows into their codebases.
Among other things, think of it as a subtle form of copy protection. Back in 2001, you could buy one copy of Windows XP and install it on all of your Win98 boxes. But it would run like crap. Better to just buy some new boxes -- each of which comes bundled with a copy of XP.
Of course, once PCs and Windows became "good enough" the whole strategy fell apart. We seem to be in that world now. The new rage in consumer computing is netbooks and smartphones -- machines that deliberately throw away performance in exchange for other useful characteristics like "cheapness" or "lightness" or "low power consumption".
---
[1] For years it was nigh-impossible to get a company like Dell to sell you a PC without a Windows license included. Linux users complained and fought for years over this "Microsoft tax". For all I know, this is still a problem.
What I don't understand is why people keep voting up CodingHorror posts: that blog has never been interesting... mostly boring observations of obvious facts, nearly always somehow Windows-centric. Even Barnes&Noble "gets it" by now - their Windows/.NET books have been pushed into the bottom shelves to make up room for Cocoa, Python, Ruby development and Ubuntu books.
Yeah... virtualization. Yeah, good way to run legacy apps, here is a screen shot of how it works, see kidz?
I'm sorry, but if virtualizing an old OS in order to forego concerns about backwards compatibility is "The Virtualization Future", then it arrived on OS X in 2001...
17 comments
[ 2.9 ms ] story [ 13.9 ms ] threadNT was (then) 7 years out of support and is nearer 10 now. But if you have apps that run on it, they still run on it...
However trying getting an replacement network card with NT drivers these days. Virtualisation is your man...
Back-compat has always been the main force that held MS back, I'm glad they're doing something about it.
The horror stories will come from enterprise software, where companies are running Win3.1 binaries even to this day, and where developers are even lazier.
And there's no reason to strip out WinXP compatibility per se from Windows 7 - IMHO the OS needs to keep native back-compat for at least the last couple of generations - but anything older shouldn't be in the code base.
If not, then there isn't true backwards compatibility, just more bloat.
You should always have an exit strategy.
But running an emulated Windows environment is not the worst possible scenario.
I've been working on a project to upgrade a old DOS based industry specific app to a "modern" browser app. There are still people using the DOS based version, and our main client for the browser app is still using Windows 2000 and IE 6.
It ran for about five years, until the company went bankrupt.
Is an operating system to only be taken seriously if it requires a significant amount of resources to run?
Microsoft thrives when people buy new PC hardware, because the easiest way to acquire a customer for a new Windows license is to bundle that license with every PC sold. [1] And Moore's Law provided great leaps in processing speed every year or so. So there was never any incentive to save on resources. Quite the contrary: A Windows release which pushed the envelope of compatibility with current hardware encouraged fence-sitting users to bite the bullet and buy a new PC -- with a new Windows license -- rather than watch their apps gradually slow down or become incompatible as app developers gradually introduced features of the new Windows into their codebases.
Among other things, think of it as a subtle form of copy protection. Back in 2001, you could buy one copy of Windows XP and install it on all of your Win98 boxes. But it would run like crap. Better to just buy some new boxes -- each of which comes bundled with a copy of XP.
Of course, once PCs and Windows became "good enough" the whole strategy fell apart. We seem to be in that world now. The new rage in consumer computing is netbooks and smartphones -- machines that deliberately throw away performance in exchange for other useful characteristics like "cheapness" or "lightness" or "low power consumption".
---
[1] For years it was nigh-impossible to get a company like Dell to sell you a PC without a Windows license included. Linux users complained and fought for years over this "Microsoft tax". For all I know, this is still a problem.
Yeah... virtualization. Yeah, good way to run legacy apps, here is a screen shot of how it works, see kidz?