First, these are not categories. categories are for classes. These are protocols. 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. Nicolas 2013/1/30 Norbert Hartl <norbert@hartl.name>:
Am 29.01.2013 um 16:57 schrieb Stéphane Ducasse <stephane.ducasse@inria.fr>:
Hi guys
I spend my time recategorizing methods.
I would like the change the intention of 'as yet unclassified' because this is a PLAGUE. It is like throwing papers on the floor. So we should have a different name to indicate that it should be fixed.
Any ideas?
'you are a dirty programmer - change me'
To be honest I have problems understanding why method categorization is so important. Often I don't care a single bit about categories because I don't understand them. I often categorize just to make lint happy :) What is the use? Declaring usage patterns? Declaring visibility? Use as method extensions marker? anything you like just classify? I can understand that it can help making the access of certain methods of a class easier. But that is particular true for classes with a lot of methods. Most of the classes are rather small. In most of my own developments I would consider most huge classes a design problem in my code. So I would try to fix that. And finally it is not easy to learn about them because the browser is not helping. If you browse through the methods of a class the category pane doesn't get updated. So even if I want to learn by getting used to them it is hard.
I would make the none categorized term weaker by naming it "uncategorizied" so at least I have the change to deliberately not categorizing my methods without being annoyed by someones opinion about what is essential.
my 2 cents,
Norbert