> You say that like its a bad thing. If humans like to categorize, why shouldn't our programming languages be designed around this tendency?
I've always had the impression that we (at least as programmers) are incredibly bad at categorizing things into hierarchies.
I think class hierarchies (and module hierarchies for that matter) suffer from a similar problem to that of hierarchical file systems, there is often more than one way of organizing the items and it's unclear which way is right. I'd like to see if one could use a tagging mechanism instead; I guess interfaces/mixins/traits could be thought of as tags for classes though.