From: Frank Barknecht fbar@footils.org
[1] Actually the $-variables 1,2,3,... in message boxes and those in object boxes aren't that different, because the contents of object boxes also are messages to Pd's objectmaker and they are used explicitely as messages when doing dynamic patching.
Yes, this is the case -- and probably one of the more elegant parts of Pd -- but I still think this has less to do with Pd as an expressive language and more to do with how it's implemented.
Even so, I think that a message box is not a message, any more than a message to objectmaker is an object; either way the $ values mean something different in each context -- in the messages to objectmaker they ultimately function more like environment variables or script arguments, where in message boxes they're a little more like substitution placeholders in something like a macro or a sed command. I think the current $0 meaning is consistent with this interpretation.
I think my argument might be somewhat different if dynamic patching were fully supported with an official API - a huge step would be the ability to destroy individual objects with messages (can you?)...
Matt