I have a coworker who describes everything in a very anthropomorphic and casual way, and their code is excessively imperative: everything is accomplished through conditionals rather than by designing the code in such a way that functions only run on data structures that they support.<p>I would share this with him, but I imagine it would go completely over his head.<p>> The implied abstraction, in which time has disappeared from the picture, is however beyond the computing scientist imbued with the operational approach that the anthropomorphic metaphor induces. In a very real and tragic sense he has a mental block: his anthropomorphic thinking erects an insurmountable barrier between him and the only effective way in which his work can be done well.
Apparently Dijkstra thought that if we could somehow think more abstractly and mathematically then we'd avoid making mistakes.<p>But in practice, it seems to be the opposite: most people have a hard time thinking abstractly. We need analogies to make sense of things.<p>For example, there was an experiment [1] showing that even basic logic is easier to handle if it's thought of as "detecting cheating" than as a pure logic problem.<p>[1] <a href="https://en.wikipedia.org/wiki/Wason_selection_task" rel="nofollow">https://en.wikipedia.org/wiki/Wason_selection_task</a>
Our brain is for hunting and gathering.<p>We somehow managed to repurpose it for mathematics in a very short amount of time on the evolution timescale.<p>So while we are capable of abstraction, our brains work better when we rethink the problem in terms of throwing rocks. Anthropomorphism help us make our primitive mind and higher functions cooperate.
"But then Galileo made the troubling discovery that the heavier stone does not fall any faster than the lighter one."<p>It does fall faster, if you drop both stones in the atmosphere; the heavier stone has more mass per unit of surface area, to better overcome a constant level of air resistance.<p>Aristotle's physics were based on pretty accurate observation of the pre-industrial world, although they're surprisingly short on first principles. The really serious shortcomings were mostly related to impetus, the Aristotelian theory of motion -- it accidentally models friction well for objects in continuous contact with the ground, but it's very hard for Aristotelian physics to explain why an arrow keeps flying after it leaves the bowstring, and even gains speed after its apogee.
This issue is pernicious in the biological sciences. Evolution is often depicted as having a will and is referred to as a marvelous creator which completely misses the point of evolution, a system driven by simple instructions that over time create emergent complexity (like a cellular automata). People assume that their is some mechanism for adaptation exercised. Adaptation happens at the species level and the only thing exercised is survival.