6 ms·
'Visual Programming' failed (and continues to fail) simply because it is a lie; just because you surround my textual code with boxes and draw arrows showing the
by hacker_9 11y ago
'Visual Programming' failed (and continues to fail) simply because it is a lie; just because you surround my textual code with boxes and draw arrows showing the 'flow of execution' does not make it visual! This core misunderstanding is why all these 'visual' tools suck and don't help anyone do anything practical (read: practical = complex systems).
When I write code, for example a layout algorithm for a set of gui elements, I visually see the data in my head (the gui elements), then I run the algorithm and see the elements 'move' into position dependent upon their dock/anchor/margin properties (also taking into account previously docked elements positions, parent element resize delta, etc). This is the visual I need to see on screen! I need to see my real data being manipulated by my algorithms and moving from A to B. I expect with this kind of animation I could easily see when things go wrong naturally, seeing as visual processing happens with no conscious effort.
Instead visual programming thinks I want to see the textual properties of my objects in memory in fancy coloured boxes, which is not the case at all.
- stkni 11y agoThis seems pretty close to my experience. I remember thinking when I first encountered SQL Server Integration Services that this is 'visual programming'. It didn't take very long to realise that as a solution SSIS was well suited to some simple tasks where the logical actions on screen matched those taking place on the database. But as soon as those tasks became even slightly more complex, and this mirror was broken, the whole thing sort of fell apart. Then I was struggling to find ways to defeat the system to make it do what I wanted. It was with this realisation, i.e. that the solution was the problem, that I stopped using it. But it's not just SSIS that suffered this way, ActiveBatch is another example and I'm sure there are plenty more.
- fsloth 11y agoFor fairly simple configuration tasks IMO visual programming is a powerful tool for non-programmer end users to actually create programs which are not prone to syntax errors, misguided loop conditions or such. It also means one does not need to learn yet another syntax. True, the application domains are limited, but for example the common node based computational graph generation done for example in Blender and other visual software works quite well. It's not meant for professional programming, it's about empowering the end user with programmable tools.
- TuringTest 11y agoVisual programming excels at data wrangling (parsing structured data in an input/output pipeline that spits the same filtered data in a new format and structure). You're right that until now its usage has been limited to domain-specific languages for automating applications. But with the emergence of functional programming in the mainstream and visual tools that follow that paradigm, I predict that soon there will be visual tools that allow quite general programming. (I've already seen working prototypes, and they deliver on most of the promises).
- hacker_9 11y agoBut at what point does simple become complex? It's all well and good saying only use it for simple tasks, but when real life complexity comes knocking, you end up with this sort of magic [1] that is far worse than any C++ I've seen in the wild. [1] http://scriptsofanotherdimension.tumblr.com http://scriptsofanotherdimension.tumblr.com
- TuringTest 11y agoPeople interested in VP really, really should learn about DRAKON[1], the Russian style guide for structured dataflows. I've used it for real projects and it actually solves the spaghetti problem. Compare this:[2] with this:[3]. [1] https://en.wikipedia.org/wiki/DRAKON https://en.wikipedia.org/wiki/DRAKON [2] http://scriptsofanotherdimension.tumblr.com/image/138697246606 http://scriptsofanotherdimension.tumblr.com/image/1386972466... [3] https://upload.wikimedia.org/wikipedia/commons/0/0f/Dutch_cryo_Moscow.png https://upload.wikimedia.org/wikipedia/commons/0/0f/Dutch_cr...
- fsloth 11y agoA drakon node does not seem to support multiple input values? That's why these visual graphs get convoluted. Compute nodes deal with multiple input and output connections.
- TuringTest 11y ago
- TuringTest 11y agoWatch Bret Victor's videos about Learnable Programming[1], in particular Stop Drawing Dead Fish. [2] Only because visual tools in the past were limited to putting properties in boxes doesn't mean that all visual tools have to be that way. [1] http://worrydream.com/LearnableProgramming/ http://worrydream.com/LearnableProgramming/ [2] https://vimeo.com/64895205 https://vimeo.com/64895205
- hacker_9 11y agoI have seen it, and while Bret Victors 'research' is interesting, none of it actually scales to a practical level.
- TuringTest 11y agoBecause it is not engineered to industrial levels. It lacks encapsulation and packaging, but those can be added. Have you seen the tools by Chris Granger (Light Table, Eve)? Although they are not as spectacular as Victor's, those show a lot of promise to become practical tools.
- hacker_9 11y agoBret Victor's ideas lack a lot more than that. Complex systems contain hundreds of sub systems which in turn can contain hundreds of algorithms, which then contain many many variables. All interacting in some way. His ideas simply don't scale to this level (he works with < 10 variables, enough for a nicely packaged demo). Chris Granger himself stopped working on LightTable because he didn't believe in the project, and if you use it, the live editing gives minimal gains in productivity. As well as being buggy, slow, distracting and potential dangerous when blindly running half complete IO operations. As for Eve, well.. his first release was a visual programming tool that inflated 3 line sql statements to take up a whole page with, you guessed it, boxes and arrows. Now he is working on a 'card wiki' idea which effectively tries to hide all the program logic behind pictures and hyperlinks. Neither are good ideas, or once again, scale in any meaningful way.
- 11y ago
- watty 11y agoJust because they haven't replaced coding in a text editors for all use cases doesn't mean they "failed". In my industry (PLC, building automation), visual programming languages are the norm and are extremely successful. They significantly drop the barrier to entry and allow basic controlling of systems for non-programmers.