The Shadow of a Legacy

Update: I got my facts wrong, to an extent that makes my thesis wrong too. See the comment that begins “Well Vista dropped dos and win16”.

In software, an internally disruptive change is one where backwards compatibility is a major concern for the developing organization at the architectural level (and not just a matter of larger matrices in QA). It’s disruptive because it takes a drastic change to the architecture to cause this degree of disruption; it’s internally disruptive because, when compatibility is a requirement, the effects of the disruption are moved inside the development organization.

In the past twenty-five years, Microsoft has taken Windows through internally disruptive transitions about four times; Apple has done so about thrice.

Now, this is a ten thousand foot view, and an approximation, and it’s not based on hard data. You could quibble: Maybe Windows NT should count. (I’ve counted its kernel changes against Windows XP, when they hit the consumer version of Windows.) Maybe MacOS HFS should.

But I’m interested in the shape of these transitions, not in their exact number. And the shape reveals the same thing over and over again: When Apple makes a disruptive change, it maintains compatibility back one version. When Microsoft makes a disruptive change, it preserves compatibility back to the beginning of (MS-DOS) time.

This is a difference in policy, and its effect is cumulative over time. You can’t tell the difference from looking at the first internally disruptive change, but over time, the cumulative difference in policies (indicated by the height of the bars) mounts up.

For a while, Apple was handicapping itself. It diverted its resources into OpenDoc, and into a series of next-generation operating systems (Taligent/Pink, Jaguar, Copland) that never saw the light of day. These diversions more than neutralized the cost of infinite compatibility, and Microsoft pulled ahead.

Now that Apple has been putting its development efforts back into one desktop operating system for a few years it has a widely acknowledged superior development velocity, and in many ways (in the consumer market) a superior position as well.

One look at the picture, and it’s easy to see why.

Viewing 8 Comments

    • ^
    • v
    I don't think Vista is as different from XP as you seem to think. If I were drawing that diagram, I'd make Windows x64 the last evolution. It doesn't support DOS or 16-bit Windows, so it also changes the shape.

    FWIW, I think that compatibility is more valuable than you appear to posit. I don't use Mac precisely because of Apple's clear arrogant attitude to backwards compatibility: IOW, I wouldn't consider developing for Apple because I think they'd screw the developer in a heartbeat. I think Microsoft has a far better attitude to client-side development to Apple, yet even Apple is far more customer-oriented than Linux - where the users are almost treated with contempt, in my experience. Or, to sum it up: Windows tries to like both developers and users, Mac hates developers ("Sorry, you'll have to upgrade your OS / app / hardware to use this new OS / app / hardware"), and Linux hates users ("Oh, you want that feature? Fork the project and maintain it yourself then!").

    On the Apple front, it's the amount of control Apple want over the experience which really irritates me. I have never used a piece of Apple software and enjoyed it: from iTunes ("we'll manage everything!" - only not the way I want it managed, oh and PS: I have 5 computers, running varieties of Linux, Vista, x86 and x64 XP, and have no central media library. Can you manage that? No, didn't think so.) through to .Mac web galleries (I think I'll middle-click on these photos to load them async in tabs - whups, that didn't work. Why not?).
    • ^
    • v
    I don't think Vista is as different from XP as you seem to think. If I were drawing that diagram, I'd make Windows x64 the last evolution. It doesn't support DOS or 16-bit Windows, so it also changes the shape.

    FWIW, I think that compatibility is more valuable than you appear to posit. I don't use Mac precisely because of Apple's clear arrogant attitude to backwards compatibility: IOW, I wouldn't consider developing for Apple because I think they'd screw the developer in a heartbeat. I think Microsoft has a far better attitude to client-side development to Apple, yet even Apple is far more customer-oriented than Linux - where the users are almost treated with contempt, in my experience. Or, to sum it up: Windows tries to like both developers and users, Mac hates developers ("Sorry, you'll have to upgrade your OS / app / hardware to use this new OS / app / hardware"), and Linux hates users ("Oh, you want that feature? Fork the project and maintain it yourself then!").

    On the Apple front, it's the amount of control Apple want over the experience which really irritates me. I have never used a piece of Apple software and enjoyed it: from iTunes ("we'll manage everything!" - only not the way I want it managed, oh and PS: I have 5 computers, running varieties of Linux, Vista, x86 and x64 XP, and have no central media library. Can you manage that? No, didn't think so.) through to .Mac web galleries (I think I'll middle-click on these photos to load them async in tabs - whups, that didn't work. Why not?).
    • ^
    • v
    I haven't been that impressed with backwards compatiblity in Windows: I remember seeing lots of remainder rack games from the Windows 95/98 era that wouldn't work on Win 2K or XP. Personally I really like Vista -- however, it's broken a lot of old software.

    It seems that backward compatibility is a problematic around Windows. Windows users expect backwards compatiblity, but they never really get it. The promise of backwards compatibility is, I think, one of the reasons that Windows has a dominant market position. Business customers like the idea that OS upgrade aren't going to bust all their software, and so consumers.
    • ^
    • v
    Well Vista dropped dos and win16 compat. win3.0 + 95 didnt have "dos compatability" they ran/required dos. XP did have a compat layer. two very different things.

    I think your kinda looking at things wrong.

    There is win16 (windows 3.x), win32 and win64. Vista doesnt have win xp + win95 compatability. It has win32 compatability (if its a win64 os) or it _is_ win32 (nt4/2k/xp/vista 32bit editions).

    the 10,000 foot view would be "win16/win32/win64"

    saying powerpc compat is not like saying "can run system6 executable" which is what you are saying with "dos compat".

    you also missed a box underneath doscompat "cpm/86 compatability"
    • ^
    • v
    Thanks for the corrections. You kindly titled your comment "I think your 10,000 foot view is off by a few miles.." [Title comments don't seem to show up in this blog theme :-( ]. It looks like I was off by about 5,000 miles -- I _like_ my thesis, but it looks like it isn't _true_.
    • ^
    • v
    I think OS X PowerPC can run 68K apps, so Apple preserved backwards compatibility for two versions for a while.
    • ^
    • v
    I liked the pre-edit better, too...

    ...especially the apple stair-steps, to contrast with the microsoft ziggurat.

    Truth in pictures (at least).
    • ^
    • v
    what is it that you are trying to say?

    Microsoft's commitment to backward compatibility was a strong market requirement, especially with large enterprises. Enterprises, and most individuals, won't upgrade if they have to buy new copies of all their programs,
    which can be very expensive.

    Note that apple wasn't successful in the enterprise, while microsoft was. Note also that apple abandoned their legacy OS, switching to an existing, proven code-base that itself was based on an existing successful code-base: unix.

    Bill Gates said-back in the day- that when you sell hundreds of millions of copies of the software, the cost of the programming approaches zero.

    Apple never had the sales for that, so they had to adopt a more conservative approach to their OS.

    Apple's current success is more the result from Job's "exile" from apple. It was during this time that he developed the connections and credibility to build iTunes on.

    Imagine how successful apple would be if each new iPod was incomputable with the users purchased music.

    Programmers always like to justify dumping legacy code and doing a clean rewrite. That doesn't work in reality, ask netscape about that!

    Being backward compatible has earned microsoft billions and billions and billions and billions of dollars of profit.
 

Trackbacks

(Trackback URL)

close Reblog this comment
blog comments powered by Disqus