Apple and Microsoft’s Conflicting Design Philosophies

by James R. Stoup Jun 09, 2006

I ran across a very well thought out bit of writing recently by a guy named Joel Spolsky entitled “How Microsoft Lost the API War”.  It was a very fascinating look at how Micorosoft operates and gives much insight into its corporate culture.

But what was of interest to me was the way he described how Apple and Microsoft differ in their fundamental approaches to designing and maintaining an operating system.

In regards to the Microsoft philosiphy of design he says:

The Windows testing team is huge and one of their most important responsibilities is guaranteeing that everyone can safely upgrade their operating system, no matter what applications they have installed, and those applications will continue to run, even if those applications do bad things or use undocumented functions or rely on buggy behavior that happens to be buggy in Windows n but is no longer buggy in Windows n+1. In fact if you poke around in the AppCompatibility section of your registry you’ll see a whole list of applications that Windows treats specially, emulating various old bugs and quirky behaviors so they’ll continue to work.

This compares to Apple’s approach, which he describes as quite different:

A lot of developers and engineers don’t agree with this way of working. If the application did something bad, or relied on some undocumented behavior, they think, it should just break when the OS gets upgraded. The developers of the Macintosh OS at Apple have always been in this camp.

Reading the entire article will give you a better understanding of how radically different these two approaches really are. And that of course leads to the inevitable question, “which method is best?”

I realize that is a very vauge statement and before I could even begin to answer it I would have to qualify what I meant by “best”. Best for whom exactly? The company that writes the OS? The developers who write 3rd party programs? Or the end users? And even then that doesn’t fully explain what is meant by “best”. Because what is good in the short term might not be so good in the long term.

From the standpoint of Apple and Microsoft, I would say Microsoft’s approach is the best at giving customers what they want, while Apple’s approach is the best at giving customers what they need. Apple’s way tends to keep costs down by not requiring an extensive “3rd party test/fix department.” Though Microsoft’s way also tends to make a lot of money.

From the developers’ perspective there is no question, Microsoft’s way is the best. If you develop for Windows then you can write bug filled programs and just assume Microsoft will cover your ass when it comes down to the wire. This means that developers can spend less time and money testing and correcting their code. And as an added incentive their programs won’t need to be rewritten as often because their customers can always just keep using their product with the latest OS.

And finally we have the end users. How do they fare throughout all of this? In the short run I would have to say that sticking with Microsoft is their best option if only because this ensures their programs will always run.

However, in the long run, they really get screwed over as a result of this extensive backwards compatibility. Because in order to implement this Microsoft had to create a system that was enourmous, bug ridden, inflexible and very insecure. This, in part, explains the 100,000+ viruses that currently exist. Now the question becomes is today’s security nightmare worth yesterday’s compatibility?

Overall, as a user and as a programmer, I must say that modifying one system to accomidate the hacks of another seems to make the worst kind of sense. If your code can’t run on what is new then either upgrade the code or stick with the old system. It might cost more initially but excellence always does. Rewarding developers who write bad code and then crippling your own operating system to further help them is a recipie for disaster. But, of course, if you have been following Vista’s development then you already know that.

 

Comments

  • Windows design philosophy fueled (if not created) the need for ever-more memory, larger hard drives, and faster processors. How else were they going to run the new system succesfully while emulating the bugs of the old while guarenteeing compatibility with it? So all the hoopla over bigger, faster, more powerful served as a convenient cover for M$ design philosophy and poorly-optimized code. (And this really isn’t new. Code optimizing as a rigorous art has long been dead.)

    From the user’s perspective, the user should be demanding well-written apps. Look at JPGView on the Mac. It was written what, for OS 7? And it still runs today. That’s because it’s a well-written program. The moral here is that well-written code (like plays, or novels) endures.

    Aurora77 had this to say on Jun 09, 2006 Posts: 35
  • Yes, but Mac upgrades often disable even well-written programs.  I prefer some happy medium between the two philosophies of “we must be backwards compatible with everything” mantra of Microsoft, and the “if you don’t pay for the latest version of everything, including our own software, then you’re screwed” mantra of Apple.

    Beeblebrox had this to say on Jun 09, 2006 Posts: 2220
  • Oh, is there a design philosophy behind Windows?

    This is a very valid issue.  Compromising your product in order to appease consumers can only work in the short term…

    And, BB, yet again we disagree.  If you are right, then I am sure Apple don’t lightly make those changes to their o/s which disable well-written programs (and i would be interested to know some examples, and which o/s upgrades were responsible).  Presumably such changes are necessary to preserve the integrity of the o/s or provide additional functionality, performance or security.

    sydneystephen had this to say on Jun 09, 2006 Posts: 124
  • sydney, it’s not surprising you disagree and/or are unaware of faults of any problems.  And I’m sure I can provide examples only to be met, no doubt, with your retorts with why it’s actually a good thing that program I bought no longer works.

    Two examples:  Disk Warrior, perhaps one of the most popular disc maintenence utilities on the Mac, which I paid $80 for, was rendered completely useless with my switch to the Intel iMac.

    And my upgrade to FCP 5.1 from 5.0 (necessary to run on my Intel iMac) with no option to save backwards compatible files has meant a heap of headaches in my working with other editors on projects.

    But really, are you SO deep in the reality distortion field that you are completely unaware of ANY examples of upgrades that break otherwise solid programs?

    Beeblebrox had this to say on Jun 09, 2006 Posts: 2220
  • Windows design philosophy fueled (if not created) the need for ever-more memory, larger hard drives, and faster processors. How else were they going to run the new system succesfully while emulating the bugs of the old while guarenteeing compatibility with it? So all the hoopla over bigger, faster, more powerful served as a convenient cover for M$ design philosophy and poorly-optimized code.

    You know one could use the exact same arguments against Apple, despite doing the opposite. Don’t forget the horsepower and memory required to emulate code in Rosetta. (512MB feels very uncomfortable, sometimes)... before that while we were waiting for OSX native apps, we had to deal with having an entire OS 9 installation sitting on our drive—or even as far back to the 68xxx to PowerPC transistion, where we needed to run faster to stand in place. But quite honestly, it is not sloppy coding that is leading to larger apps needing more memory, but more programming abstraction. Apple has actually lead the way here for example with their composited display system, which Vista is taking cues from, but that pushed up memory and RAM requirements in OS X (as it will do in Windows) substansially. Same comes with managed code and garbage collection. But this will actually free programmers to do even more interesting things, by freeing them from having to do such gruntwork as memory management or watching the OS to see when to redraw the screen (GDI+ in XP still suffers this). Quite simply, as computers learn to do more of the boring chores, we will ask them to—programmers and consumers alike. (What is Spotlight, but a way so users don’t have to remember the boring chore of remembering file hierarchy).  Thus memory and processor requirements will go up… but that will free us to put these machines to even better use..as tools for our creativity.

    SterlingNorth had this to say on Jun 10, 2006 Posts: 121
  • I must say one thing that truly pissed me off back in the days of high school was this: I had an ibook from 2001, a G3 600 mhz with 384 megs of ram so I could use it for video editing.  I had a pirated copy of Final Cut Pro 2 and was planning on buying Final Cut Express so that I could cut in OS X instead of having to reboot all the time.  Unfortunately, by the time I convinced my parents to get it, they had moved on to Final Cut Express 2, which no longer supported my computer.  And of course in order to keep you buying the newest hardware, Apple won’t sell you the older version of the program. 

    Now, I have a Power Mac G5 with a gig of RAM and Final Cut Studio.  I’m sure to be buying the crossgrade so that when I upgrade my hardware I won’t have to worry about any software complications.  Still, it was frustrating and might’ve been one of those experiences that turned me towards piracy as a legitimate option for supporting older hardware. 

    Of course, Apple has been pretty solid on supporting the G4 computers as far as I can tell, granted I never had a G4 so I wouldn’t know other than noticing that G4’s seem to meet the system requirements still unlike the G3’s.  Everyone I know that has a mac currently has a ppc, either because of issues with Adobe’s compatibility or some other legacy program.  Sitting on a year old Power Mac, I’ll be happily on the fence being able to cut like a mad man with my 400 gig hard disk, especially now that I’ve repartitioned the thing to help keep things organized (SOOOO much better than a 20 gig internal and an 80 gig firewire, especially when you consider that the internal drive was half full and there was only a single firewire port on the ibook, so I had to switch off between capturing video and then transfering it to the external, sooo bloody annoying for a 30 gig project).

    Here’s hoping that since all the intel macs other than the low end mini have the core duo that they will be supported for years to come.  I’m sure that the G4’s will be supported for a few more years, probably as long as the G5’s, which will be a while longer because of the Quad (my Uncle’s G3 tower lasted him until last year, so I know I’ll be computing until around 2012 with this thing, even if it ends up serving out it’s final years as a home server).  Anyways, I’m ranting now, so I’ll stop.

    Chicken2nite had this to say on Jun 10, 2006 Posts: 79
  • BB-why is there any reason to pay again for new versions of these programs? Don’t software companies generally just release a free patch or upgrade for the current software? It seems to me that if companies are expecting you to buy the next version for something as trite as an os upgrade or the necessity of a universal binary, they’re ripping their customers off big time.

    I think this so-called “apple design philosophy” merely makes it the developers’ applications their own responsibility. “We’ll write the OS, you write the software.” It seems pretty fair to me, if one will be so kind as to let me use such a vulgar word as ‘fair.’

    the parallax view had this to say on Jun 10, 2006 Posts: 25
  • Oh, sorry. I missed the part about FCP somehow. It must have been that MY ‘reality distortion field’ was acting up again.

    the parallax view had this to say on Jun 10, 2006 Posts: 25
  • Sterling-to be fair, Rosetta is a temporary solution until everything is universalized so its really nothing like the Microsoft obsession with backward compatibility (and it really is an obsession, if “In fact if you poke around in the AppCompatibility section of your registry you’ll see a whole list of applications that Windows treats specially, emulating various old bugs and quirky behaviors so they’ll continue to work” is really true). In fact, we might go so far as to say that Classic environment in OSX and Rosetta might be a first step toward a kind of ‘middle ground’ solution. Something that can be removed (although, I don’t know if Rosetta can be removed by the user?? I don’t use intel macs at all as of yet but I get the impression that it IS a seperate app and can at least be removed with relative ease from subsequent versions of OSX) once there is no longer a need for it.

    the parallax view had this to say on Jun 10, 2006 Posts: 25
  • why is there any reason to pay again for new versions of these programs?

    I can’t pay for a new version of Disk Warrior even if I wanted to.  There isn’t one.  I simply have to do without until they release an update.

    And whether it’s fair or not, I was simply responding to the incredulous question of whether Apple’s upgrades break perfectly good software, which they obviously do.  At that point, it’s your perogative to deflect any and all criticism away from Apple.

    I think this so-called “apple design philosophy” merely makes it the developers’ applications their own responsibility.

    And what if that developer is Apple itself, as it is with Final Cut Studio?

    It seems to me that while the responsibility is certainly the developer’s, that Apple might do well to find a more accomodating middle ground away from its more extreme position of “screw you, developers and customers, for being dumb enough to buy into our upgrades and new products.”

    Beeblebrox had this to say on Jun 10, 2006 Posts: 2220
  • And what if that developer is Apple itself, as it is with Final Cut Studio?

    Then it certainly is Apple’s reponsibility to make sure that the App works with the new OS upgrade/processor. Unfortunately, by the looks of things they haven’t apropos of the lack of backward compatibility for FCS files. I wonder what the reason for that is? (Which is not to say that its necessarily a good reason, but its probably safe to assume that Apple wasn’t thinking, “I sure can’t wait to see the look on those suckers’ faces when they find out our new FCS files aren’t backward compatible! Have fun, dickweeds!”)

    I agree with you, though: there ought to be an efficacious middle ground (as self-evident as that proposition seems to me). My questions about DiskWarrior weren’t rhetorical, I was earnestly asking if (because I got the sense that there was but that it would cost you even MORE money, which is ludicrous to me) instead of releasing a free compatibility update Alsoft merely released a new version with a new price tag.

    In any case, I think having seperate ‘boxes’ (Classic Environment, etc) in order to offer temporary backward compatibilty is a pretty good first step in so far as it allows for their removal once they are no longer necessary, but obviously, as we have seen, it is ONLY a first step and hardly, in itself, a solution.

    the parallax view had this to say on Jun 11, 2006 Posts: 25
  • My questions about DiskWarrior weren’t rhetorical

    Sorry, parallax, but that “incredulous” comment wasn’t referring to you.

    I wonder what the reason for that is?

    The general consensus is that Apple really just doesn’t care all that much about backwards compatibility, the reasons for which have been elaborated on by Apple kool-aid sippers since time began.  I can’t really keep up with it all, but I’m sure the word “innovation” is in there somewhere.

    Beeblebrox had this to say on Jun 11, 2006 Posts: 2220
  • I think it more has to do with the fact that they’re a hardware company, and the software is there to get you to buy the hardware.  If you can run cutting edge programs that you buy for subsidized prices on 5-6 year old macs, then Apple has to wait even longer to rake in your dollars for the time when you do upgrade your system. 

    On the same point, I believe I recall reading somewhere that with Tiger, they’ve stabilized some aspect of the OS that will allow for software developed for 10.4 to run on later updates of the OS instead of being needed to be retooled, which has been the case up until now.  Essentially they were declaring an end to the birthing stage of their new operating system, which one would hope would be the case as I’m not going to be in any kind of rush to leopard.

    Meanwhile, there is a bunch of shareware out there which only makes you pay once, and then you get all future upgrades for free, and most incremental upgrades are free to people who purchased the most recent version (if you bought v4 of Path Finder, v4.xx is a free upgrade). 

    Then you have Adobe, who refuses to crossgrade their apps because of the cost to them to offering something like that for free, as charging people again would produce ill feelings towards them from peple who already payed 1000 bucks or however much for CS2.  Anyways, I’m going back to edit my friend’s concert on my obsolete hardware.

    Chicken2nite had this to say on Jun 11, 2006 Posts: 79
  • BB, you never miss the opportunity to insult do you?

    “But really, are you SO deep in the reality distortion field that you are completely unaware of ANY examples of upgrades that break otherwise solid programs?”

    Yes, actually, I am completely unaware.  My only experience of an upgrade was to Tiger earlier this year.  And nothing on my Mac broke - but then there wasnt a lot on it.

    You are so funny.  A disk maintenance utility!  How much did you spend on your Intel Mac?  And you are complaining that a low-level 3rd party utility doesn’t run any more…  To be efficient, a disk utility must run at low-level - I doubt if an application of this nature can ever be fully compliant.

    And Final Cut Pro and your file saving issues…  This is not an o/s issue is it?  And presumably the old version of FCP runs fine on your intel Mac?

    Is this it?  Is this the basis of your complaint?  An $80 disk utility?

    sydneystephen had this to say on Jun 15, 2006 Posts: 124
  • Oh, and BB, if you rate backwards compatibility so high, perhaps Vista on a Dell would be a better solution for you?  I am sure that Vista contains a lot of extra code to support old applications - though perhaps not disk utility software…

    But how do you propose Apple would ensure that every application written for OS/S will run on the Intel platform anyway?  And why would they want to?  Particularly those apps which are written to interface at very low levels - rather than via API’s in the O/S…

    Seriously…  If Apple could have made your $80 disk utility run on the new Intel Mac, but in order to do so they had to give up some changes at O/S level which improved overall performance and security, would you still want them to go this way?

    Backward compatibility requires compromises.  Someone has to decide whether the compromise is worse than breaking the code.  Microsoft have one philosophy, Apple another.  I’m with Apple on this one.

    And, forgive me, but I don’t think disk utility software comes high on the list of “killer apps” for the Mac, or Windows.

    Now does anyone have any good examples of a proper application being busted by the upgrade to Intel?

    sydneystephen had this to say on Jun 15, 2006 Posts: 124
  • Page 1 of 1 pages
You need log in, or register, in order to comment