On Sun, Mar 15, 2009 at 3:32 PM, Frank Barknecht fbar@footils.org wrote:
Hallo Mike,
yeah, that's a fundamentally different approach: Basically in aspect, you create a lot of global senders and receivers, while in sssad there are only two of these. I think, limiting the amount of globals used in abstraction libraries is important to avoid pitfalls with nameclashes and to give the users of your libraries as much freedom in choosing names as possible. Globals in other programming languages often are avoided for similar reasons: They are too error prone.
The context that I was actually thinking was in trying to do "live coding". Of all the times that I have been using SSSAD, my biggest complaint about it is that I would always need to resave, close, and reopen the file. It always seemed that the one instance of an SSSAD reference that I was deleting was the FIRST ONE. Of course, doing that was sure to make that parameters NOT SAVE, unless I reopened.
Now if you really worry about the load of having a lot of [route]-misses when sending message, I'd recommend to use the "local" senders in sssad, that are used when adding a second argument to a [sssad] object: [sssad key $0] will use a bus called [r $0-SSSAD] and [r $0-SSSAD_ADMIN] instead of the global ones.
My whole point of bringing this up has more to do with how an "external" (yes, actual C code) might be able to implement the SSSAD protocol. I can think of MANY EXTERNALS that would benefit by doing this...
At the same time, that might make it appear that SSSAD is an accepted standard in Pd. And Miller, himself has written on this very topic... So, what is the means of storing data... is there one?
I'm curious, but how many "externals" do you have with RjDj? I can only assume that you can't do too much with it, other than the basic implementation of Pd.
Mike