Responsibility in OS Design
John Martellaro wrote in to plug
a double-feature collaboraton collaberation between himself
and Del Miller discussing "OS Responsibility". Here is
Part I and
Part II.
Neither say anything earth shattering to your average Slashdotter,
but they each say important things very well, and because
of that, they are worth reading, and perhaps showing them to
the PHBs [?] out there who just might not get it.
I have to disagree with the author of the second piece on the issue of modern attitudes towards alien life. While Star Trek, Babylon 5, et al. promote the idea of diplomacy and respect for alien cultures, these haven't penetrated so far into the collective unconscious as to entirely ward off the '40s-'50s conception of the dangerous, insidious aliens.
Just take a look at The X-Files or any two-bit Roswell/Area 51 show. The aliens, the Greys, are the grantors of high technology, and that technology will, in this mythos, be used to further the aims of greedy businessmen and fascist, militarist politicians. The aliens and their allies will invade your body and alter your mind for reasons you will never understand.
Now, consider which of these mythoi -- the Star Trek diplomatic Prime Directive, or the Roswell paranoia -- is actually more popular among ordinary people today. Which is regarded as more realistic? Which do some people believe to actually be true? And what does that say about views of technology and society?
What it says to me is that a huge number of people in America (I don't know how popular the Roswell mythos is outside the U.S.) believe, or at least suspect, that technology and its masters are ruling the world, and not benevolently. That advanced science will be used not to benefit mankind but to subject us all to greater control: not to liberate, but to enslave.
How much difference is there between thinking that your toaster is spying on you for the time-dwarfs of Zeta Reticuli, and knowing that your computer is spying on you for the gnomes of Redmond? The former sounds fanciful to us, but the latter was also the stuff of science fiction until recently. To those who are not themselves skilled with technology, there really isn't that much difference.
(I'm not saying that all non-geeks are rednecks who think the Greys run Microsoft. I'm saying that these popular mythologies say something about people's relationship with society, and in this case with technology.)
The old ideal of making computers into humanity's friendly aides and servants has not succeeded. Paranoia or no, it's a fact that there are those in whose interest it is to keep people afraid of the machines that they have to, for economic reasons, use every day. If they are afraid of computers -- if they believe that the computer is a willful, uppity, unreliable magical device, understood only by those who have sold their soul to it -- then they won't ask questions. They won't install Linux. They'll just buy upgrades when they're told to.
[/paranoia]
Felix, have you done any other job except use Unix? Everything you say is right and true but only applies to the 'Power Users' the articles talked about. Most grandmothers secretaries and store clerks don't want to (or can't) type. For a lot of people outside the computer industry, point and click is very much faster than typing will every be - not including the memorizing of obscure, English-centric commands (does 'ls' make any sense in French? or Arabic?). Lets face it, the article was well balanced..it slammed MS for being unreliable and *nix for being difficult for the average person to use. I think the 'honour' that was mentioned had more to do with respecting the user and their wishes rather than foisting your wishes as an OS maker upon them. That goes for MS as well as *nix. MS is forcing bloated, unecesary features on to users who don't want it and *nix is forcing users to use an archaic, unfriendly interface or "don't use the system at all" (KDE/GNOME I know, but the CLI snobs don't like those 2 either). The 'honour' is giving the user what they want AND what they need - A simple to use interface for those who NEED it and the power for those who WANT and NEED it.
No bloat. No bizzare commands.
Choice (have a GUI and a CLI). Power. Configuarability (I can use the GUI only, the CLI only or both together.I can turn off something I don't WANT or NEED).
Frankly, I don't see an OS out there yet which meets this standard of 'honour'...
Never by hatred has hatred been appeased, only by kindness - the Buddha
The articles looked like a lot of fluff to me, meandering far without ever reaching a point, but it did make me think a little about our collective responsibility as software developers and that's always a good thing.
I agree with the idea that developers are responsible to their users, in much the same way that doctors, lawyers and other certified professionals are. IMHO, shipping a piece of software that crashes users' systems or corrupts their data or allows someone on the Internet to steal their data, when you knew it would do those things but shipped it anyway due to schedule pressure etc. is an act of malpractice. If a product (and here I'm talking mostly about an OS-level product) is shipped without proof that "due diligence" was exercised in finding and fixing bugs, the vendor should simply not be allowed to sell it any more.
Nobody expects perfection. If you have a reasonable procedure for finding and fixing bugs, you needn't worry about this, even if a serious bug does in fact slip through. If you give away your code for free, you also needn't worry. But if you hope to make money by selling software that you know (or should know, according to reasonable standards within the profession) is not adequately tested and debugged, then, well, screw you.
Slashdot - News for Herds. Stuff that Splatters.
While it's very true that the Mac platform is not open-source, the following things are also true:
1. Apple documents its APIs well. It doesn't use undocumented or erroneously-documented APIs to give internal developers an edge, nor does it change APIs in order to sabotage third parties. In fact, Apple has documented its systems to a degree rarely found elsewhere -- including publishing specs, developer notes, and the Inside Macintosh series online. The Inside Macintosh series are really remarkable; when it comes to documenting the thinking behind the API as well as the functions within it, they might just surpass the available documentation for Linux.
2. Apple uses open standards where possible. You might say that this is simply because it hasn't been in the position to embrace-and-extend, but I'd say otherwise. Apple has been at the forefront of adoption of real industry-standard protocols such as FireWire and USB. It has used industry-standard networking protocols wherever it can. (AppleTalk was created before TCP/IP was accessible on the desktop, and for very different purposes from TCP/IP. Now that TCP/IP is everywhere, Apple is moving to abandon AppleTalk in favor of it. And AppleTalk was never a closed standard; it's documented extensively in Inside Macintosh and elsewhere.)
3. The MacOS has consistently done better than any other system at being accessible to everyone. By this I include the ease of localizing applications (modifying them for foreign languages); the built-in support for handicapped and limited-vision users (Easy Access and CloseView); and the human/computer interface research which has gone into making the MacOS far, far more accessible for the average user than any other GUI to date (except, maybe, BeOS).
The Mac is far from perfect; the MacOS is not open source; nor is the Macintosh an open hardware platform. However, Apple has consistently supported open standards, open APIs, and systems which are open (accessible) to the average user. These are all good things, and shouldn't be forgotten.
Apple needs to learn from the free-software movement. Darwin is a start. However, the elements of a closed-systems model in Apple's business plan endanger Apple's future. If KDE, Gnome, or any other free-software GUI project can build an interface as accessible to the user, and to the developer, as the MacOS already is, then Apple will have a lot to lose. Yet KDE and Gnome have a long, long way to go.
Well, in a certain sense the Mac is closed, but it is an example of how good closed can be. Æsthetically, the Mac OS is the most nearly perfect of all offerings (some disagree, but I doubt that any system can satisfy everyone). Under the hood, it is not that great, but it does have some very interesting ideas that have been ignored by many. The data/resource fork system is about the most elegant way of seperating form from function that I have found (then again, I don't know much).
Windows, in all its many fell incarnations, is an example of how closed source fails. The Mac OS is an example of how closed source succeeds and of its unique advantage (the Mac would not have done as well without tight software/hardware control). Linux is an example of how open source succeeds. It is also an example of how open source fails. I installed PPCLinux on my 5400, and Linux on a Dell Optiplex something-or-other. The basic CLI was a pleasure to use, very fast, very efficient &c. Getting my CD drives to work, getting X to work, getting a decent window manager up, these were painful. Don't even get me started about network configuration...
The point is, open source is not an end in itself. Perfect software (recall the root meaning of perfect: finished; perfect software needs no update because it is complete) is the sole end. Open source is one means to that end. Closed source is another means to that end. Open source tends to produce a decent product, but not a superb one (vide Linux GUIs or Apache's performance). Closed source produces real clunkers and true works of art.
Of course, either approach can produce software anywhere along the quality spectrum, but the grouping tends to differ. The tight control and central vision of closed source can be good or bad, and lead to excellence or muck. The loose control and group vision of open source can lead to innovation, but may never get around to intangibles. Like, say, an OS which installs itself the Right Way the first time...
Not to insult the open source community, but in comparison to fully closed OS's like MacOS and Windows, the user base for Linux, FreeBSD, etc..., is just as willing to accept inadequacies as other computer users. The difference being the nature of those inadequacies.
Example: Mac users would never accept an installation procedure that forced you to manually edit a text file for the program to work, but they will accept once a day crashes. The same thing is probably true for most Windows users.
The goal in desktop computing has been to move toward a feature rich, user friendly, environment with little emphasis on reliability or efficient use of system resources. The Linux market has been the opposite. Reliability and efficiency are key, but any complaints about ease of use will get an RTFM response.
It's a trade-off. The writer of this article complains that OS manufacturers abuse his trust and offer a second rate product, but this is a product of the market in which we live. Hardware design works the same way. Cheap is king. Big mHz, Big RAM, Big HD, even if everything is low quality.
The computer industry sells us what's just around the corner. We use what is viable today. As long as we buy into the marketing, they will keep selling us the future even as we go home and unwrap the past to use every day.