It's a good move for Microsoft but kind of a sad statement on the computer industry in general.
Let me preface this by saying I make the purchasing decisions for my agency so I'm as guilty as anyone.
But the reality is we're all kind of lazy. Developers don't want to rewrite their programs, IT admins don't want to learn Linux and all in all people just want to tow the line. But with x64 processors becoming mainstream and Microsoft pressuring hardware makers not to offer XP drivers we as an industry all have to upgrade to something.
That will essentially be the basis for Windows 7's sales and that's why this feature is both a good idea and a depressing statement on us all.
IMHO the problem is not that developers don't want to rewrite their programs, it's that they don't want to maintain them, and don't want to learn.
There's no problem with letting old software stop running at some point, provided said period is long enough. The problem with Windows and its back-compat is that it supports more than legacy apps - many developers release brand new applications that still rely on long-deprecated API and technologies. This complicates back-compatibility, since removing API will now kill new apps instead of just the decade-old ones it's meant to target.
Developers need to get a lot less lazy - if the API says "deprecated", do NOT use it. Do not use undocumented calls... If people started programming instead of layering on hacks, this wouldn't be a large problem.
simple solution: microsoft releases as scan utility that counts the number of unique deprecated calls. The higher the count, the more costly the software maintenance, and the less preferable it is. so, all companies can independently evaluate a piece of software and developers can't hide their shoddiness.
Companies often do - I've worked for shops that knew a rewrite was a good idea, and that hacking layers of old API onto their product was a bad idea in the long run.
But management isn't always focused on the long run.
Do you have a citation for "Microsoft pressuring hardware makers not to offer XP drivers?" I'm sure they are pressuring them into offering Vista/7 drivers but I'd be surprised if they were telling them to stop offering XP drivers.
People want maximum benefit for minimal investment. My friend just bought a 2005 Corolla instead of a 2009 Corolla. The 2009 model is much better, but it isn't 225% better to match its cost. It is the same thing with XP and Vista. There really are a lot of important benefits to upgrading to Vista from XP and from IE6 to IE8. But, people aren't convinced that it is worth the cost of upgrading. Especially now that Windows 7 is around the corner, nobody wants to roll out a new Vista deployment that is already obsolete. Instead, the companies that avoided upgrading are going to save a lot of money upgrading directly to IE8/Win7. And, they are probably not going to upgrade from IE8/Win7 for another 5-10 years.
By the way, the #1 reason for having this virtualized XP feature is to run IE6 inside of Windows 7. Some companies that didn't upgrade their internal web apps to with with IE7/IE8 are going to save a lot of money because of that.
Linux and OSX have had a number of ways to pull this off for ages. I don't really consider the idea the MS is doing this on their own stack a big surprise.
What still surprises me is that it took the Open Source community to provide full DOS execution on modern systems by means of DOSBox (which basically emulates a DOS era x86 system) instead of the hack-it-up route MS took for Win95 and pretty much abandoned on the road to XP.
Contrast that with other companies (say, IBM and SUN) which have binary compatibility going back to the early 80s and beyond..
Windows XP still supports 16-bit Windows 3.x applications. Sun's backward compatibility guarantee goes back to SPARC7 (circa 1987) which was already 32-bit. Windows 3.0 was 16-bit and was released in 1990. I don't know about IBM but I imagine the situation is similar. Linus didn't even start Linux until 1991. Desktop Mac OS X was released in 2001. Microsoft's compatibility achievement there is much more impressive to me.
AFAICT, the primary reason for this compatibility mode is to run IE6 side-by-side with IE8, so that corporations don't have to upgrade their web apps all at once. Neither Linux nor Mac OS X offers that feature for free; you can virtualize XP in Linux and Mac OS X but you don't get a free XP license with them.
I imagine it won't use much at all: it's a special copy of XP, in a specially-written VM, running on a single platform. They can likely get memory management, and other crazy things, to fall through to the host OS.
I hope, though, that they're not trying to make XP applications as secure and trustworthy as W7 applications by wrapping them in a slow software condom; that, instead, they're just trying to ensure backwards-compatibility to the utmost extent possible. If something could crash XP, it should be able to crash W7 transparently through VXP—that's the level of entanglement where you start to see real performance. The users who need the old applications, that ran on XP but don't run on Vista, know what the bugs are; they'd rather have the same bugs, with the same symptoms, than new bugs. They know what they're getting into when they install something in XP-virtualization mode, so we don't have to improve the experience beyond what it was like in XP just for them. That's what releasing a W7 version is for.
"If something could crash XP, it should be able to crash W7 transparently through VXP"
Pretty sure users are going to be willing to give up a degree of entanglement to both be able to run their XP apps and have a system that doesn't crash. That alone would be an incentive to upgrade to W7.
Classic on OS X worked the same way, too: a Classic app could take down the entire Classic environment, but OS X would safely charge on apace. This was definitely something that helped drive people to upgrade.
Microsoft does heavy optimization for Windows OSes (see http://blogs.msdn.com/virtual_pc_guy/archive/2004/11/05/2527...). Windows 7 is also quite fast on its own on modern hardware, even if it can't stack up against XP on 2001 machines. I don't think it's too much of a stretch to see people using this technology regularly and seamlessly, especially since third-party companies have been doing this on the Mac for years.
FTA: Now, they can claim almost complete Windows XP compatibility, or almost 100 percent compatibility with all currently running Windows applications.
It'll be interesting to see what software that currently runs on XP fall outside of the "compatible" line.
Is it sandboxed? Or does it have free-ish reign of the user's resources? Meaning indefinite patching of XP, assuming that there'll be a substantial enough target for XPM-specific malware?
Rather than virtualization, I'd prefer to see something like WINE. You would think that Microsoft would be able to write translation layer without the overhead of a virtual machine.
this is potentially huge over the long run, as the article implies, but to state it more clearly, it frees future versions of windows from a significant degree of the legacy burden borne by the line up to version 7. not only does this give microsoft more flexibility with windows, it gives them a plausible roadmap for a transition to midori, or whatever is eventually declared the platform of the future.
Let me preface this by saying I make the purchasing decisions for my agency so I'm as guilty as anyone. But the reality is we're all kind of lazy. Developers don't want to rewrite their programs, IT admins don't want to learn Linux and all in all people just want to tow the line. But with x64 processors becoming mainstream and Microsoft pressuring hardware makers not to offer XP drivers we as an industry all have to upgrade to something.
That will essentially be the basis for Windows 7's sales and that's why this feature is both a good idea and a depressing statement on us all.