Hi all,

Forcing good practice is not something I'm interested in. Every programming language can be abused horribly (they even have a prize for best/worst abuse of C -- look through some of these http://www.ioccc.org/years.html ).

My point was not that avoiding segmented and hideable patch cords fixes these problems. It's just that the presence of those features makes it much easier not to care, and many users just don't care, and it makes things worse for those of us who have to use that patch elsewhere.

We did have a long list discussion about best practices, actually, collected here:

https://puredata.info/docs/style-guide/PrimordialStyleGuide/

There are other style guides too.

On Mon, Feb 22, 2016 at 4:29 PM, Dan Wilcox <danomatika@gmail.com> wrote:

2016-02-22 17:25 GMT-03:00 Matt Barber <brbrofsvl@gmail.com>:
I've said this before, but I think there are very good reasons not to ever include segmented patch cords (although hideable patch cords would be even worse). These two features are responsible for some of the very worst patching habits in Max/MSP. Have you ever been called on to run someone's patch, and you need to tweak something for your specific audio setup or fix a bug or whatever, and when you open it you get something that looks like this (one of the first "max patch" results on google image search):



I agree, and I laugh when people say, this is hard to understand in Max, because of all the cords, I can't imagine how ugly it'd be in Pd.


The solution is the same in both environments: good use of encapsulation via subpatches & judicious use of send/recvs when necessary.

Example from robotcowboy:

* one of my first performance patches: https://www.flickr.com/photos/danomatika/25082084442/in/datetaken-public/
* and the second version using subpatches & send/recvs: https://www.flickr.com/photos/danomatika/24573539133/in/datetaken-public/

This approach led to using GOP and modularizing things between separate patches & a main control patch: https://www.flickr.com/photos/danomatika/25107115651/in/datetaken-public/

To segment or not to segment is moot, you can create both well designed as well as spaghetti patches in either environment just as you can create well-written or spaghetti code in any textual language. I agree that the environments are not at fault here.