[PD] ehu abstractions to be released

Chris McCormick chris at mccormick.cx
Mon Dec 15 17:14:53 CET 2008


On Sun, Dec 14, 2008 at 12:15:26PM -0500, Hans-Christoph Steiner wrote:
> 
> On Dec 14, 2008, at 6:38 AM, Chris McCormick wrote:
> 
> >On Thu, Dec 11, 2008 at 01:33:41PM -0500, Hans-Christoph Steiner  
> >wrote:
> >>
> >>On Dec 11, 2008, at 4:19 AM, IOhannes m zmoelnig wrote:
> >>
> >>>altern wrote:
> >>>>Hans-Christoph Steiner(e)k dio:
> >>>>>
> >>>>>You can force the version by using the namespace prefix:
> >>>>>
> >>>>>[cyclone/counter]
> >>>>>[cyclone/prepend]
> >>>>>[iemlib/gate]
> >>>>this is what i am doing. i think that solves the issue.
> >>>
> >>>i think even better would be to use built-in objects.
> >>>in the case of [gate] and [prepend] this maps to one (or 2) built-
> >>>ins, so no need for strange prefixes.
> >>
> >>Except [list prepend], which I consider a stranger prefix. :)  I
> >>still prefer [cyclone/prepend] since you don't need to add [list
> >>trim] to keep things in the same format they came in as (at least for
> >>the things I seem to do regularly.)
> >
> >Thereby rendering even the simplest of your patches completely useless
> >to me, or anyone else who is a Pd-vanilla fan. I can understand using
> >externals when they are neccessary, such as doing something with weird
> >hardware, or some algorithm that is slow in pure Pd, but I really  
> >can't
> >understand using an external in a situation like this.
> >
> >Your choice though, I guess. Myself, I prefer to make my patches as
> >portable as possible to the widest range of Pd users (pd-extenders
> >included).
> >
> >Sorry if I sound grumpy; not getting too much sleep here in Berlin. :)
> 
> If you compile cyclone as a libdir and stick it in 'extra', then  
> using [cyclone/prepend] is fully compatible with Pd-vanilla.

Great.

> Any objectclass that is not included in Pd-vanilla is an external,  
> whether it is written in C, Pd, etc.  For example, even if s- 
> abtractions or list-abs use only pd-vanilla object, when someone uses  
> them, they then have an external dependencies.

Yes, for sure, but are a couple of big difference between using
s-abstractions or list-abs in your composition and spreading
[cyclone/prepend] willy-nilly throughout your patches.

First, using abstractions is a simple matter of copying a folder, whilst
cyclone requires compilation and linking of bloating 3rd party software
into my sleek, pristine Pd binary, or using pd-extended, which I choose
not to do. It also means that if I use your patches in my own work, I am
straight away demanding that my users install pd-extended, or go through
the painful compilation exercise. They probably don't even have a
compiler installed. This issue escalates rapidly if every Pd user
follows the advice you are giving out. Soon we have all kind of people
using all kinds of crap, and forcing everyone else who wants to use
their patches to do the same. It's a bad way to make software.

Second, and a much more important reason, is that a perfectly good
prepend exists in vanilla. As soon as you start using cyclone/prepend
for the very dubious advantage of having to make one less [list trim]
object, you instantly alienate me and others like me.

> My aim is to make my code as compatible as possible, while taking  
> advantage of all the good code that other people have written, like s- 
> abstractions and list-abs.  But there is no standard way to set up  
> externals when using pd-vanilla, so it is not really possible to  
> support.  Read the archives to see all of the problems running other  
> people's patches.  That's why Pd-extended was started, to have a  
> standard platform.

Pd-extended is great. It's excellent to have that standared platform.
All I am advocating is preferring the 'lowest common denominator' as far
as possible. I am saying that you should follow Occam's Razor when
making patches, and make them as simple and widely portable as possible.
I am definately not saying that you shouldn't use externals, libdirs,
other libraries or whatever when you need to. I understand completely
the need for externals in many situations, but I also think that it's
bad practice to use an external when a builtin will do. I am actually
just putting forward a very common computer science precept; reuse.
Spare a thought for us poor chumps in vanilla land. :)

Best,

Chris.




More information about the Pd-list mailing list