Metaphor
Why Clear Concepts Matter So Much
In American TV shows we often hear characters mention or use the rhetorical device called "metaphor," and we vaguely know it is similar to "analogy," but we lack a clear understanding of it. In fact, we often use this device unconsciously in everyday conversation, and the reason it stays unconscious is that we have no clear concept of "metaphor."
It is not only metaphor. In daily life we often run into situations like this: before you have a clear concept of something, you don't pay it much attention even if it is around you all the time. Your awareness of it is in an "unconscious" state. Once you grasp the concept, you leave that muddled unconscious state, start deliberately noticing it around you, and are surprised to discover: oh, it was there all along.
To put it more philosophically, this is "being as non-being, the nothing that exists." From experience, humans build a concept of a thing in language, and that linguistic concept in turn makes us pay more attention to the corresponding thing, which finally deepens our understanding of both the concept and the thing.
In The Non-Designer's Design Book, Robin Williams opens with the story of the Joshua tree. She was given a book on identifying trees one Christmas, read that the Joshua tree could be recognized from just two clues, and decided from its odd-looking photo that she had certainly never seen one in her parents' neighborhood. When she walked outside with the book, she found Joshua trees in front of most of the houses on the street, where she had lived for years without ever noticing them. Her point: once you can name something, you notice it everywhere, and it becomes yours.
What this example describes is not a special case; behind it lie deeper questions about language and cognition. Concepts are the most basic units of thought, and we can hardly overstate their importance. Some work in cognitive science and linguistics now studies exactly these questions. This post briefly introduces the concept of "metaphor" and explains why metaphor matters in computer science.
I originally introduced metaphor inside another post, but I came to feel the concept was so important that it needed a post of its own. As described above, once the concept of "metaphor" is clear, you begin to leave your old unconscious use behind and consciously use this device to express concepts and things that were hard to put into words. You will also find that metaphor is everywhere and come to appreciate deeply the benefits it brings.
How Code Complete Treats Metaphor
In Code Complete, right after the welcome chapter, Steve McConnell introduces metaphors for software development and stresses their importance. He observes that computer science has the most colorful vocabulary of any field: walk into a carefully climate-controlled machine room and you will find viruses, Trojan horses, worms, bugs, logic bombs, crashes, flames, twisted sex changers and fatal errors. Where else would you run into all that?
These vivid metaphors describe particular phenomena and things in the software world, and lively metaphors like these can describe much broader phenomena too. With their help we can understand the process of software development more deeply.
So What Is a Metaphor?
A metaphor is a kind of figurative comparison. In Chinese the word literally means "hidden comparison," in contrast to the ordinary, explicit comparison, the "simile."
By comparison, the simile is the form of figurative comparison used most in everyday speech, as in Chinese stock phrases like "as beautiful as a flower" or "a father's love is like a mountain." We use similes mainly for aesthetic reasons: we want to add the aesthetic qualities of one thing to another. In the phrases above, we want to give a person the loveliness of a flower, or give a father the weight and towering steadiness of a mountain.
A metaphor is different. It is mostly used not for aesthetic reasons but to express some real connection between two things. Take Shakespeare's famous metaphor:
All the world's a stage,
And all the men and women merely players;
They have their exits and their entrances; and one man in his time plays many parts…
—William Shakespeare
Shakespeare does not use this metaphor to give the world and people the aesthetic qualities of a stage and actors. He genuinely believes that the way the world works resembles the way a stage play works in certain respects.
Many people (usually cognitive linguists) believe that metaphor has cognitive significance. In other words, it can help humans understand something better, and the means it uses is to connect a newer, unfamiliar concept to other concepts that are already known and easier to understand, using the similarity between the two to aid understanding.
Some Examples: Metaphors We Have and Haven't Noticed
In language, when something new appears and needs a word to name it, one approach is to extend an existing word. This extension is not arbitrary; there is usually some particular similarity between the new thing and the old one.
Some typical examples:
- socket: originally a plug or electrical socket. In computer communication it was extended to mean a mechanism for exchanging information, and like a wall socket it carries the sense of plugging two ends together.
- docker: originally a dock worker. Today there is a widely used virtualization technology called Docker. It also borrows the metaphors of dock workers and shipping containers to express standardized delivery.
- To be continued