Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The social problem with visual programming is indeed the same as with "Mythical Non-Roboticist". But there is quite some issues on it on the technical side too:

- Any sufficiently advanced program has non-planar dataflow graph. Yes "pipelines" are fine, but anything beyond that - you are going to need labels. And with labels it becomes just like plain old non-visual program, just less structured.

- Code formatting becomes much more important and much harder to do. With textual program representation it is more or less trivial to do auto-formatting (and the code is somewhat readable ever with no formatting at all). Yet we still don't have a reliable way to layout a non-trivial graph so that it doesn't look like a spagetti bowl. I find UML state machines very useful and also painful because after every small edit I have to spend ten minutes fixing layout.

- Good data/program entry interfaces are hard to design and novel tools rarely do a good job of it the first time. Most "visual" tools have a total disaster for a UI. Vs. text editors that were incrementally refined for some 70 years.



+1

I'd add versioning and diff tools as another critical advantage for text. If your visual tool can't provide a superior diff experience, then it's dead on arrival for most serious projects.


I have a hard time trying to convince people to use things like PlantUML to “write” diagrams, but Gliphy is much too popular.


I wish Github READMEs had native PlantUML support. My go to is MermaidJS for that reason.


Mermaid is a bit more limited.


> Any sufficiently advanced program has non-planar dataflow graph.

For some reason this reminded me of the elevated rails coming in the next Factorio update. Maybe visual editors need something similar? Even Logisim can distinguish between a node (three or more wires join) and two wires that just cross without interacting.


I mean it's easy to make the compiler see the crosses, but it's much harder for the user to trace these (and parallel busses too).


> painful because after every small edit I have to spend ten minutes fixing layout.

PlantUML solves this.


I disagree. As someone who likes PlantUML specifically because it lets me store diagrams as code, I too frequently end up spending just as much time trying to indirectly coerce the thing into the layout I want since it won’t let me position things explicitly.


Fair enough, I guess we have different opinions on what "fixing the layout" really means :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: