On Sep 28, 2006, at 4:16 AM, Frank Barknecht wrote:

Hallo,
Hans-Christoph Steiner hat gesagt: // Hans-Christoph Steiner wrote:

So the other kind of consistency in question here is consistency of
usage.  All similar functions should have the same arguments, for
example.  Which type of consistency trumps the other?  That's the
question at hand.

I personally feel that its not more linguistically consistent to have
[once] default open when it has no argument.  But this is
inconsistent in usage with similar objects ([spigot]...).

I would speculate, that users would expect [once] to be open as
default.  While I generally don't use [once] in its own right, several
of my patches have [pd once] subpatches, and these all default to
open. There also is a very similar abstraction in the RTC-lib called
"first-bang", which is like a [once] that is open as default but
additionally passes bangs coming in after the first one to a second
outlet. Nowhere in RTC-lib [first-bang] is used with a loadbang to
its second, "reset"-inlet.

I guess, basically we disagree about what should be valued higher:
consistency or usefulness. I consider a default-closed [once] rather
useless. Not completely useless, but "not used 99% of the time" and
the 1% can be dealt with through a loadbang, which is contrary to a
default-close or default-open [spigot]: Here both versions are used
about equally often.

This actually is similar to the inconsistency of [timer]: Most of the
time, [timer] follows a [trigger bang bang] object (or rather a [t b
b] object which even has the same visual length as [timer]) and the
connections are made in a non-crossed fashion. That's the (only?)
reason, [timer] has its active inlet on the right. In this case,
Miller also chose usefulness over consistency, and I'm glad he did.

Obviously usefulness is essential. [once 1] would provide the default open behavior. I guess it really goes back to whether it always makes sense to init things to zero. Almost always it does, but not here. I suppose the best of both worlds would be to be able to differentiate between 0 and no arg. Then the first argument could be used for open/closed state, and no arg could default to open. $# and $@ would do this if properly implemented.

.hc

_______________________________________________
PD-dev mailing list
PD-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev

Reply via email to