https://futureofcoding.org/ logo
#thinking-together
Title
# thinking-together
j

Jim Meyer

02/11/2024, 7:19 AM
New visual programming languages don't fail as visual programming languages. They fail as programming languages, which is what most new programming languages do.
i

Ivan Reese

02/11/2024, 4:46 PM
I agree. But I also think they fail don't fulfil their potential in other regards. • They fail at visual communication. Some visualize data types (common in block-based). Some visualize complex control flow (common in node-wire). Some visualize runtime state (common in state charts). Few give the programmer any choice in the matter. None (that I've seen) let the programmer build their own visual affordances in the editing environment. None meaningfully use animation. • They fail at interactive communication. Some are structural, preventing invalid program configurations (blocks). Some use interaction as part of the programming process (PbD/PbE). Some use tight cycles that approach the sensation of dialectic (fast TDD). None give you the flexibility to define what interaction ought to mean as part of the activity of programming (though some GPT experiments are verging on this). None meaningfully use theatre. It's easier to make a mediocre textual programming language than it is to make a mediocre visual one. I imagine the same would be true if one wanted to make a good visual programming tool — but I don't think anyone has done that yet, so I can't say for certain :)
j

Jim Meyer

02/11/2024, 6:29 PM
Your reply just planted the idea that we might need to figure out consciousness to figure out how to create a truly good visual programming language. Somehow our brains are able to blend visual and symbolic thinking into one coherent model, but how that's pulled off remains a mystery.
i

Ivan Reese

02/11/2024, 6:51 PM
I think it's easy to come up with a long list of concrete things programming tools (visual or not) could do better. It's just prohibitively effortful to do the design, implementation, etc. work needed to realize those ideas.
So while you might be right in the limit, let's not preclude the possibility of making progress in the meantime.
j

Justin Janes

02/11/2024, 10:15 PM
I want a spoken language based on the potent succinctness of an APL
j

Jason Morris

02/12/2024, 12:08 AM
Also consider the possibility that human beings evolved in the environment of text, not the other way around.
j

Justin Janes

02/12/2024, 12:18 AM
Analogy is potent, it taps an experienced knowledge to apply it to another context. I think the real future visual programming language that takes root is potentially far more flexible in its initial form and gradually becomes abstract as a user expresses fluency with the underlying principles. I like the mental exercise of imagining how i would attempt to introduce someone to programming from a raw visual representation of sections of memory flowing through various processor types. Re-introducing assembly and the abstraction of higher level languages on top of that.
c

Christopher Shank

02/12/2024, 5:27 AM
@Ivan Reese There was something quite profound to me in the way you worded this! Thank you 🙏
None meaningfully use animation.
I was wondering if you could expand on this?
i

Ivan Reese

02/12/2024, 5:42 AM
If you have a programming environment that makes effective use of graphical imagery, it's easy to imagine communicating even more information by making those graphics move somehow. Exactly how depends on what is being visualized. Let's assume a graphical program editor that is able to access the stack and state of the running program. It could show data flowing through functions. Or functions moving across a visualized state space updating values as they go. It could overlay the program source with a heat map representing time spent in each area, updating on the fly as the program ran. Even without access to the running program, an editor could use animation to convey information. We already use color (syntax highlighting, diff, themes) — and that's arguably a narrower channel.
c

Christopher Shank

02/13/2024, 6:28 PM
@Ivan Reese Totally agree with what you’re saying! Besides being an new channel to use, it helps slow down the computer’s imperceivable execution and provides object permanence when morphing between representations. I’d also love to see more VPLs exploring physics engines. One of my favorite parts of @Samuel Timbó’s Unit is the forced directed layout. It adds a liveliness that I dont see with many other VPLs.