5 ms·
> Lack of evidence of their worth. There are not many Visual Languages that would be generally agreed are ‘‘successful,’’ and there is little in the way of form
by jcelerier 7y ago
> Lack of evidence of their worth. There are not many Visual Languages that would be generally agreed are ‘‘successful,’’ and there is little in the way of formal experiments or informal experience that shows that Visual Languages are good.
This is bullshit. A lot of musicians & visual artists are super successful with tools like Max/MSP, PureData, vvvv, or the ton of graph-based shader editors out there. Max/MSP is taught in a lot of place to music students, e.g. in conservatories. I promise that by the time you get them to understand for() and if() they've already made some music in Max, and the better ones have already started toying with sensors and controllers.
Disclaimer: I worked 3.something years in a company where the owner routinely shipped software entirely built in Max.
People without any programming abilities are able to use Blender's node editor to make super nice visuals : https://www.youtube.com/watch?v=JhLVzcCl1ug https://www.youtube.com/watch?v=JhLVzcCl1ug and at the other end of the spectrum, code that runs in airplanes is routinely designed using SCADE (https://www.ansys.com/products/embedded-software/ansys-scade-suite https://www.ansys.com/products/embedded-software/ansys-scade... - see e.g. these slides which talk about its use in the A380: http://www.artist-embedded.org/docs/Events/2008/Autrans/SLIDES/ArtistSummerSchool2008_Berry.pdf http://www.artist-embedded.org/docs/Events/2008/Autrans/SLID...) and other tools based in the synchronous reactive model.
- barbegal 7y agoI can write programs in LabVIEW in a few hours that would take me weeks in another language. Not all of that is due to the graphical nature, most probably due to the domain specificity and IDE integration. LabVIEW makes it super easy to create GUIs, visualise data and debug whilst running.
- throwaway894345 7y agoI've used a bit of LabVIEW; my hunch is that LabVIEW's standard library has high level components, which it can provide because its niche is so narrow. You could make a similar framework or library in a general purpose language. The other thing LabVIEW provides is a comprehensive solution for project management--many general purpose programming languages give you half-assed package and dependency management (less than half-assed if you're dealing with C or C++) and some make you learn an entirely different programming or configuration language or just to list your dependencies or make your tests runnable. Those are the big rocks that make LabVIEW easier than most general purpose programming languages; however, if you're comparing LabVIEW to C, there are many other advantages, notably garbage collection and abstraction--things that are common in high level programming languages (anyone who says C is a HLL can see themselves out). The visual language is gravy compared to the standard library and the integrated programming environment.
- marcosdumay 7y agoOuch. I can write programs in LabVIEW in a few hours that would take me weeks in another language. I can also write programs in LabVIEW in a few weeks that would take weeks in another language. And I can write programs in LabVIEW in many months that would take weeks in another language. The largest maker of a bad language is that it doesn't matter how long you work on it, you just get less and less productive and your program actually goes nowhere.
- jazzyjackson 7y agoWas going to mention Blender and Houdini, visual effects people use node graph editors all the time. Parametric CAD can be done very effectively with Rhino Grasshopper, which has such good tools for splitting and merging data stored in tables that I'm surprised it's not marketed for Extract/Transform/Load operations.
- istorical 7y agoGame dev frameworks Unity and Unreal also have good coding support for things like developing shaders, AI behavior trees, or just regular game logic. There are benefits to visual coding such as being able to visually group or cluster related code, being able to use zoom in and zoom out to create 'region's of code visible from further out with large labels, and being able to follow the lines connecting your code and state visually. But also there are big big big drawbacks, I don't need to mention the literal visual spaghetti code or the more difficult search / find and replace, regex find and replace, any text manipulation tool not available in visual coding. Hard to say whether visual coding in game frameworks is a boon or a curse. For large teams that include non-technical folks they do seem to be a net benefit.
- mgummelt 7y ago> being able to visually group or cluster related code Text can be grouped as well. > being able to use zoom in and zoom out to create 'region's of code visible from further out with large labels Can you elaborate on this?
- Supermancho 7y agoVenn-like overlapped groupings are notoriously error prone in text via annotations.
- cxr 7y agoluna-lang.org has a hero gif that shows zooming in a visual editor.
- mgummelt 7y agoIn what circumstances, generally speaking, do you think visual programming is more desirable than textual programming? Amateur programmers? Media production? Something else?
- brandonmenc 7y agoWhen you're building a data or signal flow. It's easier to reason about when you can see the branching, merging, and direction of flow.
- zozbot234 7y agoPart of the problem with visual programming in the "flow" style is the very fact that "branching" and "merging" has two internally-consistent, equally worthwhile but totally incompatible interpretations. Namely, parallel flow of data (known from "dataflow" diagrams; with parallel juxtaposition representing a product, the empty product standing for a unit flow, and a natural branching operation standing for "copy" or "clone") vs. divergent choice (known from "flowchart" diagrams; with parallel juxtaposition representing an alternative, the empty case standing for a zero flow, and a natural merging operation standing for a processing step that can be reached in multiple ways). This ambiguity clearly does not exist with a pipeline-like, single-source/single-sink "flow", but it does arise as soon as one has multiple juxtaposed 'flows' in a single diagram or section of a diagram. I'm not aware of visual programming methodologies that try to handle both semantics with equal clarity, and without introducing significant confusion between them.
- dkersten 7y agoPerhaps a step in the right direction would be to use different shapes of components for flowchart-like flows (like how in flowcharts diamonds are used for conditionals) and for parallel dataflow (rectangles in flowcharts). Perhaps not perfect, but at least you can visually see “this is a branch” vs “this is a parallel split”.
- mgummelt 7y agoThey aren't incompatible. Conditionals can be modeled as data flows. See circuit design.
- sogen 7y ago> routinely shipped software entirely built in Max. care to elaborate? music-related software?
- jcelerier 7y agomuseum installations and touch UIs, as well as visual stuff for events
- JPKab 7y agoJust to add to your point, Alteryx is a popular enterprise software app that is widely used and growing. Nobody on HN knows it exists, but it's very successful in it's space, and growing fast. Python and R code can be embedded within the graphs, which are all C++ under the hood.