I've written a few notes before about my musical excursions, and will do so again. Today, however, I want to highlight a particular aspect of system design, namely compatibility (or the lack thereof).
I seem to remember that when Windows 2000 came out, Microsoft went through a tremendous effort to ensure that as many hardware device as possible that worked under Windows 95 and Windows 98 would also work under Windows 2000. When Windows XP came out, many device drivers that had worked under Windows 2000 continued to work under Windows XP.
The same cannot be said of Windows Vista. For example, I have a synthesizer on my desk that does not work with Vista, period. The manufacturer said that they behan work in January on a Vista driver for it, but here it is nearing the end of August, and that driver still has not been released.
Why is this compatibility problem so hard to solve? In other words, why isn't there an abstraction layer between the operating system and its device drivers that can remain upward compatible even when the operating system changes? I can understand realizing once that such a layer is needed, but twice?
As I type this, my film scanner is busily scanning negatives from a trip I took in 1992. I have pictures going back as far as the mid 1960s that I have no trouble scanning with that scanner. In other words, images that I took before digital photograph even existed are nevertheless completely usable in the digital domain. I think there's a lesson there.