Why Johnny Won't Program

Dan Bricklin has a short and thoughtful essay on why most people don’t program computers. In summary he says that most programming languages break the 4 design rules proposed by Donald Norman in The Design of Everyday Things.

  • Visibility. By looking, the user can tell the state of the device and the alternatives for action.
  • A good conceptual model. The designer provides a good conceptual model for the user, with consistency in the presentation of operations and results and a coherent, consistent system image.
  • Good mappings. It is possible to determine the relationships between actions and results, between controls and their effects, and between the system state and what is visible.
  • Feedback. The user receives full and continuous feedback about the results of actions.

According to Bricklin:

A traditional, “typed statement” programming environment (traditional “procedural” or “declarative”) falls down on all of these. It is often very difficult to determine the relationships between operations and results. The feedback is not continuous – because of syntax constraints there are many times that a program being modified is not in a state where you can see the results.

I just read a portion of Information Ecologies by Bonnie Nardi for a class I’m currently taking and just now realized that she is the same author who wrote A Small Matter of Programming, which I read a few months ago. Small Matter was about giving users the ability to program their computers, Information Ecologies focused on the metaphors used to describe technology. Both of them support Bricklin’s contention that computers have not been designed to be easily programmable by users. Otherwise I, and the rest of the technical support infrastructure in the world, would probably be out of a job.

via CamWorld