Round 6: Hardware compatibility
There's no question that hardware compatibility was initially a sore spot with Vista. This was particularly true for mobile users who had to suffer through a variety of functional and operational problems as they waited for updated device drivers. And some of us are still waiting: I, for one, have yet to find a feature-complete video driver for my Dell XPS M1710, and I consider myself to be a fairly resourceful fellow.
But beyond scarcity, there is the issue of revalidation. Most sane IT shops have implemented strict rules regarding what is and is not an accepted hardware configuration. Departments with names like "PC Engineering" spend copious time testing and certifying specific component combinations, isolating problem configurations, and feeding the necessary troubleshooting guidelines to their help desks. A migration to Vista means repeating these steps, and then some, while the immaturity of the Vista driver base will have IT racing against a moving target.
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.