Computers Are Programmed By People Not Magic

from the trust-but-verify dept

Ben Adida has a great post discussing the misplaced faith people often have in the machines in their lives, and the way that faith often spills over to e-voting. He mentions a scene in the 2006 HBO documentary on e-voting where an election official breaks down in tears when someone shows her how her voting machines could be hacked. For computer programmers, who are intimately familiar with what goes on under the hood, the idea that we should automatically trust anything a machine tells us is a little bit ridiculous. We're aware that computers are extremely complex devices that can go wrong in any number of ways, that they're designed by fallible human beings, and that it requires a lot of very careful engineering to make sure they're secure and reliable. We recognize, in particular, that the more complex a system is, the more likely it is to have problems, and so the more skeptical we should be of its results. It's not a coincidence that $5 pocket calculators tend to work flawlessly, while complex systems like Excel and the Pentium chip sometimes make basic arithmetic errors: the greater complexity increases the number of ways things can go wrong.

But a lot of non-technical folks seem to view things the other way around. Last week, for example, I noted a a Chicago law professor who thinks that "the future is surely with the touch-screen or some other form of online voting." The problem with this statement is that if our goal is security and reliability, which it should be, the added complexity of computers and touchscreens is a big disadvantage. But this isn't obvious if you've never looked under the hood to appreciate all the things that could go wrong. Computers are not magical boxes that always produce the correct answer, but unfortunately, a lot of people seem to think that they are.

Filed Under: complexity, e-voting, magic, programming

Reader Comments

Subscribe: RSS

View by: Time | Thread

  1. identicon
    Clueby4, 28 Mar 2008 @ 4:46pm


    Dependencies and lack of awareness/knowledge of the environment is the cause of software's valid lack of merchantability. This is the valid explanation why bugs can exist. A developer codes based on an assumptions of their environment, and MS or some third party makes a change, or has undocumented parameters which causes a bug. Hence why calculators and consoles are more stable since there is considerable less changes occurring on the resources that software is dependent on.

    This is why standards are so important, and why open source solutions are looked at so favorable by reasonable people.

    However, there's a lot of sloppy code hiding behind the interdependency aspect of software/hardware. Which I feel is inexcusable, since syntax and poorly developed code is easily avoidable however it may not be profitable in the short term.

    Another common cause of bugs is multiple developers making changes independently of others. IE no source/change control process. This also falls into the sloppy category and is inexcusable.

    So for me, the only valid bugs are those caused by dependency issues, since there is no effective way to predict the future. Sloppy coding just like misspellings in a book is sometimes unavoidable however significant bugs should be addressed.

Add Your Comment

Have a Techdirt Account? Sign in now. Want one? Register here

Subscribe to the Techdirt Daily newsletter

Comment Options:

  • Use markdown. Use plain text.
  • Remember name/email/url (set a cookie)

Follow Techdirt
Techdirt Gear
Shop Now: Techdirt Logo Gear
Report this ad  |  Hide Techdirt ads
Essential Reading
Techdirt Deals
Report this ad  |  Hide Techdirt ads
Techdirt Insider Chat
Report this ad  |  Hide Techdirt ads
Recent Stories
Report this ad  |  Hide Techdirt ads


Email This

This feature is only available to registered users. Register or sign in to use it.