> First, these are not categories. categories are for classes. > These are protocols.
Yes :) > > A protocol is like an interface, or you can view it as services > offered by the instances of this class... > For example take a look at Number you have > 'comparing', is a very generic service, so that any object can be in a set > numbers have this property to have full order, so they offer a bit > more than = and hash > 'printing' a very generic Object protocol too for interacting > (inspectors, debuggers...) > 'arithmetic' is some more specialized service offered by numbers > 'mathematical functions' too. > > If the classification helps a lot, IMHO it's not only related to the > number of messages. > It helps to declare/discover which service will be offered, and those > can be completely transversal (printing vs comparing). > > 'private' has a value too, as there is no service to expect here... > > So I have to disagree. I see these as essentials. me too :)
