2 ms·
Visual programming ... can't deal with large complexity like text can I disagree. I wrote a good bit of Max/MSP a while ago, and while most Max code out there
by dkersten 10y ago
Visual programming ... can't deal with large complexity like text can
I disagree. I wrote a good bit of Max/MSP a while ago, and while most Max code out there is a horrible horrible mess, I put that down to the target users being musicians and artists who were never trained in software engineering principles like encapsulation and modularity [1]. In my own code, I structured things as I would in a textual language and I found that code could be much cleaner and easier to maintain than textual code (and experimentation was easier too).
I've tried a few other visual languages [2] and they do all have their issues, but I don't think these issues are inherent problems with visual languages, but rather problems of the implementations that I've tried. That is, they can potentially be solved eventually. I think they largely don't get solved because there isn't much isn't much demand from the target users (possibly because they simply don't know any better) [3].
I've seen textual code in mainstream languages that manages large complexity in just as bad or worse ways. Simply being textual or visual doesn't necessarily make one better or worse.
There is a reason people write books, not comics, especially for advanced topics!
Visual languages still allow text where appropriate (or could do). For example, writing a mathematical expression is much simpler in text (and Max/MSP allows you to do just that).
[1] and some issues with Max itself that could be solved. For example: it has very limited data structures and no real ability to allow user defined ones that I know of.
[2] Some that I've tried are targeted at programmers and they too fell flat for various reasons... I certainly don't claim its easy to make visual work. Many seemed to stick too closely to what already exists or otherwise didn't provide good enough data structure and encapsulation/modularity support.. Lack of git integration and unit testing is also a big turnoff for me.
[3] Visual languages are very successful in certain niches: musicians (Max, Pd, synthmaker), artists (lots of different shader/material systems), game developers (blueprints in Unreal for example), robotics/lab control (Labview, flowstone)