[HN Gopher] Metaphors we learn to program by
___________________________________________________________________
Metaphors we learn to program by
Author : evanlh
Score : 30 points
Date : 2021-12-01 17:35 UTC (2 days ago)
(HTM) web link (evanlh.com)
(TXT) w3m dump (evanlh.com)
| xhevahir wrote:
| I don't buy Lakoff's idea that meaning is fundamentally
| metaphorical. For one thing, it fails to account for our ability
| to judge the aptness of a given metaphor. There's a book,
| Understanding Figurative Language, that makes a critique along
| these lines.
| brumar wrote:
| IMHO most of GOF design patterns can be seen through these
| lenses. Finding good names often result in finding the right
| metaphor/analogy.
| f0e4c2f7 wrote:
| I don't know that I agree on the container and person approach
| for everyone but I appreciate you writing an article on this
| topic.
|
| I think about this a lot and I do tend to think that better
| analogies and metaphors can help people get into programming.
|
| Two areas I've mined for analogies are cooking and legal work.
|
| There is a book called developer hegemony that I have not read
| yet. As I understand it makes the comparison between software
| developent and being a lawyer. Seems like there might be some
| good ones in there to use.
|
| The other one is cooking. When I talk to people about writing
| code who have never done it before one of the concerns they often
| have is that they could never write it exactly "right" that it's
| too complicated in that way. I like the analogy of cooking here
| to try to explain that while there is the 5 star chef version,
| there is also making a grilled cheese at home. I think you might
| be able to take that analogy pretty far. Comparing meals to
| software and so on. Talk about ingredients as libraries, that
| sort of thing ("you can start with flour or there is some
| delicious puff pastry in the pip3 cabinet")
| Lwepz wrote:
| Great article, OP!
|
| >Could we do more to make programming an accessible activity to
| the 99% of people who don't program, by putting greater emphasis
| on intuitive physical analogs?
|
| I think this would have to be done carefully.
|
| Being able to articulate your thoughts and compute without
| resorting to physical analogies can greatly reduce the processing
| load on your brain. This is partly due to the fact that analogies
| always come with a baggage of extra features that are unrelated
| to the concept you actually care about.
|
| Perhaps a good way to overcome this would be to carefully pick a
| set of analogies for a concept,then identify what about these
| multiple analogies helps you understand it. It would also help
| you abstract away the additional semantic load that comes with
| the chosen physical analogies.
|
| I am however, a strong believer in the power of metaphors to
| democratize complex craft.
|
| Music composition per example, can be made more intuitive and
| accessible by thinking of sounds events in terms of their
| physical analogues. In the case of sounds however, the extra
| semantic fat may very well be marbling on wagyu beef.
|
| In fact, it would help us think of musical composition in a
| more... compositional way, i.e. combination of parts with
| different semantic properties that when combined following
| certain rules, generate an expression with a particular meaning.
| bluecheese33 wrote:
| Neat, I skimmed through "metaphors we live by" a few weeks ago
| and can't stop applying it everywhere. I recently wrote a post
| that's kind of on "GOOD CODE IS CLEAN" [1].
|
| I can't recall how dependent I was on physical metaphors when I
| was first learning to code. I do, however, remember some times
| that I tried to learn concepts and a spatial metaphor set me back
| significantly. Like "railway-oriented" for async error handling
| (which just over complicated things), or "monad is a burrito"
| (which, was fine for when you already understood the concept, but
| useless before). I guess my point is that it's quite difficult to
| know if a metaphor is a good learning tool if you already know
| the concept.
|
| [1] https://ravik.substack.com/p/an-anthropology-of-clean-code
| codeflo wrote:
| Hard disagree that most of these are metaphors in actual use.
| They're more like mnemonics, arbitrary names for highly abstract
| concepts that are only incidentally borrowed from ordinary
| languages.
|
| For example, I _never_ think of a physical dictionary when using
| the data structure. Much less a heap or a tree (we even draw
| those with the root at the top!). And the stuff in the article
| about queries being "supplications" is just ridiculous. It's
| again an abstract concept. No idea of a the social relationship
| between humans ever enters the picture in any way, metaphoric or
| otherwise.
|
| What's hard about programming isn't the names, it's learning
| those abstract concepts. At least in my opinion.
| jll29 wrote:
| Make sure to follow up "Metaphors We Live By" with a read of
| Lakoff's "Women, Fire and Dangerous Things", which explains how
| meaning is constructed by ultimately relating sounds to body
| experiences, a must-read for the interested student of
| linguistics (amateur or professional).
|
| Lakoff himself talking about cognitive semantics
| https://www.youtube.com/watch?v=JFgFjdCo2Js
|
| In software architecture, metaphors may help us to better
| identify objects and their interaction patterns.
___________________________________________________________________
(page generated 2021-12-03 23:01 UTC)