Often I see or hear people comparing computers and cars to make a point. One such argument goes something like this: "If a car manufacturer builds a vehicle that is flawed and causes physical or economical damage to people or businesses, then the car manufacturer is liable. So why is it that a software company can write really buggy code and not be held liable for damages?" Recently Raymond compared computers and cars, arguing that he can drive without knowing how a car works, so he should be able to send e-mail without knowing how a computer works.

While I do not necessarily agree or disagree with these arguments, I do think that the computer-car analogy is inherently flawed:

1. Computers are general purpose machines, cars have a few very specific purposes. Look at the number of features in Word vs the number of features in the average car. Office has a feature that hides features!

2. You never know what someone will plug into a computer. Users expect to be able to plug any random hardware into their computer and have it work.

3. Cars do not have to be backwards compatabile. Nobody is disappointed if the radiator from their 1985 Thunderbird does not work in their new 2004 Thunderbird.

4. Components are much more isolated in cars. Changing the radio in a car generally does not effect the transmission. Upgrading the tires never causes the engine to completely stop working. Upgrading your sound card might cause all sorts of problems.

5. We know how to build cars that do not explode. Nobody knows how to build perfect software. I know of no useful software that has zero bugs. Operating systems, browsers, editors, compilers... they all have bugs.

Now to be fair, there is a certain car-computer analogy that I like to use. To help realize the potential of the web, Internet Explorer supports a technology known as ActiveX. But automatically downloading and running these executables is a dangerous security risk, so IE displays a big, nasty dialog saying, "Are you sure you want to install and run this... ?" Well, my family has no idea what ActiveX controls are, and they have no idea what the implications of installing and running one might be, so they follow the established behavior of trying to get rid of the dialog as quickly as possible and still have the web page do what it is allegedly supposed to do. So when I fly home to visit, I have to spend hours excising evil software from their computers. So I explained it like this: "There are places in town where you would think twice about parking because it is very probable that someone will attempt to break-in to the car, and if you did park there you would certainly lock the doors. Likewise, there are places on the internet where you should think twice about going, and if you do go there you should definitely not let them install anything on your computer!"

I do not know if that will save anyone... we still have a ways to go make the web safe and usable. But I think the analogy holds up... it is not so much comparing cars and computers as comparing how malicious people interact with cars and computers.