I thought programmers use metaphors a lot. I now think we use metaphorical *words*, but we don't actually use *metaphor*. I think it's somewhat interesting to understand why, though I don't claim there's any particular practical benefit.
This page is a Starting Point.
content
First, metaphors:
* When I talk about metaphors, metaphorical utterances, and metaphor systems, I'm referring to the theory of Conceptual Metaphor 𓇯 due mainly to Reddy, Lakoff, and Johnson.
* Why Use Metaphors At All? – Because they are more efficient at activating mental associations between concepts.
* Why Would You Think Programmers Use Metaphor? – Because, mainly, datatype and (less often) function names have a conceptual structure reminiscent of a metaphorical mapping from one concept to another.
Now, why aren't programmatic metaphors real conceptual metaphors?
* Real Metaphors Are Promiscuously Mixed but program names are not.
* Program Metaphors Are Concrete, whereas metaphorical words outside programming operate on two levels: more abstract Metaphor Systems 𓇯 which are then "instantiated" into more concrete concepts.
* "The code is trying to tell us something" isn't an actual conversation. That is, `Coding Is Conversation` is not a helpful metaphor, even though we use metaphorical words while coding. Coding Isn't Conversational
**So what's your point?**
When we name data structures metaphorically, we are not enlisting the mental apparatus that makes conceptual metaphor powerful. Thus, using the ideas of conceptual metaphor to reason about programming likely won't get you much of anywhere.
There are exceptions, like System Metaphor 𓇯 (only arguably about programming) or Integer As a Metaphor 𓍯, but they're not particularly important. That is, thinking about a code metaphor *as a metaphor* won't help you better implement an idea or make a design decision.
see also
support
<div style="text-align: center">How to Read — Other Ways to Browse</div>
<div style="text-align: center">Recent Changes –– Admin </div>