It seems that whenever Microsoft introduces a new version of Windows that includes major changes, they always need a follow-up release to get things right. Actually, that’s a good thing. It’s much better for the follow-up release to get things right rather than immediately making more major changes. If Windows is stable as a platform, it’s easier for application developers to support all the various versions of Windows that people are running today.
The major changes in Vista were stricter security policies and a new device driver model. This caused compatibility problems with software that didn’t follow the rules such as storing user data in c:\Program Files instead of the user’s data folder. That concept was introduced with Windows 95, but only not actually enforced until Vista. It took a bit of effort tracking down and fixing some of those issue with the Just Great Software products too. Hardware compatibility was also a problem if manufacturers didn’t provide updated drivers and the hardware wasn’t popular enough for a Microsoft driver to ship with Windows itself.
Windows 7 is essentially Windows Vista done right. The security policies are still the same, but the implementation has been polished, requiring far less clicks on that Continue button. The device driver model is also unchanged and manufactures have been shipping Vista-compatible and thus Windows 7-compatible drivers for several years now. Unsupported hardware is now mostly obsolete hardware.
What took the most work in making Just Great Software ready for Windows 7 was updating our various web sites to say that, yes, we support Windows 7. No important changes had to be made to the products themselves, because we’d already done all the hard work with the release of Windows Vista. The most significant compatibility problem we’ve discovered to date is that the drop-down lists on the toolbars in RegexBuddy and RegexMagic, such as those for selecting the regular expression flavor, show only half the button for dropping down the list. The fix for that will be rolled up as part of the next free minor updates for these products.
The most obvious new feature in Windows 7 is the redesigned taskbar. Whether you like the new taskbar or not, at least Microsoft did a good job of making sure existing applications work well with it. It even works well with Delphi applications that don’t set Application.MainFormOnTaskBar := True. That’s a feature CodeGear introduced a few Delphi versions ago for improved compatibility with Vista.
There’s a remarkable similarity between this story and that of Windows 2000 and XP. Windows 2000 was Microsoft’s first attempt to wean the world of the non-Unicode 16-bit/32-bit hodgepodge that were Windows 95, 98, and ME and onto the fully Unicode and fully 32-bit Windows NT. But due to software and hardware compatibility problems, many PC vendors continued to ship Windows 98, so people could run their old applications and games and use their old hardware. A lot of applications and hardware simply did not support Windows NT, making the move to Windows 2000 a big one.
Windows XP fixed that situation by being released in Home and Pro versions as well as simply by being released a few years later. Software and hardware developers had had the time to make their new offerings compatible with Windows 2000 and thus XP. The major new feature in Windows XP were the Windows themes. Instead of 1995-style gray rectangles, the windows in Windows were now blue and slightly curved, at least in the default theme. This instantly made software that didn’t support themes look outdated. But by providing two versions of a critical DLL, Microsoft made sure that those old applications still worked perfectly well, allowing them to keep their old looks.
The internal version numbers of Windows make this strategy clear. Remember Windows 3.0 and 3.1? Same story. Then Microsoft stopped using normal version numbers. Windows 95, 98, and ME are internally numbered 4.0, 4.10, and 4.90. Windows 2000 and Windows XP are actually Windows 5.0 and 5.1. Windows Vista is Windows 6.0, and Windows 7 is Windows 6.1. Seriously.