On Wed, 25 Nov 2009, Frank Barknecht wrote:
Single objects unfortunatly often behave inconsistently or not as one maybe would expect (e.g. [route list symbol] strips list- but not symbol-selectors).
[route] is quite disappointing. I already made [route2] which doesn't modify any message, and I'm gonna make [route3] which outputs "list $1...$n" on any non-last outlet in a consistent manner (and without the weird quirks that happen when you try using [route] for that purpose).
To one who believes that abstractions and externals should have a Pd API that is as similar to each other, [route3] should be obvious: it would correspond more closely to class_addmethod.
all_about_data_types.pd doesn't even use the word "selector" anywhere.
The pd 0.42 source code has the word "selector" once. This word was introduced there in 0.39. On pd-list, there have been occasional uses of the word 'selector' quite early. There's one early mention of 'selector' (by none other than Miller) as early as 1998, but that seems to be an outlier. After that you have to skip to 2001.
Some stats now. Number of occurrences of "selector" per year (including "file selector", and someone who said "selector" to mean "receiver", etc):
num ratio
1998 1 3 1999 0 0 2000 2 3 2001 23 10 2002 28 5 2003 51 7 2004 70 8 2005 78 8 2006 455 39 2007 195 15 2008 74 8 2009 244 33
(where the ratio is 1000 times the number of occurrences divided by the total number of emails)
AFAIK, "selector" is vocabulary that comes from Smalltalk and its derivatives, or any "general OOP theory book" that considers Smalltalk to be a reference. This word is quite absent from the C++ vocabulary, for example. Even though I started using C++ in 1992, it took me until 1997 to read the word "selector" somewhere, probably a text on Objective-C. Starting in 2000 or so, though, I was seeing "selector" everywhere as was the norm for the Ruby language. I used it routinely on pd-list.
Instead it talks about "casting" but doesn't explain what that means (in the patch it means adding a "symbol"-selector to a meta-message). It has several vague sentences in it like: "Many objects cast the data they receive when they output it" or "Some objects do not cast the data". This doesn't make me any smarter.
trigger-help.pd is even funnier. It talks about "conversions" in which nearly every conversion results in all values of one type (0, 1, 2, 3, ...) end up being "converted" to the same value of the other type (symbol float), thus destroying the entire contents of the message (except the existence thereof).
All in all, I don't think, the patch tells you "All About Data Types". But maybe it just has a misleading name.
It's a marketing thing. It's like when you enter a "Steve's Music Store" and they tell you "if we don't have it, you don't need it".
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801