Windows XP, by contrast, has a mature and well-vetted compatibility base, with broad support from virtually every manufacturer. And while Vista will almost certainly catch up in time, as things stand right now, every new device insertion is a bit of a crapshoot. Just the other day I was puzzled when my Vista-equipped notebook wouldn't recognize a generic HP LaserJet 1200 printer.
Decision: When's the last time you worried about driver support under Windows XP? With an installed base into the hundreds of millions, chances are you'll still be finding XP drivers long after Vista's grandchildren are being put out to pasture.
Round 7: Microsoft software compatibility
It's a truism in Windows circles: The Microsoft Office team charts its own course. As the drivers behind the company's longest-lived cash cow, the Office folks have the luxury of being able to ignore the hemming and hawing of the Windows team and to choose to support whatever platforms make business sense. In the case of Office 2007, this meant eschewing any exclusive tie-ins to the perennially delayed Vista. As a result, the latest version of this bovine ATM works equally well under both Windows XP and Vista, much to the chagrin of the guys on the other side of the OS Chinese wall.
It's a similar story with Microsoft's BackOffice product line. There are few, if any, advantages to deploying Vista as a client to Microsoft Exchange, Microsoft SQL Server, or Microsoft SharePoint. As the gatekeeper to many of these resources, Microsoft Office often serves to level the playing field. And as I just noted, the current version of Office – Microsoft Office System 2007 – runs great on Windows XP.
What about future versions? There's no doubt that, eventually, Microsoft may try to target Vista exclusively. However, finding features and functions that Vista supports and XP doesn't is not as easy as it sounds. Remember, much of Vista's "newness" is only skin deep. In fact, outside of DirectX 10 – which is exclusively a Vista technology – there's no valid reason for excluding XP from the supported platforms list of any new application.
Of course, this may change come Windows 7, the feature set of which is still very much in flux. However, nobody's arguing that you should stick with XP forever – just that you can stick with it for now and potentially skip a Windows generation without incurring any real pain.
Decision: Windows XP is still, and likely will remain for some time, the compatibility bar for new Microsoft applications. If and when Microsoft attempts to create an exclusive Vista tie-in, the company will need to articulate some valid technical reason – one that stands up to scrutiny from the IT community – for not supporting Windows XP.
Round 8: Third-party software compatibility
When Microsoft first started marketing its next-generation desktop OS project (Vista), it trumpeted a number of foundational technologies that were destined to usher in the next wave of killer applications. Some, including WinFS, fell by the wayside. Others, including Windows Presentation Foundation (WPF) – which was quickly back-ported to Windows XP when developers balked at the idea of Vista exclusivity – have proven to be nothing more than the extensions to the .Net Framework. In fact, when Microsoft made these pronouncements, those of us "in the know" (software developers and programmers familiar with the intricacies of .Net coding) had a good laugh. Nobody in their right minds would produce any complex piece of traditional, fat client software using the sluggish, bug-ridden .Net Framework, let alone a set of even buggier and less proven extensions.
A year later and you'd be hard-pressed to name a single commercial WPF application. In fact, I can't think of any third-party applications, outside of a few DirectX 10-specific games, that run better on Vista, never mind requiring it. Whenever Vista-specific development work has been done, it's usually been to fix problems created by the introduction of UAC. I personally spent several hours in Microsoft's compatibility lab at last year's TechEd conference working out UAC kinks that were affecting my own applications. In such a climate, where Vista is the outsider and represents a tiny fraction of the installed base, targeting it exclusively is tantamount to committing commercial suicide.
New applications that do ship are still typically native Win32 applications, written in C++ using tried and true technologies such as Microsoft Foundation Classes (MFC) or Application Template Library (ATL). This, for better or worse, is the state of third-party development for the foreseeable future. And, of course, these applications all run great on Windows XP, and will continue to do so for a long time to come.
Decision: ISVs go where the money is, and right now that's still the generic Win32 API (plus MFC/ATL) running on the range of Windows platforms. The only exceptions to this rule are tools or utilities that target Vista-specific functions such as the new boot loader and sidebar widgets. The risk of missing out on important third-party application functionality by sticking with Windows XP is next to nil.
Round 9: Developer tools support
As a commercial Windows software developer, I try to stay current on the product cycles for Microsoft's developer tools. Specifically, I like to keep a close eye on the evolution of Visual Studio. Visual Studio is my office for much of the workday, and I'm always looking for new and better ways to get things done faster and with less debugging.
Visual Studio 2005 was a great tool that suffered from nagging performance issues in the IDE and the general bugginess of the .Net Framework 2.0. Visual Studio 2008 addresses most of these shortcomings while also allowing me to target both Windows XP and Vista with new WPF applications. And like virtually all of Microsoft's developer software, it runs great on either OS. If anything, Visual Studio 2008 runs a bit faster on Windows XP, though Windows Server 2008 gives XP a run for its money in this regard.
Therein lay the rub: With no tangible advantage to running Visual Studio 2008 on Vista, and with some very tangible performance advantages to sticking with Windows XP as a desktop OS, it's no surprise that a lot of developers are still coding on the older platform. Functionally, you don't lose anything by writing code in Visual Studio 2008 – or any other commercial IDE – on Windows XP. And if and when you do need to test for Vista compatibility, you can choose from any number of free and commercial virtual machine managers to create the desired test conditions.
Decision: With most developers still targeting the Win32 API, and with virtually the entire .Net Framework 3.0 functionality back-ported to XP, there's simply no compelling reason to base your IDE on Windows Vista.
Round 10: Future-proofing
It's the nightmare scenario that every IT planner dreads: You allow your installed base to fall behind the technology curve, only to find yourself unprepared when that next killer app appears over the horizon. However, in the case of Windows XP, you have the world's largest installed base on your side. Nobody in their right mind will try to force obsolescence on you anytime soon. Whether it's something simple, like an updated API, or more radical, like a complete paradigm shift, chances are good that the relevant components will be supported on Windows XP for many years to come.
With virtually the entire .Net 3.0 Framework supported on Windows XP, there are no significant advantages to running the latest Windows application model on Vista, outside of a few graphics acceleration functions (some window painting functions get a boost from the Desktop Window Manager). Even Microsoft isn't stupid enough to force the migration issue, especially after the very public backlash that has hobbled Vista adoption for over a year now.
But perhaps the biggest insurance policy for Windows XP loyalists, and the crippling knockout blow for Vista, is the impending arrival of Windows 7, due within the next 18 to 24 months. The idea that IT shops will encounter some kind of showstopper issue between now and late 2009 (the rumored target time frame for the Windows 7 release) has little credibility.
Decision: If ever there were an opportunity to skip a Windows upgrade cycle, the XP-to-Vista transition is it. XP may be showing its age, but its age is mainly skin deep: The new challenger is flashy, but also slower and heavier, and it lacks a killer combination of compelling features needed to unseat XP.
At the end of the decade, when Microsoft's executives look back at the debacle that was Windows Vista, they'll see that simply slapping a fresh coat of paint on an otherwise aging Windows architecture wasn't enough to fool anybody. Let's hope they also realize that, as with any major update, they needed to make their case to IT. Focusing on consumers while ignoring their enterprise customers, and assuming IT shops would simply fall in line, was no way to execute a platform migration.
Here's hoping that Microsoft indeed learned its lesson, and will engage us early and often when pitching the promise of Windows 7.
So there you are, signing the "Save XP" petition, shaking your fist in triumph as you stick it to "the man." It's a liberating feeling. You've found the courage to buck the trend and jump off the Wintel upgrade treadmill. You feel empowered, enlightened. But still, there are these nagging doubts.
Can you really skip the Vista upgrade cycle? Will Windows XP still be properly supported by Microsoft and, as a primary development target, by third parties? Is there something we've missed, some hidden gotcha that's going to trip us up 12, 18, or 24 months from now?
Of course, there's no universal answer to the Vista upgrade question. Yes, in all likelihood you'll be just fine sticking with Windows XP – at least until Windows 7 ships in 2009 or 2010. But let's not rush to universal judgment. Let's take a close, measured look at the key considerations, and compare Vista's merits against the state of XP on the essential points that IT organizations and end-users care about. And if we can't solve this calmly and objectively, like fair-minded professionals, then let's at least have a good fight.
Are you ready to rumble? OK, then. Operating systems, return to your corners, and come out swinging.
Round 1: Security
Security is one of the first areas to come to mind when considering a Vista migration. Features such as UAC (User Account Control) and Internet Explorer Protected Mode have been making headlines for more than a year – but not always in the context Microsoft would have wanted. UAC, in particular, has been savaged by critics who balk at its many annoying confirmation dialogs. Just try enabling or disabling multiple network connections quickly or moving a file into a protected folder.
However, even with UAC – which is really just a more visible, "in your face" implementation of the user account controls that have been built into Windows NT since day one – Vista still isn't fully secure. There are documented ways around UAC involving Internet Explorer, security token privilege escalation, and the exploitation of the "deprecated administrator" status of the default Vista account model.
More importantly, however, is the fact that most IT shops have already implemented a form of UAC under Windows XP by not allowing domain users to run as local administrators and, in some cases, writing their own "elevation" utilities to make it all work seamlessly. In practice, these "locked down" XP systems are in some ways more secure than a UAC-protected Vista system, because they're immune to the aforementioned privilege elevation exploit. To bring Vista systems on par with XP, you need to force users to work with a true non-admin account, as opposed to Vista's "deprecated admin" account, which puts you right back at square one (that is, where XP is today).
Other security features, such as the updated firewall and more esoteric, internal fixes like Address Space Layout Randomization, are interesting but by no means compelling. Most IT shops have implemented a proper hardware firewall solution or third-party software for mobile/remote users, and address-based code exploits usually require some degree of social engineering to get them to work – a phenomenon even Vista can't thwart.
Decision: From a security standpoint, there's just not a lot to compel XP shops to upgrade. Many of the issues addressed by Vista have already been resolved under Windows XP using in-house applications or third-party tools.
Round 2: Manageability
One of the key drivers for Windows 2000 adoption, and later Windows XP adoption, was the debut of Active Directory and its Group Policy framework. For the first time, IT shops could address the myriad configuration management issues that plagued traditional, fat client installations, using a standardized, centralized repository of rules and restrictions. Vista adds a few extensions to this mechanism. However, as with the aforementioned security improvements, many of these issues have already been resolved.
For example, Vista adds support for locking down block devices at the client level. This is a useful feature – you can restrict users from accessing certain external media devices, such as CD driver or USB keys – but it's another XP loophole that was closed long ago by third-party management agents. Likewise, the inability to install printer drivers using a non-administrator account – something Vista now allows via a Group Policy extension – was resolved directly by many large IT shops, in some cases through the creation of their own elevation utilities.