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

Hans-Christoph Steiner hans at eds.org
Sat Mar 21 02:48:46 CET 2009


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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: init.pd
Type: application/octet-stream
Size: 376 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20090321/983cbab0/attachment.obj>
-------------- next part --------------



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


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