% fortune -ae paul murphy

A difference in philosophy

Last week's speculation that MacOS X might be eating Linux's desktop lunch started a discussion about ease of use which included this comment by kd5auq:

"Windows did, and still does, a lot of hand-holding."

This statement is confusing in the context of what the article says about "things being so easy on an Apple" and Windows requiring constant attention.

To which I offered this response - on which I now want to elaborate:

Part of that is a difference in philosophy

MacOS is Unix and therefore largely about running applications. i.e. it gets out of the way so you can run the app.

Windows (like VMS) is often largely about the OS - i.e. a lot of apparent application functionality is actually part of the OS and that's useful for kiddie coders but means that the OS gets in its own way when running multiple app[s], and gets in the [way] for users who just want their app to work and could care less about OS doodads and gimmicks.

As frequent contributor Richard Flude pointed out later in the discussion, Microsoft's market control among lightweight developers is really about the Win32 API - because the libraries and integrated application support functions are what make it possible to build simple applications by stringing together calls to a standardized set of what amount to pattern objects embedded in the OS.

On the surface this design philosophy has been good for Microsoft and its developer community by making development easy and offering highly standardized "hand-holding" tools for both developers and their application users. Look more deeply, however, and the unintended consequences seem likely to outweigh the benefits.

The biggest effect is bloat - the Vista client, for example, now contains about 55 million lines of code, almost an order of magnitude more than Linux. That has consequences including obvious ones like enormous maintenance costs and high development risk, subtle ones like Microsoft's inability to surmount its own history of x86 optimization, and national ones like those arising from the sequestration and destruction of real development talent in Microsoft's 9000 strong Windows development pool.

It also has some middle of the road consequences - and one of those is directly pertinent to this business of hand holding. Quite a long time ago, in the late 1970s and early 80s, there was considerable debate about what constituted user friendliness and appropriate levels of hand holding. On the Unix side of this what evolved was confirmation of an earlier design decision to have the computer treat the user the way people want their friends to treat them: with an assumption of mutual trust and competent support - and applications were therefore designed to assume that the user has a clue and do whatever the users want.

The first Star and later LISA OSes attempted to implement the same idea in a click and point environment. At the time, however, processor scale and graphics capabilities limited what could be done and compromises were therefore made - with the most generic being the use of pop-ups to query users for decisions where in fact the computer already had the information needed to make the decision but lacked the processing power or other resources needed to do so while continuing to run the OS, the application, and background tasks like printing.

As a result, by the time various PC companies like Digital Research and IBM started experimenting with GUIs for the PC the popup was a well established defining characteristic for user hand holding; and, particularly because they had even more stringent hardware limitations to work within, these quickly became an accepted and expected part of the Microsoft PC tradition.

Apple's MacOS has moved away from unnecessary user interrogation with every new hardware/OS generation - and Unix, of course, never went this way. So today MacOS X just automatically does a lot of things for which Windows pops up user queries - and so one key reason things look so easy on the Mac is just that the computer does them, and conversely, the reason Windows demands so much attention is that the use of popups has bloated right along with everything else.

Ultimately, both versions of this - "hand-holding" expressed via pop-ups versus just having the machine do it, and empowering simple development at the resource and functionality cost of more ambitious efforts - just reflect originator philosophy. To Apple and the Unix community an OS is software intended to make hardware useful for running applications - for Microsoft it's a sales tool aimed at recruiting and holding a majority market share by catering to the (rather bloated) left side of the normal curve on skills, ethics, and technology.


Paul Murphy wrote and published The Unix Guide to Defenestration. Murphy is a 25-year veteran of the I.T. consulting industry, specializing in Unix and Unix-related management issues.