Stop! Before you read any further, go to the clarifications down at the bottom.
This idea came to me after reading the various debates on command lines vs. GUI, the problem with normal people and
computers and In The Beginning was the Command Line, trying to get some idea of the perfect human-computer interface.
The quality of these varies widely, but most miss the point, focusing entirely on the relative merits of their pet OS
over all others.
Shokwave's writeup here touches on the point briefly,
but doesn't go into any real detail. I would like to attempt this.
Notes before starting: I'm a bit of a dilettante in the field of OSes, so please message me with your technical
corrections before downvoting.
First, it's necessary to establish What characteristics a perfect operating system would have. IMO:
- It would be infinitely flexible and capable of operating any program whatsoever regardless of what the
coder originally intended.
- It would not break or crash when used within normal parameters, and most crashes should
be reparable by an individual with simple tools and basic knowledge.
- It would be completely transparent, with an interface built on principles
that human beings understand by instinct and customizable to suit the individual's
What fits these criteria? Let's take a look at a few popular choices.
Windows: No, no, and no. It's not flexible, it's not stable or easily reparable, and it's certainly not transparent.
Dense layers of semiotics and symbolism separate me, the user, from the basic functions of the OS, and
there are special codes of communication that I must learn before using it. To be fair, though, all OSes
suffer from this problem to one degree or another.
Mac OS: Thanks to open source, it's more flexible than Windows, but it's still nowhere near total flexibility. It is stable; cheers again for open source. It's no more
transparent than Windows; partisans can argue all they wish for the relative merits of Control and Command,
which buttons to press to restart, and which ideographic symbols best represent which file types, but the basic fact is
the same; we, the end users, must learn a new language in order to use it properly.
Linux: Mad propz to the awesome flexibility and stability of open source. There's no LINE in
Windows, and a Windows box that can run for years without going down is a laughable myth. On the third criterion, points off
for the command line interface; yes, I know there are good GUI programs out there, but they're not integral parts of the
OS as in Mac OS and the newer iterations of Windows. The command line is insanely complicated next to a GUI,
and while I know this is better for power and flexibility, the aim here is transparency.
So, Windows and Mac OS do relatively well on the third and Linux cleans up on the first two, but none of them admit of all three to any
satisfaction. We must turn outside the world of computers to find an example of the qualities we so desire.
Stepping down a bit into the world of ordinary appliances, look at the humble 60-watt desk lamp. Its controls
are the epitome of simplicity; turn the knob, pull the chain, or push the button and the state of light changes. Its usage
assumes some degree of cultural conditioning, but would be simple for any outsider to learn. The average stove is another
case in point; turning the knob in one clearly identified direction gives more heat, turning it in the other gives less. Pot goes
over flame, pot heats up, food cooks. QED. Again, there is some degree of cultural conditioning at work, but a primitive
hunter-gatherer would be grilling with the best soon enough if we could find a way to teach him.
Too, the simple machines are utterly transparent in usage. The hammer is a fine example (thank you Shokwave); anybody could pick it
up and know by instinct that they hold a class two lever, useful for advantage of force. Without any instruction, they could
pound things together or break things apart. Yet the hammer is limited in its scope; it is for pounding and pounding alone,
and there are only a certain number of tasks one can accomplish with impacts. The inclined plane is another; everyone
instinctively understands that it's easier to climb a gentle hill than a steep one, and that an acute angle will split things
better than an obtuse.
All of these simple tools share a certain property in common. When we use them, we do not have to interact through an human-constructed interface with a complex set of rules and symbols. They redirect and reshape the natural forces of our body in ways that seem natural to our brains, giving them the closest possible connection between man and his machines.
I'll go back to the good old hammer to explain this a bit. When wielding a hammer, we need not learn a specific set of finger arrangements or a precise way for the muscles of the arm to act on the skeletal framework. We all of us know how to grab things from the day we're born (a newborn child's grip is strong enough to support his own weight) and swinging the arm is also a perfectly natural motion. The hammer, in effect, becomes an extra joint in our arm, lengthening the lever and giving it a relatively indestructible end.
What does this mean for OS designers? Jurph
, praised be his name, sent me the following unattributed quote: "The only truly intuitive interface is the nipple. Everything else is trial and error." This isn't exactly the point I'm trying to make, but it comes close. If I had come up with a distilled summary of my entire argument, it would be this:
"The only perfect OS is one which is telepathic"
which itself requires some explanation. The only perfect form of communication is one which is direct and unmediated. Every single interface, whether it be speech, the controls of a car, or an operating system, has potential for error arising from ambiguities and misperceptions by its users.
Final note: for a halfway decent look at direct mental interaction between men and their complex machines, read The Conquerors trilogy by Timothy Zahn. It shows, in competent prose, one way men could experience complex machines as extensions of their own bodies.
Anything to say? I'd love to hear it.
To everyone who seemed to think of this as an OS war node: by "flexible" I mean "versatile and adaptable", qualities in which open source software beats closed source's brains out. Which is more likely: Windows acquiring all the reliability and unique strengths of Linux (as a server OS, say) through top-down direction of change? Or the legions of open source coders eventually filling in the current weaknesses of Linux (making the operation accessible to Joe Average Desktop, creating superior e-mail, graphics editing, and gaming programs)? I don't mean to advocate any of the three OSes over any other, but to illustrate the current failings of OSes in general and offer suggestions on how they could be fixed. These are off the main topic of my writeup, but they deserve some clarification.
Those of you who read this when it was first posted will notice some major changes. I've removed the section on human hands as the perfect operating system, since it didn't have enough relation to the real topic. The clarifications for the OS warriors are also new.
Heartfelt thanks to Jurph and Reitoei especially for their eminently helpful criticisms and additions. If you offered helpful criticism and don't see your name here, either your criticism wasn't helpful or i deleted your message without committing your name to memory.