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

Looking at all these visual programming languages, I'm struck at how complex many of them are.

For example, I can almost always understand a recursive Fibonacci generator written in a new procedural or functional language that I've never seen before, yet I struggled to figure out what was happening as some of these visual languages generated the same Fibonacci sequence.

Why create that kind of complexity in an effort to avoid text?



Because generally you'll want to deal with a bit higher-level structures using the visual paradigm. So, a Fibonacci generator should be just a box, not a whole graph.

Visual programming can help keeping track of data flows within complex and/or parallel programs.


I rather like Martin Fowler's view of diagrams being sketches used to communicate rather than blueprints from which to build stuff:

"comprehensiveness is the enemy of comprehensibility"

I like nice simple diagrams (I joke to colleagues about having a limited budget for boxes and arrows or drawing things in crayon) - having these kinds of things where you try and include everything in your diagram seems to miss the point to me.

http://martinfowler.com/bliki/UmlAsSketch.html


Yeah, except that in our system the graphs are still executable: http://noflojs.org/


So are your components written directly in a "lower level" language (JavaScript etc.) and then the high level structure relating those components defined in the diagrams?


Yep, in NoFlo you write components in JavaScript, though you can also use other diagrams as "subgraph" components.

In other environments compatible with the FBP protocol (http://noflojs.org/documentation/protocol/) the components may be written in other languages. For example, MicroFlo components for microcontrollers are C++.


Thanks - that makes sense. I just get a bit nervous with the idea that it makes sense to use a diagram-based representation all the way down the stack.


Here is one example of a project where we used FBP on Node.js, browser, and microcontrollers. The components in the graph you can see there are quite high-level:

http://bergie.iki.fi/blog/ingress-table/


At what point does a visual program become low level enough to not just be a architectural whiteboard session?




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

Search: