
Simon Yarde
programming ... languages, and in particular the way that programmers use them, afford a capacity for essentially limitless amounts of abstraction, unlike human language and human communication.
Au contraire! Humans use just such powerful abstractions in language, arts and sciences — what we call humanity is built on no less. They're called *memes*.
The only difference is that humans communicate on a foundation of shared experience that is a little more fuzzy and infinitely richer than the result of a data-base lookup.
Humanities people sometimes talk about "namedropping," like on a philosophy podcast[1] where one of the ground rules is No namedropping! Don't make arguments that hinge on something other than what we've agreed to read. Don't say, "You'd understand me if you'd only read *Capitalism is Fine, Now Shut Up*, by The Man." So just introducing a name (or even an ISBN number) isn't enough to establish an abstraction in the humanities -- you need to work for it, and new abstractions will probably remain fringey and unloved for a few years until they're accepted as part of normal discourse. There are similar issues in programming, like when introducing brand new abstract typeclasses, combinators, concepts, and so on. Even introducing a dependency on a 3rd party library can sometimes resemble a kind of "namedropping." But it's easier to get away with it in software! -- Mikael Brockman (@mbrock) [1]: The Partially Examined Life, http://www.partiallyexaminedlife.com/, have this rule, with a new bogus example at the start of each episode; the quoted one is from the episode on *The Gay Science*.