Metaphors for computers: the toolshop

In order for there to be meaningful learning about computing, we need metaphors for computers. In order to learn, humans build whole networks of information pieces at once and so need some simplifications to bootstrap these networks. The most powerful such simplifications are metaphors.

Thus, in order to learn about computers, we need some way of thinking about them. In this article, I propose the first such metaphor.

Computers as toolshops

Out of habit, we often claim that computers are tools. While superficially true, this classification is unhelpful. From calling them tools, it does not follow that they will fundamentally transform society and elevate humanity. The hammer, while tremendously useful, has not changed the world. The computer has. Also, thinking of computers as tools needlessly limits our creativity by making us think of them as finished products.

I propose that we think of computers as toolshops. A toolshop is a place, an environment you might say. There are numerous tools there, but the tools themselves are not the point. Rather, the creativity - the potential - embodied in the toolshop is the point. It is the same with computers. They are a large collection of tools; with Internet access, the collection is near infinite. If we learn mastery of that environment, we can change the world, or as big a piece of it as we can drag into our toolshop.

A good toolshop:

  • has numerous tools, both to examine the world and to manipulate it
  • is well organised
  • is general in purpose - you never know what you will need to fix or make tomorrow

As software developers, we will intuitively embrace this metaphor. Much as the traditional toolshop grew from the needs of a mechanic, we will shape our work environment to make us productive. But the point is this: we must take care to preserve the toolshop for the end user.  The beauty of the general purpose computer is that the full toolshop is on every worker's desk and in every person's home. Just as the software developer requires a set of modular tools, the tools we develop for others should be similarly adaptable and inspiring; they should be repurposable.

Using this metaphor, several things become clear: software tools should ...

  • ... insinuate their purpose
  • ... create easily recognizable and inspectable artifacts
  • ... not be overly specific in its purpose
  • ... inspire, stimulate creativity
  • (all metaphors have their limits) ... should always strive to make their effects reversible

You may object that your users are afraid to touch a computer, never mind taking a sledgehammer to their economic data. When placed in a toolshop, the user may be unwilling to use a hammer for fear of hitting herself on the thumb. The answer to this cannot be to pad the head of the hammer. Rather, let us hang a set of pliers by the hammer (or even fit them together with a clasp to make the hint really obvious). Generally speaking, humans react well to such empowerment.

Of course, there are situations where software must be highly specialized, perhaps because the user is never interested in changing its purpose. For example, a concert ticket machine is just an obstacle on the user's way to seing a movie. Being fundamentally contrarian in purpose, it is highly unlikely to inspire the user's creativity. But even here we must ask hard questions on designing it; do not lightly assume that you know which use case will be the most common one. Users may want to browse what conserts will be on next week, or they may want to book a ticket for tonight. The ticket machine can be viewed as a trvel kit, a pocket toolshop.