Class Hierarchies? Don't Do That
"the real world doesn’t work that way. It really doesn’t work that way. In zoology, for example, we have penguins, birds that swim. And the bat, a mammal that flies. And monotremes like the platypus, an animal that lays eggs but nurses its young with milk."Former biologist here.  Actually...most living things do work that way.  A human ISA primate.  Genetically.  Functionally.If you merely focus on outward behavior, you get to the same place that early biologists got to with what was called "morphological classification" -- you find the weird examples of convergent evolution (e.g. "OMG egg-laying mammal!"), and you're tempted to throw out the whole classification system, even though it mostly works, and the errors are merely distracting from the inherent truth of the idea (that we're all related by genetic phylogeny; we literally share implementation).Anyway, programmers, learn from biology:  when you see these kinds of errors it probably means that you're classifying things incorrectly, not that you should stop classifying altogether.