I suppose that while visual programming excels at conveying topology and structure, it can be weak at a low level due to the tedium involved. Traditional code is arguably better suited for low-level grunt work, at least for most people.
A hybrid solution might be best. For example: a message travels from one high-level visual entity to another, and you'd easily be able to drill down into the code comprising those entities, locating the exact lines responsible for emission or receipt.
http://oro.open.ac.uk/35805/8/UML%20in%20practice%208.pdf
"Even if UML is viewed as the ‘de facto’ standard, it is by no means universally adopted. The majority of those interviewed simply do not use UML, and those who do use it tend to do so selectively and often informally."
"They also highlight some of the fundamental tensions within UML, resonating with arguments [8], [25], [17] that UML’s intended strengths (i.e., generality, accommodating different levels of abstraction) are intimately associated with its observed weaknesses (e.g., latent complexity, issues of transformation and coordination between views) and arise from fundamental properties of UML (e.g. lack of formal semantics, separation of expressions of structure and behavior)."
Whatever we do next, we have a nice set of examples and case studies of "what can go wrong."
The specific software tools based on UML are especially good examples of the problems.
As far as I'm aware, most visual programming today is actually implemented in the form of node-based editors, which gained popularity in the film and visual effects industries well over a decade ago.
The best modern examples I can think of are probably Nuke[0] and UE4's Blueprint[1] system.
[0] https://www.thefoundry.co.uk/products/nuke/
[1] https://docs.unrealengine.com/latest/INT/Engine/Blueprints/E...
https://en.wikipedia.org/wiki/Rational_Software
"The development of Rose 2.0 combined a Windows-based Booch notation editor called Object System Designer (acquired from Wisconsin-based Palladio) with a new intermediate representation, and with new semantic analysis, code generation, and reverse engineering capabilities. The latter, which allowed prospective customers to analyze existing C++ code to produce "as-built" navigable class diagrams, helped overcome Rational's late re-entry into the market for object-oriented modeling tools. Rose 2.0 ran on Windows PCs and on several Unix-based workstations."
It wasn't usable, except to be used in the projects doomed to fail. Or spend a lot of money. Which is something a goal of the managers. But it still can't be named a success.
UML didn't pick up for whatever reason and visual programming fell into the valley of deception. I expect that with more UI/UX research we can get to the plateau of productivity in the next decade.
Btw, there is a variant of UML that is executable. https://en.wikipedia.org/wiki/Executable_UML
If you believe it's a good way, you should certainly go that way. Please write about your experiences afterwards.
Rose 2.0, I've mentioned and quoted explicitly, produced the code from the diagrams (that's the "code generation" from the quote). And it was tragedy. Maybe you find somebody's experiences on the web.
That sounds quite positive compared to my experiences with code generated from UML.
Yeah. For any truly novel visual programming approach to succeed it'd probably require some next-level UI/UX work for sure.
Visual programming could be very well an alternative. Or fucking oculus vr or god knows why. I 100% agree with rl3, it proposes a very interesting and challenging problems for the UI/UX folks.
Also many people don't use what is available to them. Modern IDEs support single-stepping and painless runtime introspection, and many have supported it for 20 years.
Still people resort to trying to trace out in their head what happens runtime.