September 5, 2017 AT 6:30 pm

Writing Hacks: Metaphor as Code

Language is a technology. It’s a particularly strange one that’s made of squiggles and sounds and maps of meaning, but like any other technology, it’s hackable. So’s writing.

“Figurative language” might sound like something we only encounter in M.F.A. courses or when trying to impress at parties, but figurative language is part of the language toolset that we use every day.

In the book Metaphors We Live By, George Lakoff and Mark Johnson set out to show the linguistic and philosophical worlds that metaphor wasn’t just a matter of poetry and rhetorical flourish. They showed that metaphor permeates all areas of our lives, and in particular that metaphor dictates how we understand the world, how we act in it, how we live it. They showed our conceptual system is based on metaphors too, but since we are not normally aware of our own conceptual system, they had to study it via a proxy: language.

By studying language they tried to understand how metaphors work by imposing meaning in our lives. The basic example they present is the conceptual metaphor of “Argument is War”. We understand the act of arguing with another person in the same way we understand wars. This means we come up with the following expressions in our daily language:

Your claims are indefensible.

He attacked every weak point in my argument.

I demolished his argument.

I never won an argument with him.

The problem with these sentences that seem innocuous is that we act and feel based on them. We end up seeing the person we are arguing with as our opponent. Someone that’s attacking our positions. This mean we structure argument in a similar way as if we were at war with the other person…. Lakoff and Johnson propose the exercise of imagining a culture where arguments are not viewed in terms of war, of winners and losers, but in which language is a dance, where we have to cooperate with our partner in order to achieve our desired goal, reaching conclusions as a team….metaphors enable certain ways of thinking while it restrict others, as the example above shows.

“War is the continuation of politics by other means,” taken by many politicians and military theorists as a truism, only seems coherent because we think of argument through the metaphor of war.

Videla goes on to apply Lakoff and Johnson’s argument to code:

We might still be skeptical and ask ourselves if we do use that many metaphors in programming. Let’s take a look at the Distributed Systems literature in general (metaphors are in italics):

Whenever nodes need to agree on a common value, we start a consensus algorithm to decide on a value. There’s usually a leader process that takes care of making the final decision based on the votes it has received from its peers. Nodes communicate sending messages over a channel, which might get congested due to too much traffic. This could create an information bottleneck, withqueues at each end of the channels backing up. These bottlenecks might render one or more nodes unresponsive, causing network partitions. Is the process that’s taking long to respond dead? Why didn’t it acknowledge the heart beat and a timeout triggered?”

Both Metaphors We Compute by and Metaphors We Live By reveal the way unexamined metaphors shape our behavior. Highly recommended.