3 ms·
It's weird how the author starts with "examples and concreteness are essential to the process of building up an understanding of abstract pure ideas", and then
by brundolf 5y ago
It's weird how the author starts with "examples and concreteness are essential to the process of building up an understanding of abstract pure ideas", and then rejects the burrito example as an unhelpful leap when it comes to teaching.
To me that's contradictory. A concrete and familiar metaphor is just as good as a concrete example when it comes to building up the foundation upon which abstract ideas eventually form.
- gizmo686 5y agoThe point is that burritos are not monads. Metaphors are things you see in literature. A key feature that makes them attractive in literature is that they are subjective and can be read in multiple ways. That is the very thing that makes them a poor device to use in technical writing. We do use analogies a fair amount in technical writing, but even those need a careful author to make sure they are made clearly. The core idea of an abstraction is that it is a generalization of something you want to do a lot of. It makes a lot of sense to go over a bunch of examples and explain how they are all the same thing.
- chowells 5y agoThe fallacy is believing that a complete fantasy metaphor like burritos is as useful as a concrete example like "the [] type forms a monad with concatMap and singleton". The latter actually tells you something. You can start from there, add a few more concrete examples, and start to understand what exactly monads abstract over. The former is... Nothing. Nothing at all. It communicates exactly nothing. Or rather, it communicates so many hundreds or thousands of different potential metaphors that it doesn't serve to transfer meaning between two people. And that's the point of the article. Monads are abstract at a level foreign to most programmers. When they first start to put the pieces together, they might enlist the aid of a metaphor, but the way they do so requires a lot of internal context. To others without all that context, the metaphor is useless. It's easy to mistake metaphor for the understanding you've slowly built up. This article is a reminder that the understanding is the important part, not the metaphor.
- dwohnitmok 5y agoThere's a difference between a concrete example and a familiar metaphor. I think the former is extremely important for learning. I think the latter usually leads instead to a false feeling of understanding that then leads to completely off base conclusions (my favorite example for this on HN is mathematical philosophy, e.g. Godel's incompleteness theorems). Hence while concrete examples of monads are very important for learning the abstract pattern behind them, I agree with the article that abstract analogies usually do more harm than good.
- hprotagonist 5y ago>A concrete and familiar metaphor is just as good as a concrete example when it comes to building up the foundation upon which abstract ideas eventually form. Right, but, "monads are burritos" is the lie that maybe what made monads click for you; there's no guarantee that that particular lie will work on me! Maybe for me, monads are schwarma. And what's more, they won't _be_ schwarma for me until i've done enough head-banging and questioning and scribbling grumpily on whiteboards for the actual learning to happen. I'll _consolidate_ on a metaphor (burritos, schwarma), but how i got there is what did the trick.