Yeah, good point. The "connection order" statement should really be a
footnote. [trigger] should really be introduced before talking about
the connection order.
.hc
On Aug 10, 2009, at 4:44 PM, Jonathan Wilkes wrote:
I think there is a problem in section 2.3.2 of the Pd Manual:
"It is indeterminate which of "B" or "C" is done first; this depends
on
what order you made the connections in (in Max, it's automatically
sorted
right to left)."
First of all, the part before the semicolon contradicts the part that
follows the semicolon.
Second of all, the next paragraph talks about infinite loops;
[trigger]
isn't addressed until the following section, momentarily making it
seem
as if "the order you made the connections in" is an feature of the
language that is somehow analogous to Max's right-to-left sorting.
This may seem nitpicky, but I think the analogous Pd feature
in this case is Pd's reliance on [trigger] as the main
way to specify execution order. I think [trigger] should be mentioned
before the the quoted material above (or at least immediately
following)
so that the comparison to Max is as follows:
Max: When multiple connections are made from an object, they are
executed
in right-to-left order. This makes it easy to know the execution
order
simply by looking at a patch, but can make it tricky to reorganize the
patch (unless [trigger] is used explicitly).
Pd: When the execution order needs to be specified, the user
explicitly
uses a [trigger] object. This means you can look at a patch and tell
the execution order, _and_ (aside from [inlet] and [outlet]) objects
can be reorganized without the risk of changing the execution order.
Finally, if there are multiple connections from an object and
[trigger]
is not used, it can be assumed that either execution order shouldn't
matter in that instance, or that the person making the patch has
forgotten
to specify it (in which case it is an error and [trigger] should be
utilized).
The fact that Pd executes in the order the connections were made only
makes sense in light of the explicit use of [trigger]. Even if Pd
rolled
some virtual dice to determine execution order when multiple
connections are coming from a single object, most of our patches would
work the same because we all use [trigger] explicitly in Pd, right?
I know the Pd manual doesn't make assumption about how someone
_should_
use Pd, but I think this is an exception, because anyone who is
relying
on the order they make connections is going to have a hard time
getting
anywhere. Plus, it seems like an unusual number of people have said
(or written) that Pd "relies" on the order in which you make
connections
for the execution order, which isn't true.
Does this make sense?
-Jonathan
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
----------------------------------------------------------------------------
News is what people want to keep hidden and everything else is
publicity. - Bill Moyers
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list