4 ms·
"That's not to say I think it's a lost cause: I think it works great for short, 5-10 line programs. Once programs grow larger it becomes very hard to reason wit
by bootload 10y ago
"That's not to say I think it's a lost cause: I think it works great for short, 5-10 line programs. Once programs grow larger it becomes very hard to reason with, like with most VPLs."
Interesting comments. I'm not sure about the failure on larger programs. The idea of these visual languages is to allow different learning styles and a quicker way to absorb the program details into your head. The best understood programs are the ones we can hold in our heads.
Yet it isn't too hard a visual problem to show complex situations graphically. You do this with scale. EEs manage to show complex logic in circuit diagrams (and other diagrams for states) so I see no reason why more complex programs cannot be shown graphically. (cf: background in technical graphics/cartography/gis/programming).
The biggest limitation is the way programmers think. They convert textual code and parse it in their head. Aside from logic diagrams, flow charts (and others) I don't think 4GL programs have really taken off because the source code is the most efficient way to write, read and show software.
When it comes to graphics programmers don't natively grok graphics as they do text and shun such tools. I've noticed that I have to switch modes of thinking text when programming, then graphical for other things. It's a hard thing to do and the precision of programming breaks my ability to visualise and draw.
The scaling idea is simple. You have blocks of code that are represented as Blocky. As you look at more aspects of the program, you scale out and see a smaller scale view of the code represented visually. You do this with maps all the time. The complexity of the data is orders of magnitudes of the landscape is more complex with respect to software. You zoom in and out of the landscape as needed to understand, measure or picture the lay of the land.
The key thing I get from this is the union of primarily textual programmers to people wishing to visually understand has a shallow overlap.
- dyarosla 10y agoI've done a lot of research into other VPLs as well, and in theory, all of these ideas are sound. Unfortunately, it seems like VPLs only work well for well-defined domains (say, a VPL for shaders, a VPL for compositing, a VPL for EE, a VPL for business logic) Once you try to go general, and add "zooming in" and "zooming out" mappings, the number of ways that people would prefer to visualize each becomes exponentially more complex to display/interact with; so much so that then simply using text seems like a general-enough solution. I'm still hopeful that a general purpose VPL could exist and work for 'real' programs, but so far my search has come up empty. A good reference list to look at for existing VPLs: http://blog.interfacevision.com/design/design-visual-progarmming-languages-snapshots/ http://blog.interfacevision.com/design/design-visual-progarm...
- bootload 10y ago"Once you try to go general, and add "zooming in" and "zooming out" mappings, the number of ways that people would prefer to visualise each becomes exponentially more complex to display/interact with; so much so that then simply using text seems like a general-enough solution." Thanks for this insight. Agree with "text is good-enough". The link is like a list of approaches not to take. IFTTT, minecraft and openmusic appear to do the job. The problem I'm thinking of is creating geometry using a combination of GUI manipulation -> geometry ->code to allow tweaking for n00bs, straight code -> geometry with GUI manipulation. These examples really help.