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.