[PD] style guide idea: [send foo] versus [; foo(

Jonathan Wilkes jancsika at yahoo.com
Sat Mar 21 04:48:02 CET 2009





--- On Sat, 3/21/09, Hans-Christoph Steiner <hans at eds.org> wrote:

> From: Hans-Christoph Steiner <hans at eds.org>
> Subject: Re: [PD] style guide idea: [send foo] versus [; foo(
> To: jancsika at yahoo.com
> Cc: "dmotd" <dmotd at gmx.net>, pd-list at iem.at
> Date: Saturday, March 21, 2009, 2:48 AM
> On Mar 20, 2009, at 5:51 PM, Jonathan Wilkes wrote:
> 
> > 
> > 
> > 
> > 
> > --- On Fri, 3/20/09, Hans-Christoph Steiner
> <hans at eds.org> wrote:
> > 
> >> From: Hans-Christoph Steiner <hans at eds.org>
> >> Subject: Re: [PD] style guide idea: [send foo]
> versus [; foo(
> >> To: "dmotd" <dmotd at gmx.net>
> >> Cc: pd-list at iem.at
> >> Date: Friday, March 20, 2009, 5:25 PM
> >> I am not proposing to limit the use of dollar args
> in
> >> message boxes for dynamic sends, that is a very
> useful
> >> feature. The example you give here, though, is an
> example of
> >> a shortcut for typing, there is no other benefit
> that I can
> >> see.
> >> 
> >> And at the risk of sounding pedantic, I am going
> to quote
> >> one of my favorite ideas relating to code:
> "Programs
> >> should be written for people to read, and only
> incidentally
> >> for machines to execute".  Typing shortcuts
> like this
> >> message box below almost never save time when you
> look at
> >> the whole picture.  Code is read far more times
> than it is
> >> written, so really we should be optimizing for
> reading
> >> rather than writing.
> > 
> > Could you give an example that is more readable than
> the message box below?
> 
> The key part is that [trigger] is the essential way in Pd
> to represent execution order.  As Frank says: "use
> [trigger]s everywhere".  Then by breaking out the
> messages into their own message boxes, you can clearly see
> what the messages that are being send separately from their
> destination.
> 
> 
> 
> 
> Having lines of text execute in top-to-bottom may be more
> readable for  
> code like Java, C, etc., but Pd uses right-to-left to
> represent  
> execution order, hence trigger.
> 
> .hc

Pd also uses top-to-bottom to represent execution order.  Maybe I've just gotten really used to msg-boxes spanning multiple lines-- they seem perfectly readable.  But I can see how a single liner like [; pd-some-window clear( might confuse a student where using a msg-box -> [send] would not.

-Jonathan

> 
> 
> > -Jonathan
> >
> >>
> >> In Pd, [trigger] is the central mechanism for
> specifying
> >> execution order.  Therefore, in the interest of
> readability,
> >> [trigger] should be used as much as possible.
> >>
> >> Clearer documentation of the messages boxes would
> also be a
> >> great thing.  But you almost anything without ever
> using a
> >> semi-colon in a message box, they are mostly used
> as a
> >> typing shortcut, and many people are confused by
> them, so I
> >> think we should really be limiting them to things
> like
> >> dynamic sends, since that is hard to do in other
> ways.
> >>
> >> .hc
> >>
> >> On Mar 20, 2009, at 1:32 AM, dmotd wrote:
> >>
> >>> hmm.. generally this could be a good idea, but
> message
> >> sending is most useful
> >>> when initialising a number of receives ie:
> >>>
> >>> [loadbang]
> >>> |
> >>> |; init-1 6          /
> >>> |; init-2 symbol foo |
> >>> |; init-3 -2         \
> >>>
> >>> which is far more elegant than the the
> trigger/send
> >> replacement, especially
> >>> with more fields..
> >>>
> >>> i think its important for students to
> recognise that
> >> this feature of messaging
> >>> has a role to play, rather than trying to veil
> its
> >> use. in my experience
> >>> people will tend to use [send foo] more often
> when
> >> they start pd, then begin
> >>> abbreviating to [s foo] before they appreciate
> the msg
> >> shorthand [; foo[. but
> >>> you are right it is a little confusing for new
> users..
> >>>
> >>> perhaps this just needs clearer documenting?
> 'what
> >> does a semi-colon at the
> >>> start of a message mean?' in the FAQ?
> >>>
> >>> dmotd
> >>>
> >>> On Friday 20 March 2009 10:38:06
> Hans-Christoph
> >> Steiner wrote:
> >>>> Here's something that I'd like to
> propose
> >> for the style guide, based
> >>>> on my teaching experience:
> >>>>
> >>>> - use [send foo]  instead of [; foo( for
> all sends
> >> that aren't
> >>>> dynamically set
> >>>>
> >>>> A lot of people find the [; foo( syntax
> confusing,
> >> and since it is
> >>>> commonly used, it often gets in the way of
> newbies
> >> understanding the
> >>>> patch.  While the [; foo( syntax is
> definitely
> >> useful for dynamic
> >>>> sends, I don't think there is an
> advantage to
> >> using for the regular
> >>>> sends.  So for example:
> >>>>
> >>>> [dsp 1(
> >>>>
> >>>> [send pd]
> >>>>
> >>>> instead of
> >>>>
> >>>> |;                /
> >>>> |pd dsp 1 \
> >>>>
> >>>> This change highlights the dataflow aspect
> of the
> >> messages over the
> >>>> text-style programming with syntax of the
> message
> >> box.  At the very
> >>>> least, I think that the help patches
> should use
> >> this style, and I have
> >>>> started to use this style in my regular
> >> programming and it feels quite
> >>>> natural once you are used to it.  I find
> it easier
> >> to read.
> >>>>
> >>>> (as for [s foo] versus [send foo]
> that's an
> >> issue I want to avoid in
> >>>> this discussion).
> >>>>
> >>>> .hc
> >>>>
> >>>>
> >>>>
> >>
> ---------------------------------------------------------------------------
> >>>> -
> >>>>
> >>>> The arc of history bends towards justice. 
>    -
> >> Dr. Martin Luther
> >>>> King, Jr.
> >>>>
> >>>>
> >>>>
> >>>>
> _______________________________________________
> >>>> Pd-list at iem.at mailing list
> >>>> UNSUBSCRIBE and account-management ->
> >>>>
> http://lists.puredata.info/listinfo/pd-list
> >>>
> >>>
> >>>
> >>>
> _______________________________________________
> >>> Pd-list at iem.at mailing list
> >>> UNSUBSCRIBE and account-management ->
> >> http://lists.puredata.info/listinfo/pd-list
> >>
> >>
> >>
> >>
> >>
> >>
> ----------------------------------------------------------------------------
> >>
> >> Programs should be written for people to read, and
> only
> >> incidentally for machines to execute.
> >> - from Structure and Interpretation of Computer
> Programs
> >>
> >>
> >> _______________________________________________
> >> Pd-list at iem.at mailing list
> >> UNSUBSCRIBE and account-management ->
> >> http://lists.puredata.info/listinfo/pd-list
> >
> >
> >
> 
> 
> 
> ----------------------------------------------------------------------------
> 
> Computer science is no more related to the computer than
> astronomy is  
> related to the telescope.      -Edsger Dykstra


      




More information about the Pd-list mailing list