On Mar 20, 2009, at 5:51 PM, Jonathan Wilkes wrote:
--- On Fri, 3/20/09, Hans-Christoph Steiner <h...@eds.org> wrote:From: Hans-Christoph Steiner <h...@eds.org> Subject: Re: [PD] style guide idea: [send foo] versus [; foo( To: "dmotd" <dm...@gmx.net> Cc: pd-list@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.
init.pd
Description: Binary data
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
-JonathanIn 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 messagesending is most usefulwhen 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/sendreplacement, especiallywith more fields.. i think its important for students to recognise thatthis feature of messaginghas a role to play, rather than trying to veil itsuse. in my experiencepeople will tend to use [send foo] more often whenthey start pd, then beginabbreviating to [s foo] before they appreciate the msgshorthand [; foo[. butyou are right it is a little confusing for new users.. perhaps this just needs clearer documenting? 'whatdoes a semi-colon at thestart of a message mean?' in the FAQ? dmotd On Friday 20 March 2009 10:38:06 Hans-ChristophSteiner wrote:Here's something that I'd like to proposefor the style guide, basedon my teaching experience: - use [send foo] instead of [; foo( for all sendsthat aren'tdynamically set A lot of people find the [; foo( syntax confusing,and since it iscommonly used, it often gets in the way of newbiesunderstanding thepatch. While the [; foo( syntax is definitelyuseful for dynamicsends, I don't think there is an advantage tousing for the regularsends. So for example: [dsp 1( [send pd] instead of |; / |pd dsp 1 \ This change highlights the dataflow aspect of themessages over thetext-style programming with syntax of the messagebox. At the veryleast, I think that the help patches should usethis style, and I havestarted to use this style in my regularprogramming and it feels quitenatural once you are used to it. I find it easierto read.(as for [s foo] versus [send foo] that's anissue I want to avoid inthis discussion). .hc---------------------------------------------------------------------------- The arc of history bends towards justice. -Dr. Martin LutherKing, Jr. _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list_______________________________________________ Pd-list@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@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
_______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list