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.
Ciao