My feedback, based on my both long but limited LabVIEW experience
> IDEs for text-based languages normally have features like code folding and call hierarchies for moving between levels, but these conventions are less developed in node-based tools. This may be just because these tools are more niche and have had less development time, or it may genuinely be a more difficult problem for a 2D layout — I don’t know enough about the details to tell.
NI demoed a system to function zoom in/out feature at one point but never fully developed it.
LabVIEW does have a call hierarchy. Like with Doxygen, my problem with these is they show everything rather than finding ways to highlight important relationships (e.g. you don't want to show every array append).
> Input
I suffered from RSI when using LabVIEW. Maybe I hadn't mastered enough but there is a lot more than just dropping that needs to be improved, but the wiring.
> Formatting
I think LabVIEW suffers from giving people so much pixel-perfect control, it encourages people to waste time on it because its "so close".
At one point, they demoed dynamic formatting (reflows the diagram as you add/move nodes without any manual management). This really needs to be made the default.
> Version control and code review
LabVIEW NXG has a text-based GVI format. It is not easily reviewable, mergeable, etc because it has all of the graphical minutia in it.
My proposal would be
- Remove block diagram formatting (see above)
- Separate top-level hand-designed UI from VI auto-placed front panel
- Reduce reliance on icons
- Encourage naming wires
At that point, a text-based VI format would be simple enough to be manageable within existing tools.
> At one point, they demoed dynamic formatting (reflows the diagram as you add/move nodes without any manual management). This really needs to be made the default.
Do you by any chance have a link to a video or article where this is shown or discussed? I’m a heavy user of LabVIEW, and I am also convinced in my own explorations of creating visual languages that dynamic automatic layout is the way to go, but it is a very hard problem.
I had to suffer through a semester of LabVIEW. It seems like it might be okay if you have high enough level blocks of functionality available that you're never hooking many together, but for what I was trying to do it was a massive pain (doable, but tedious and hard to organize and follow)
> IDEs for text-based languages normally have features like code folding and call hierarchies for moving between levels, but these conventions are less developed in node-based tools. This may be just because these tools are more niche and have had less development time, or it may genuinely be a more difficult problem for a 2D layout — I don’t know enough about the details to tell.
NI demoed a system to function zoom in/out feature at one point but never fully developed it.
LabVIEW does have a call hierarchy. Like with Doxygen, my problem with these is they show everything rather than finding ways to highlight important relationships (e.g. you don't want to show every array append).
> Input
I suffered from RSI when using LabVIEW. Maybe I hadn't mastered enough but there is a lot more than just dropping that needs to be improved, but the wiring.
> Formatting
I think LabVIEW suffers from giving people so much pixel-perfect control, it encourages people to waste time on it because its "so close".
At one point, they demoed dynamic formatting (reflows the diagram as you add/move nodes without any manual management). This really needs to be made the default.
> Version control and code review
LabVIEW NXG has a text-based GVI format. It is not easily reviewable, mergeable, etc because it has all of the graphical minutia in it.
My proposal would be
- Remove block diagram formatting (see above)
- Separate top-level hand-designed UI from VI auto-placed front panel
- Reduce reliance on icons
- Encourage naming wires
At that point, a text-based VI format would be simple enough to be manageable within existing tools.