Got another idea for a visual programming language. As is my style, this one has an extremely specific sense of the progression of execution over time. It's not node-wire strictly speaking. Code objects are arranged in space, and time progresses by scanning over the objects in a specific direction, like a scanline. You get data parallelism (looping
across), and iteration (looping
down). Data is reified (the scanline "carries" the data as it moves). I've got some sketches, which I might share in a day or two if they turn out nicely.
More than viewing this as a fruitful direction to explore unto itself, it makes me think that any given approach to visual programming comes with tradeoffs. So rather than picking one direction and trying to stretch it to encompass all use cases, you should probably just make an environment where each subsystem can use whichever approach suits it. You'd use node-wire where that works best. You'd use block-based where that works best. You'd use some sort of tree editor where that works best.
Makes me want to do a "visual programming jam" where people have to come up with totally new ways to visualize the structure of code and data, complete with visualized execution semantics. "We wanted to make a visual programming system that was especially good at visualizing data transformation, so you use these little..
waldo worms to dig into a structure (like json, say) and pull out the appropriate data. Each worm wants to eat a certain kind of food, which is the access pattern... and you can... see, here, on the side, there's a little stripe where it shows what this worm's food is"
But I digress.