Illusions

A while back I was reading Slashdot and came across the following post:

Unfortunately, I started running into trouble when I assumed that IE played by the rules with the Content-Type headers. I naively assumed that I could generate images as well as html on the fly, and IE would display it the way it was intended, since this would be very good for displaying images that were stored in the blob field of a database.
Wrong! It turns out, certain Content-Types are considered "ambiguous", meaning that IE assumes you don't know what you're talking about and it needs to check to see if the content actually is what you say it is. If it fails the test, then IE overrides the Content-Type and simply displays the page as what it thinks it is.

Those familiar with Microsoft products know that this is not an isolated incident: Generally, Microsoft assumes the user is careless and error-prone. In this case, the assumption is that the user is too stupid to tell the browser the correct MIME type. While this may indeed save the inexperienced user from making a mistake, it also turns out to be a hinderance to those users who do know what they're doing.

If asked, Microsoft would probably say: "But this is what the consumers want. They don't want to be bothered by understanding Content-types and HTTP headers. They just want to publish a web page." And maybe Microsoft is right. But just because certain people don't want to learn something doesn't mean society is under some obligation to cater to them. There is no question that education is more difficult than ignorance, and catering to people's laziness has played a significant role in building Microsoft's fortune. But at what social cost does this come?

If given the choice, most people will prefer ignorance over education, even if that ignorance comes at a price. How much of a price people are willing to pay depends on the alternatives. Microsoft and Apple both make products that cater to less-educated users, but Apple's market share doesn't begin to approach Microsoft's. This is almost certainly due to the fact that an Apple-based system will cost 2-3 times as much as an equivalent Microsoft-based system, but will generally not allow the user to be 2-3 times as lazy. On the opposite end of the spectrum, a Linux system will cost far less than a Microsoft system, but will generally require much more effort to maintain. It's also a lot easier to make mistakes with Linux, becuase Linux isn't making the assumption that the user is ignorant.

Microsoft has apparently found a rather profitable balance between cost and ease-of-use. And it's allowed them to grab 90% of the desktop market, creating a de-facto monopoly.

What one doesn't see in turning over the details to Microsoft, however, is that they are to some degree resigning themselves to a life of slavery. With no understanding of the technology in that drives our society, people will ultimately find themselves at the mercy of it. They will be dependent on the technology, but unable to understand it because it has been tailored to assume the user is faulty and illogical. It takes effort and concentration to do things right, but it seems to be in people's nature to let their minds atrophy. They don't want to understand complex concepts, and Microsoft is selling them on the idea that the machines can do the hard stuff for them. But this puts a lot of power in the hands of those who do understand the technology, because they're the ones who ultimately control the machines.

What we're heading toward is a society where every individual is dependent on computer technology for virtually every aspect of their day-to-day lives, but only a handful really understand it.

The illusion of Microsoft is that a machine can relieve a person of having to perform the difficult tasks of learning and thinking. To a large degree, they've succeeded in this. In return, people spend countless hours of "dead-time" with drop-down menus, wizards, and dialog boxes. The machine walks people through life, with the occasional question or confirmation box to give them a sense of self-control. Ultimately, though, trading intellectual effort for mindless repitition is slowly turning people from human to cattle.

What people are trading here is any real control over their own lives. They become distracted by flashing lights, bells, and dancing paper clips, and live in some kind of surreal fantasy. In the beginning this makes life simple because it requires little effort to learn the basics (moving a mouse, clicking buttons, answering dialogs). Later, though, this simple life turns out not to be so simple. I've watched people spend hours, even days, doing by hand with menus, a mouse, and dialog boxes what would have taken minutes with a shell script. It may take an hour or two a day for a year or more to attain resonable proficiency with shell scripting, but when compared to the time lost by doing the equivalent tasks with a GUI, the initial investment is negligible.

It's obvious that the relatively small learning curve to a GUI is less intimidating than learning a scripting language, but arguably there is something deeper at work here: The reward cycle.

The gratification of scripting is usually delayed, and then comes all-at-once near the very end of the task. By contrast, the GUI offers a succession of small, instant gratifications, much like a video game. Take data entry for example: With a GUI you might transfer data from one program to another one line at a time via a "data entry wizard". You might have 10,000 entries and be looking at several weeks of work, but with each entry you know you're one step closer to your goal. Now compare this to writing a script: You are never entirely sure how close you are to achieving the goal, and until the script is done and actually works, there isn't a whole lot of gratification (apart from any artistic pleasure in writing it). This distinction is significant: You might work for two months copying the data by hand, but with each passing moment you know exactly how much closer you are to the goal. There is a constant, steady reward cycle. With scripting, on the other hand, you are not actually any closer to your goal until the very end when the script runs.

It's like a long journey: If you choose to go by foot, each day you will know exactly how much closer you are. If you choose to stay at home and build a teleportation device, you'll never know if you're one week or 20 years from your goal. If you have confidence in yourself and have retained your intellecutal abilities, you'll probably work on the teleportation device. Otherwise, you'll probably opt to take the "safe" route of going by foot.

But with machines, this safe route is an illusion, because all these complex scripting tasks are not really so complex. Yes, they take work, but anyone of even moderate intelligence could learn a scripting language. After all, scripting languages (as well as computer languages in general) are modelled to some degree after our native languages, and all are far simpler than any spoken language. If children were taught computer languages with the same enthusiasm as they are taught spoken languages, scripting would be the default way of interacting with computers, and the notion of a using a GUI for most tasks would seem absurd.

The GUI is popular because it's simple, and people seem to find mindless repitition preferable to thought and creativity. Microsoft has capitalized on people's inherent aversion to education, but in the long run this will hurt people much more than it will help them. It is not much different than paying a truant officer for the "privilege" of not attending grade school. Money can buy you an easy life, but ultimately you will end up giving it all away to those who can actually make sense of the world around them.


Related reading: In the Beginning was the Command Line


Questions/Comments: karmak@karmak.org