Awesome, we need more visual programming languages coming out now. it's so impossible to convince a programmer who never experienced visual programming how useful/practical it can be.
I understand you are from a video processing background where visual programming is widely employed.. We are also building a visual programming platform, inspired from enterprise tools. Really interesting to see this domain evolve.
Lately I've become very interested in visual programming languages. Has anyone had any experience writing applications in a visual language? If so, what did you think of the experience? What different kinds of challenges come up?
Is there a reason that visual programming languages haven’t taken off for professional programming?
I know of several for specific fields (Dark for backends, TouchDesigner for live graphics/multimedia), but none that are more generalised, open, or in wide use.
It feels like an underdeveloped area that’s ripe for exploration and experimentation.
do you have any further information regarding their visual programming languages? are they known environments or are they in-house developments? are there any publications or documentation publicly available? thanks.
What I think is missed by a lot of people here is the opportunity for 'visual programming' to help with visual tasks, which is a lot of what people do on computers (making games, CAD, maps/GIS, images, 3d models, etc.). It will help because at the moment there's no way to 'see what you are doing' and code/program it at the same time in any of these areas in a realtime way. When this changes it will cause massive ramifications through these industries.
I do agree though that the title is a ridiculous assertion though (because everyone can already program, and visual programming is in no way going to stop people from having to become domain experts to do anything really interesting).
I'm the last to defend visual programming, it's mostly spaghetti nonsense and you'd be better of with an actual programming language for most complexity levels -- but I think there's a viable niche for stuff that satisfies both of the following:
(a) it's simple and it strings together off-the-shelf components;
(b) it has an intuitive, well-defined computational model
examples: defining compositions of matrix transformations for camera angles, defining data pipelines (read from this source, do these operations, write to that sink), very simple automation Apple Shortcuts-style (whenever I receive a message from this number, make a note on this file, etc.)
As soon as you venture into general-purpose territory, visual programming is just a disaster. Which is a problem because you have no way to convert your mini-idea into something usable, and you always find yourself wishing you had started with a normal script.
I tend to stay very far away, but it does have its moments admittedly.
The issue isn't visual programming but rather that we haven't found many good cases to use it still.
I do think visual programming is going to have a bigger and bigger impact in things like robotics, space exploration etc where you need more tactile access to computation power.
It's kind of like with the idea of a 3d interface. It only make sense when the holistic whole rather than the details are important.
It makes no sense to create a 3d warehouse I can walk around when I could just do a search and a list.
But you wouldn't necessarily want to control a robot doing repairs on your spaceship by having to program it every time you wanted it to do something new.
That post has no clue about the shortcomings, which were true in the past but needn't be any longer. Programmers have been doing visual programming since the advent of the visual debugger that shows updated values during program execution, and they are requesting more and more of it with tools for Live Programming like jsfiddle or LightTable (for VP in classic languages) or new languages like Apparatus[1] or Eve[2].
We are in the middle of the Visual Programming renaissance, now that the hurdles that limited composability of visual programs have been theoretically solved in the last decade by Programming Languages researchers, and computers are finally powerful enough to move visual languages without slowing to a crawl.
Unfortunately, Visual Programming suffers the same curse as Artificial Intelligence: for every breakthrough that produces revolutionary new tools, it is no longer considered Visual Programming but merely "how the tools should work".
Agreed. There are a lot of good points in this thread about why visual programming falls short for general purpose computing. However, I would argue that it already has a firm foothold in select domains such as presentations (powerpoint).
We've been building visual languages in the past for people in different industries, including Visual Effects one. Watching people with limited programming skills to create outstanding things on their own is truly amazing.
There have been a few attempts at visual programming languages. None that have really panned out to the mainstream but I don't think that's a failure of the idea entirely. Some things like complex spreadsheets or MS Access applications have clear analogies to programming but are more visual in nature. And there are things like Mac's Automater that have a lot of theoretical potential. Some things like bash pipelines could be really amenable to a more visual style as well
Almost a decade ago I worked on a visual web IDE called NudgePad, did some visual stuff for FirefoxOS, and a little bit of visual stuff at Microsoft.
Currently I'm working on a data science tool called ohayo (https://github.com/breck7/ohayo) that combines text coding with visual programming. It's geared toward similar use cases as RStudio, JupyterLab, Tableau or Observable, but takes a different approach.
At a higher level I'm working on Tree Notation: http://treenotation.org/. My not-at-all-humble contention is that this syntax is a breakthrough that will allow visual programming to become commonplace generally (it already is in some fields with tools like labview/excel/unity/tableau/etc) , because with it you can create programming languages that have the property that the code written by humans or machines(visual tools) is the same. Hence, whether you write the code by hand or use the visual tool, you'll still have great, clean code. With current EBNF languages or XML/JSON/etc languages the interaction between humans and machines is a mess.
For a decade I've also researched programming languages extensively and have a ton of data on over 10k languages at this point.
I understand you are from a video processing background where visual programming is widely employed.. We are also building a visual programming platform, inspired from enterprise tools. Really interesting to see this domain evolve.
reply