On 04/03/2014 04:14 PM, Roman Haefeli wrote:
On Don, 2014-04-03 at 12:00 -0400, Jonathan Wilkes wrote:
- when you run into nameclashes, you know your project has outgrown Pd
and it's time to choose another language
That is a pretty bold statement.
It's meant as a shortcut to avoid wasting time.
I never ever run into name clashes, no matter how big the project was/is.
The no-name-clash dogma:
- Do not use global s/r-symbols (simple)
Except you have two points below which contradict this!
But I suppose you meant to write that one shouldn't use global s/r-symbols except for the two special cases below. Even so, what you ignore is the entire learning curve that accompanies the dogma. The new user is presented with the perverse starting point that the simple, common case of global symbols should be used almost never and the cryptic, dollarsign-zero symbol names should be used almost always.
Because the user must rely on cryptic dollarsign symbols for locality, patching is more error-prone, and patches are harder to read. Every message box is accompanied by the user's choice of extra patch cruft to feed $0 into it. Maybe it's [f $0], [list prepend $0], an abstraction, or something else. That yet one more little detail to check when things go wrong, and it's there because the user is forced to type something extra to get patch locality, which is most often what the user needs.
So yes, it's rather extreme of me to advise users to just use global symbols and switch languages when they run into problems. But I think there's an assumption on this list that most users know enough about other programming languages to judge for themselves the level of expressiveness in Pd. I don't think that's true, and I think it's important to remind people just how clunky Pd is in these respects compared to other modern languages.
-Jonathan
Use global s/r-symbols for singletons (i.e. one server, many clients)
Use global s/r-symbols in cases where the protocol is multinode-aware. (No matter how many instances of an abstraction using a global s/r- symbol are created, they will always be able to communicate with each other in the same way)
Roman
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list