[PD] [qlist] and locality

Jonathan Wilkes jancsika at yahoo.com
Thu Apr 3 23:33:39 CEST 2014

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.


> * 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 at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list

More information about the Pd-list mailing list