There are a couple assertions in here that I fundamentally disagree with:<p>1. Magic is something you don't understand.<p>I disagree. I get recursion. It is pretty simple. Yet it is elegent and subtle. I think of it as having a deep underlying magic due to the power it provides via simplicity. It gives the impression that there is more going on than there is, that using a recursive algo is touching on a fundamental rule of existence.<p>2. Magic is just a leaky abstraction that breaks down at some point. (it doesn't scale linearly)<p>Everything is leaky abstractions. Seriously, everything. I'm learning about electronics right now. Capacitors in real life are <i>very</i> different than the ones I learned about in physics E&#38;M. Of course if I assume that I will be operating w/in sane limits of the components I choose, the leaky physics abstraction is just fine. This example was specifically chosen because on top of it is built a pile of leaky abstractions as well, one path of which can end in data structure (oh no! leaky abstractions).<p>Just because an abstraction is leaky (magic) doesn't mean it is not useful in certain places.