David Berlind and Mary Jo Foley have been intensely following the story of QuickBooks incompatibility with Windows Vista. Mary Jo is questioning if Microsoft is responsible for this latest failure of QuickBooks (anything before QuickBooks 2007) incompatibility and went even further to give Intuit a free pass. Here are some interesting quotes from Mary Jo.
Another question: Is it Intuit's fault that its older products don't work on Vista? Or Microsoft's fault for changing the operating system in a way that it breaks them? The fact that Microsoft has decided not to make available publicly a list of apps that don't work right with Vista makes me wonder whether there could be lots more examples like QuickBooks. But when an application vendor throws in the towel and decides against trying to retrofit apps, can and should Microsoft be blamed?
To me, Intuit is making the choice Apple made a few years back when it drew a line in the sand and decided to cut off backwards compatibility for users of older versions of the Mac OS operating system. Microsoft has yet to do the same, although a number of company watchers believe that it won't take the Redmondians too much longer to decide that it can't keep make supporting old versions of third-party and Microsoft apps a priority.
I thought that latter paragraph was funny since Microsoft gets bashed if they even dare consider dropping support for a 6 year old operating system but it's somehow ok if Intuit decides to cut off backward compatibility for QuickBooks 2006 which is a little more than one year old. But getting beyond the double standard here, I'm going to settle this issue of blame with some hard facts.
I called Intuit (the maker of QuickBooks) and asked them why is it they can't simply create an application compatibility shim for QuickBooks 2006. As it turns out, it isn't QuickBooks 2006 itself that has the problem with Vista but all the Intuit and third party add-on software that communicates with QuickBooks 2006 that's the problem. More to the point, it's the intercommunication between all those applications and the fact that they're using forbidden techniques that have been banned since 2001 with Windows XP certification requirements that's the issue. Intuit admitted to me that they declined to seek Windows XP certification for all these years and they're just now making the necessary modifications for QuickBooks 2007. The reason this is relevant is because most software that is certified for Windows XP will automatically be compatible with Windows Vista. Exceptions to this are when the application needs to hook deep in to the operating system like Antivirus suites or hook directly in to the networking stack like VPN software. In those cases, updated Antivirus or VPN software will be needed.
The forbidden techniques in question is the fact that Intuit uses the Windows registry as a communication medium to talk to Intuit or third party add-on software and the portion of the registry being used requires full administrative privileges to write to. Windows XP certification has banned these practices since 2001 but Intuit never sought XP certification. The reason these programming techniques are banned is because they're dangerous and leaves the operating system wide open to attack. Nearly every piece of Malware, Spyware, and rootkit for Windows to date has taken advantage of the fact that they have free reign over the host operating system to make any kind of system level changes they want. Running in non-administrator mode has been one of the key advantages for Unix, Linux, and Mac OS X. The simple act of running Windows XP in non-administrator mode breaks every piece of Malware written for Windows to date but it also breaks applications that don't follow XP programming guidelines like QuickBooks. Windows Vista simply enforces these best practices by default.
Vista has a compatibility mechanism for legacy applications called shimming where legacy applications are fooled in to thinking they're running on Windows XP with full administrative privileges even though they are running on a locked down Vista machine. But that technique has its limits when something like QuickBooks has interaction with hundreds of add-on applications and they all need to violate the system registry in a coordinated way. QuickBooks 2006 and the add-ons will actually run on Windows Vista and they can be tricked in to running in their own sandboxes, the problem is that those sandboxes are isolated universes that can't interact with each other. While it may theoretically be possible to make this happen, it's a hair ball of bad coding practices that Intuit doesn't want to touch and they're telling all their customers to upgrade to QuickBooks 2007. So the moral of the story is that this is a train wreck 6 years in the making and it can't be blamed on Microsoft for finally enforcing the best practice guidelines they've asked software vendors to follow since 2001.