Visual Programming and why it sucks

  • Not saying that I agree with this, but it raises some interesting points

    http://blog.davor.se/blog/2012/09/09/Visual-programming/

    Of course dealing with signal processing is a unique programming problem that lends itself to visual programming, but perhaps visual programming is not the best approach for complex routing and larger applications.

  • Considering all of the apps written for the monome using Max, I'd say this has mixed application here. When I look at something like The Party Van I'm overwhelmed immediately. However it somehow manages to work well enough. I think it is because most of what is happening beyond the manipulation of files is about the stream of information. While not completely linear, in many ways it is, just with lots of circling back around.

  • After I spent $200 on Max 6 you say this...

  • For me max/msp has been amazing. It taught me a lot about programming, I highly doubt I would have gotten to where I am now without it. If you work with lots of abstractions, max can be amazing for doing live programming... which is awesome. It is also a great environment to enable individuals to rapid prototype ideas, it is super quick to get things up and running with max with the right abstractions and externals.

    BUT, when you start to have larger applications, such as mlrV2, things can become unruly quickly. If the app has not been designed modularly, things that should be routine tasks (such as switching from monome serial to serialosc) become a headache, as you find yourself digging through many patch's to find a single object...

    Which brings me to my biggest gripe with visual programming... collaboration. Not only is it difficult to dig through other peoples code, but proper version control is impossible. While you can use a version control system such as git for your own patching... many of the tools used for collaboration become useless when moving a single object 2 pixels will result in 50 lines of code changes. This makes doing something as simple as a pull request near impossible.

    So this isn't to say that visual programming SUCKS... it is awesome, and has its uses. it is just to say that when you find your self hitting your head against the wall, perhaps you should think about using another paradigm. Thankfully max lets you do this. If only cycling 74 worked out a version control system, or a way to use git, all would be perfect.

  • These kind of arguments always seem to come from "real" programmers, doing "actual" programming. The thing is, that's not me. Sure I'm programming my own stuff, and learning (a ton) along the way, and getting better and better etc.., but my goal is not of a programmer. My goal is that of a musician/artist.

    Max is the tool to them make the "real" music with, with my "actual" program.

    Even with the little bit of processing/arduino knowledge I have, I know that doing certain things (logic in particular) is very cumbersome in Max, but that's one out of a ka-ja-billion things that's that way. For most stuff, particularly in terms of DSP makes sense visually.

    Also in terms of complexity, I'm sure if I got a computer science degree and coded up the party van in straight C, that it would be significantly more difficult to understand to 95% of the users out there. Granted, I don't know of many people getting their "hands dirty" in the party van code (Benjamin got in there and added MIDI learn in v02) but I don't think it's because it's in max. It's because it does soo many different things. (I'm wondering if the party van is the most doing-est monome app).

    I think one of the reasons we don't see people programming in a standardized way in Max very much is because of how the tutorial/education/help files are set up. Everything in the documentation is pretty low level. So to build anything beyond that you have to 'rediscover the wheel'. Everyone does that. So we have endlessly unique wheels with little transference.

    For my part I try to edit/re-edit my code as I get better and annotate the living shit out of everything (the last version of the party van added as many abstractions as I could abstract), but complexity is complex any way you slice it.

    So in summation. Supercollider is doo doo, and Max/MSP smells like flowers.

  • Oh I know that some are both (Alex Harker is a helluva programmer, and can lay down some wicked guitar), or transcend into both, but I think Max can let artists pretend to be programmers enough to get what they need to be done (where I fall at the moment). That's not to say that my path won't lead me there at some point, but I don't have interested in programming things other than tools that I want/need.

    Speaking of externals...do you have any intention of doing one of your tutorials on external making? I've recently setup XCode and the Max SDK and started poking around, but it makes my head spin still..... (I plan on purchasing and incorporating one of these wireless sensors (http://www.x-io.co.uk) into my setup soon but it requires development. There's an opensource API and examples on the page, so the actual 'code' part wouldn't be too hard to adapt (I would imagine) it's the 'getting it into xcode and set up correctly and compiling it' part that's scaring the balls off of me).

  • the 'visual' model has a lot to offer and is evolving. if it's inspiring you to make stuff it's working for you. problems feel like they exist within every model and that's good. there are a lots of ways to interface, lots of ways to 'solve' 'problems.'

  • Yeah that book would be great, but as you said, it's been "coming out" for some time.

    Are some of the chapters online somewhere or did you proofread or something? More specifically, is there somewhere I could see them.

  • damn your whispers raja! ((ears pressed against the screen in futility))

  • 'K... Bit too busy to read all the thread right now but there's, to me at least, a distinction between programming (which I suck at. Like neanderthal's suck at reading: It's just beyond my basic abilities) and configuration (at which, ahem, I fucking rule. Yes I do) and visual configuration of DSPs and DAWs and control systems is a blessing because if I had to do that crap using syntax I would probably be homeless.

    Soooo... Max is visual programming and no matter how complex and convoluted it may become I believe it too to be a blessing for the folks like me that want to, desperately, get to grips with actually creating an app. A gateway drug to the world of syntax.

    So, yeah, visual programming probably does suck. If you're a programmer already. But if you're in the remedial wannabe programming dreamer clan, like me, it's a crutch that I'm glad exists.