On 30 January 2013 21:03, Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> wrote:
First, these are not categories. categories are for classes. These are protocols.
A protocol is like an interface,
Yes, only no. Think of the messages that make something like a Stream: you have accessing things (#next, ...), you have testing things (#isEnd), you have mutating things (#nextPut:, ...). My point is that the set of messages that make something like a Stream are spread across several of the things we call "protocols". The Browser just calls them "message categories" (as opposed to "system categories"). frank
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