The tone of the article feels really preachy and full of itself without even fully understanding why Blueprints work well for games.
Killer features that come to mind are:
You can drag and drop asset references instead of relying on textual tokens.
You can build a framework where incorrect code does not fit together, or pins dont connect, or draggables do not allow for blocking. It's a much better feedback to a certain type of person than a textual error.
Then the article seems to go on and on about knowing how to make a great visual programming language despite not producing one.
dustingetz 25 minutes ago [-]
i think you’re looking for the term “computational structure”, as in, “what is the computational structure of a user interface” i.e. what typeclasses does the computation reify. To avoid impedance mismatches the authoring notation must align exactly to and emerge from the underlying computational structure. So as a starting point: modern applications have a frontend and a backend, they are reactive, async, and concurrent, they perform network IO and manage resources. Or at least they have components that do, which means the computational structure as a whole must encode these capabilities. if the computational structure is not uniform, i.e. the frontend and backend are treated separately, or the database is relational but the backend-for-frontend needs dynamic graph walking, then you will have seams between modules and arbitrary glue code cruft will accumulate and this will violate the alignment between authoring notation and underlying structure. Now your ORM needs XML configs to inject additional knowledge about the data access patterns that can’t be reflected from the notation.
general1465 4 hours ago [-]
From what is practically used - you have things like CoDeSys where you can program PLC or Matlab Simulink which is heavily used in science and in automotive development or infamous LabView spaghetti the moment when program will get just a little bit more complex.
All are using blocks with input and output which are either having predefined function or you can define the block function with a code. Reading these programming schematics is sometimes great to understand the high level of how program is working with input data (left) towards output (right). However the moment you will introduce loops, visual programming will just fall apart like a glass hit by a hammer.
indigoabstract 5 hours ago [-]
For some reason while reading this, I thought of Erlang, a language I know nothing about, except that it's not a visual language and it's build out (many) processes, kind of like a tiny internet with server and client nodes that can be taken down anytime for repairs or updates.
Maybe there's an unobvious way to make visual programming actually useful?
Probably quite a few people have wondered that throughout the ages. I know I have.
In the meantime, this AI thing happened, emphasizing even more the use of text/voice as a mode of creative expression.
Towaway69 4 hours ago [-]
Have a look at Erlang-Red[1] which uses Erlang for the basis of making a visual programming environment.
Erlang-Red is inspired by Node-RED which itself is inspired by flow based programming.
> Maybe there's an unobvious way to make visual programming actually useful?
I'd think it would be finding the optimal parameters for an algorithm that is probably better expressed in another language.
Even though they are all Turing complete, any programming paradigm is biased towards solving certain kinds of problems.
It seems "visual programming" is biased towards the computationally irreducable[1]. This is a class of problem very sensitive to initial conditions. The chaotic behavior may eventually settle towards a stable state. So, the image of that stable state then encodes the parameters you'd want to use on the algorithm you wrote in another language.
That's not meant to be harsh. This gets directly to the heart of why we may want to write the same ideas in different ways even if those writings seem logically equivalent. One way is just easier to understand than the other depending on what part of the problem you're trying to tackle. These multiple writings are not redundant, but the facets necessary to more thoroughly explain a problem. In fact, upon closer inspection you'd find that what seems like the same algorithm written two different ways is actually not the same because they are executed differently.
I wonder why people always seem to miss the most successful visual programming interface, excel, in their analysis.
nlitened 15 minutes ago [-]
100%. Hundreds of millions of people have been successfully using this visual programming environment with little to no CS education to solve real business problems for decades. What’s most important — the “visual” part is what actually allows non-programmers to build the intuition and write correct programs, it’s a core feature that reinforces the success, not a gimmicky bolt-on.
Also important to reflect on this, I think: it’s a dynamic functional programming language with annoyingly weak and limited types, with inconsistent string parsing, and the most obtuse and uninformative error messages, and it still works wonderfully.
aetherspawn 4 hours ago [-]
It would be awesome if someone could fund a free open source version of Simulink (as a VSCode plugin or something like that) so that we can build normal software using model-based design. Games, shaders, ML, reactive UI, applications like these…
Simulink is getting more expensive every year, and licensing is a huge barrier to open source models.
Fundamentally underestimates the chaotic, exploratory essence of innovation. I challenge you to write the argument for form over function for good measure. Form follows function inside the box.
boopity2025 4 hours ago [-]
Feels like visual programming keeps trying to be “code, but with pictures” instead of asking what problems pictures are actually good at solving. We’ve basically been drawing the same boxes and arrows since the 80s and wondering why it still feels like wiring up a VCR.
If we really leaned into the visual cortex, maybe we’d get something where zooming out shows the big picture and zooming in shows the gritty details, like Google Maps for code. Until then, node‑and‑wire diagrams are just UML diagrams that decided to cosplay as circuit boards.
m0llusk 48 minutes ago [-]
Sort of related: It is interesting how even heavily symbolic programs can be translated into relatively plain language and from there into other languages. But from there complexity explodes as any real use must address essential challenges like typing and making use of existing interfaces which are harder to translate.
Here there is embrace of beauty and structure emerging from rethought low level expressions, but how does this work with typing, Windows, Mac Foundation Kit or whatever else?
sublinear 3 hours ago [-]
> That's how we get terrible interfaces where the end user needs to be aware of the data model to use it effectively, like Git.
This is only true if you prefer whimsical metaphor over concise description and cleaning up unexpected behavior instead of precisely defining what you want upfront.
AfterHIA 5 hours ago [-]
Dude fucking Google, "e-Toys and, "Mindstorms by Seymour Papert" and get back to me.
Killer features that come to mind are:
You can drag and drop asset references instead of relying on textual tokens.
You can build a framework where incorrect code does not fit together, or pins dont connect, or draggables do not allow for blocking. It's a much better feedback to a certain type of person than a textual error.
Then the article seems to go on and on about knowing how to make a great visual programming language despite not producing one.
All are using blocks with input and output which are either having predefined function or you can define the block function with a code. Reading these programming schematics is sometimes great to understand the high level of how program is working with input data (left) towards output (right). However the moment you will introduce loops, visual programming will just fall apart like a glass hit by a hammer.
Maybe there's an unobvious way to make visual programming actually useful?
Probably quite a few people have wondered that throughout the ages. I know I have.
In the meantime, this AI thing happened, emphasizing even more the use of text/voice as a mode of creative expression.
Erlang-Red is inspired by Node-RED which itself is inspired by flow based programming.
[1] https://github.com/gorenje/erlang-red
Disclaimer: I’m the author of Erlang-Red.
I'd think it would be finding the optimal parameters for an algorithm that is probably better expressed in another language.
Even though they are all Turing complete, any programming paradigm is biased towards solving certain kinds of problems.
It seems "visual programming" is biased towards the computationally irreducable[1]. This is a class of problem very sensitive to initial conditions. The chaotic behavior may eventually settle towards a stable state. So, the image of that stable state then encodes the parameters you'd want to use on the algorithm you wrote in another language.
That's not meant to be harsh. This gets directly to the heart of why we may want to write the same ideas in different ways even if those writings seem logically equivalent. One way is just easier to understand than the other depending on what part of the problem you're trying to tackle. These multiple writings are not redundant, but the facets necessary to more thoroughly explain a problem. In fact, upon closer inspection you'd find that what seems like the same algorithm written two different ways is actually not the same because they are executed differently.
[1]: https://en.wikipedia.org/wiki/Computational_irreducibility
Also important to reflect on this, I think: it’s a dynamic functional programming language with annoyingly weak and limited types, with inconsistent string parsing, and the most obtuse and uninformative error messages, and it still works wonderfully.
Simulink is getting more expensive every year, and licensing is a huge barrier to open source models.
Edit: basically, we want Dyad (https://juliahub.com/products/dyad) except free.
If we really leaned into the visual cortex, maybe we’d get something where zooming out shows the big picture and zooming in shows the gritty details, like Google Maps for code. Until then, node‑and‑wire diagrams are just UML diagrams that decided to cosplay as circuit boards.
Here there is embrace of beauty and structure emerging from rethought low level expressions, but how does this work with typing, Windows, Mac Foundation Kit or whatever else?
This is only true if you prefer whimsical metaphor over concise description and cleaning up unexpected behavior instead of precisely defining what you want upfront.
#ted #nelson #engelbart
"You can't think seriously about thinking without thinking about thinking about something."