Yesterday I was talking with another grad student, and the topic of self-driving cars came up. He thinks they are a good idea, I don’t. In high school and college, I would have thought they are an interesting project that I would like to work on. I still think the research is interesting, but I now think driverless cars are a bad idea. I’ll even go further and say that fly-by-wire cars are a bad idea. I simply don’t trust the quality of the hardware and especially the software that will likely be used in self-driving cars. Whenever I work on a car, I am amazed by some poor design choice; then there is the problem that the on-board computers in cars aren’t exactly known for reliable software. Even if the manufacturer’s firmware is well written, car owners will modify it, likely compromising safety to gain a little performance. But intentional modifications aren’t needed to cause problems. I’ve worked with electronics and software enough to think Edward Murphy was an optimist. Even the higher quality sensors used in cars die all the time. A driverless car would require enough redundancy that the inevitable failures wouldn’t allow the car to injure a pedestrian. But given the way the market works, it is much more realistic to expect Wal-Mart quality than NASA quality. But cheap junk isn’t an acceptable option for something as dangerous as a car.

Today I found another example why my mistrust of embedded systems is justified. We have a gas convection oven with a fairly sophisticated electronic control. It has a processor that does a good job of keeping the temperature stable and that can do useful things like automatically turn the oven off when the cooking time is complete. After using the oven today, I hit the off button. The gas turned off, then the oven locked up. It was receiving power, and the LED panel was lit, but it was completely unresponsive. I had to use the circuit breaker to reboot the oven. I hope it is designed so that a failure causes the gas valve to close, but it may not.

The crashing oven is relevant to self-driving cars because they are both ubiquitous and potentially deadly systems controlled by embedded processors. If I can’t trust an oven, how much less should I trust a car?

Unfortunately, I would be completely unsurprised if we are eventually forced into self-driving cars. Besides the common unjustified technological optimism, there are the problems of well-meaning safety campaigners and of lawyers. Because the ideal driverless car is perfectly safe, as more cars begin to incorporate more bits of automated driving (eg automatic distance controls), it is likely that there will be campaigns and lawsuits to mandate these features. These will likely add up until we are forced into driverless cars.

While self-driving cars are an interesting research project with some beneficial uses, my experience in maintaining cars and in computer engineering makes me think they are a bad idea for general use. A better solution is to expand the rail system to lower the use of interstate highways, and to design cities where driving is less needed.