Is a hot dog a kind of sandwich? "Naming things" is one of the two hard problems in computer science, and the hot dog/sandwich argument is just like those we have about class hierarchies and database schemas. This talk explores these arguments through the lens of "prototype theory", a cognitive-linguistic framework that proposes that the categories we use subconsciously are much different than those we use in programming and other formal systems.
In this talk, we'll learn the psychological basis for practices like duck typing and composition over inheritance. We'll learn about additional conceptual models of organization, like radial categories and family resemblance. Finally, we will learn how by embracing fuzziness and context-sensitivity, we can make more humane and inclusive software.