I cannot imagine a mathematics lecturer telling his students "a monad is like a burrito". Sometimes I think the analogies can actually hurt our understanding of something very abstract or novel, as is the case with the bad burrito analogy.
I completely agree with that but my angle was slightly different. Burrito monads are the prime example of what not to do, but my university course on category theory didn't start with the lecturer throwing out definitions, it started with an explanation in plain English (well, it wasn't English but you get the point :)) of what the theory is trying to accomplish. I'm completely behind the Dijkstrian viewpoint that computing is a radical novelty in itself, but I don't see why trying to explain the purpose of what you are doing is bad.
To make a more low-level example, pretty much every explanation ever of the concept of R-module started with 'we are trying to generalize the concept of a vector space to sets that have a ring structure but not a field structure', not 'here, have a bunch of axioms'.
> I cannot imagine a mathematics lecturer telling his students "a monad is like a burrito".
Well of course that's fatuous-- a math teacher's job in this case is to explain category theory. It would be professional malpractice for them to use an analogy to justify not teaching category in the interest of teaching practical programming techniques.
If one wants to learn what the Monad abstraction is, then one by definition will have to learn some category theory! I don't think there is any need to understand what a monad is in order to use any practical programming language. My point was that the burrito analogy does more harm than good (as predicted by Dijkstra).
> If one wants to learn what the Monad abstraction is, then one by definition will have to learn some category theory!
Actually, I always thought people were referring to Doug Crockford's talk about monads where he makes an offhand analogy to burritos at the beginning. In that talk the analogy has absolutely nothing to do with the 45 minutes of slides he presents, so it always struck me as weird. I had no idea bloggers had actually used a burrito analogy to explain monads-- I now realize he was making an allusion to that.
At any rate, in his talk he explicitly avoids both category theory and type theory in an attempt to explain monads to Javascript programmers for practical programming purposes.