Why Software Will Never Stop Sucking
11/29/2000; 1:04:36 PM
OK, I can't resist, the events of the last few days in my personal life (setting up computers for a few people) have forced me to comment on this. A few days ago, Doc Searls said on his weblog,
'It's easy to operate a car or a house without being a mechanic or a carpenter, even though it helps to have those skills. Can't the same be true for PCs? Will it be? How?'
I think there are two things wrong with this view: One, we're not looking at the right aspect of the metaphor, and two, it's not really the right metaphor.
People often say that computers are just another tool, and using computers should be as easy as using a car without being a mechanic. Well, using computers for what? For all the complexity that goes into building a modern car, it is conceptually quite simple. It gets you from point A to point B. As tools go, it's very one-dimensional and doesn't involve much skill; you can learn to drive in a couple of weekend courses at your local high school, after all!
Compare this to a lathe, where you can spend years ferretting out the intricacies of what can be done, how to do it better, faster, and with fewer mistakes. How do you make a lathe easy to use for someone like me, who has never touched one? To put it bluntly, you can't. It's a fundamentally complicated device. It requires learning and effort to master.
What does this have with computers? Well, I submit to you that we've already achieved the ease of use of an automobile. With a couple of weekend courses worth of training, you can get on AOL and do quite a bit, including sending mail, searching the web, and with another hour or two, you can be running your own website with Manila or a similar product.
I think the real problem is that we're using the wrong metaphor. The question "Why can't using a computer without understanding it be as easy as using a car without understanding it?" may sound reasonable, but it's predicated on a fundamentally false assumption: That computers are like cars, simple and one-dimensional in capability. A more proper question would be this: "Why can't using a computer without understanding it be as simple as using writing without understanding it?"
Learning to read is a lengthy affair, but without it, you are intellectually crippled. We have accomodations for those who do not read (or do not read our language), such as symbols for men and women on public bathrooms, but nobody would claim that if you can just understand those symbols, the full range of reading experiences are available. You must learn to read. There is no way to experience the full range of reading experiences without it.
English sucks. You have to spend years in school learning to read, learning to spell, and then you have to learn to write. Writing well is so hard that most people just skip it, doing just well enough to pass whatever classes they are forced to take. If you want to do anything that has to do with English beyond recognizing which bathroom you belong in, there's no shortcut, and never will be. English will never stop sucking.
I think much of this "software should be easy to use" stuff really means "software should not require the user to learn anything". What else in life works like this? Notice there's a direct correlation between "ease of use" (the "measuring stick" of software) and lack of power. Game consoles are easy to use... but they only play games. A fire pit is fairly easy to use, but it only burns things. It's impossible to make something both powerful and "easy to use" (i.e., hard to screw up). Cooking with an oven is more complicated then burning things in a fire pit, no matter how much you simplify the oven. Personal computers play games, but because they are designed to do a lot of things, it's never as easy as "Insert disk. Turn on power."
Software sucks. It takes time to learn, it takes time to learn to use well, and it takes more time to understand how to connect multiple tools to do something complicated. Granted, there's definate room for improvement in software as it now stands: better installs, better uninstalls, fewer silly hangups, better abilities to work together, better abilities to grow with the user instead of confining them. But if you want to move beyond the equivalent of wordless symbols that allow you to "Read Mail" and "Send Mail", you are going to need to actually learn something, or just deal with the fact that some capabilities will not be available to you unless someone pre-packages exactly what you need, which doesn't happen very often. There is a fundamental ratio of power/ease of use, beyond which we can never pass. Software will improve, but software will never completely stop sucking.