Why programmers understand abstractions better than philosophers

In an interesting post Joel on Software discusses many examples of specific “leaky abstractions”, and how our daily work as software developers requires us to understand, not just the abstractions we work with, but the underlying mechanisms that maintain them (and that fail in some cases).

I’m sorry to say that in my experience, philosophers tend to treat abstractions as though they behave as defined, and tend to ignore the actual mechanisms (typically made out of human cognition and social interaction) by which those abstractions are maintained.

As a result, they don’t seem to have good conceptual tools for dealing with the inevitable “leakiness” of all abstractions. Of course an implicit point of Joel’s article is that our abilities to maintain abstractions allow us to ignore this leakiness most of the time — and some disciplines, such as mathematics, for example, have suppressed the leaks very well. However I think we could find ways in which even the best understood mathematical abstractions leak, though I won’t argue that point here. It would be interesting to rank disciplines by how well they manage the leakiness of their abstractions.

Philosophy has a different relationship to leaky abstractions than most disciplines, because it is mostly about abstractions (rather than mainly about the things the abstractions describe). The inherent leakiness of abstractions raises substantive issues throughout philosophy. It can’t be regarded as a “boundary problem” that can be ignored in “normal” situations, as it can in most disciplines (except during rough transitions). Note that this need to pay explicit attention to mechanisms of abstraction also applies to computer systems design — good system design has to manage leakiness, and must accept that it cannot be eliminated. This is true for the same reason — system design is about abstractions, and only indirectly about the things those abstractions describe.

One Response to “Why programmers understand abstractions better than philosophers”

  1. March 31st, 2006 | 3:48 am

    “philosophers tend to treat abstractions as though they behave as defined, and tend to ignore the actual mechanisms (typically made out of human cognition and social interaction) by which those abstractions are maintained.”

    Absolutely correct. Read “New Directions in the Philosophy of Mathematics”, 1998 (2nd edition), Thomas Tymoczko, editor. All about mathematical practice as the new core focus of the philosophy of mathematics. This, and the embodied mind approach published as “Where Mathematics Comes From”, Lakoff and Nunez, 2000, in which cognitive science was proposed as a more rational way to investigate mathematical metaphor, are two new and competing approaches to deal with the social and cognitive mechanisms respectively. Very highly recommended.

Leave a reply