Live data from Hacker News

Unit is a general purpose visual programming system

unit.software

61–70 of 84 posts

Re: Unit is a general purpose visual programming system

#61
post #14

I have seen dozens of these things and have made a few myself. Beyond some specific use cases, they don't seem to scale cognitively. The tangle of connections is a problem. The previous HN link from @andsoltis has a better critique than me. Don't get me wrong. Besides being experientially cynical about these things, I'm also firmly in the camp of "one more UI breakthrough, bro and we might crack it!" This one has som…

Beyond some specific use cases, they don't seem to scale cognitively. The tangle of connections is a problem.

Tons of things like this were built in Smalltalk. (Including a UI->Domain model connection layer in the IBM VisualAge Smalltalk IDE.) They all had scaling problems, especially, "they don't seem to scale cognitively."

It's not as if the problem doesn't exist in most codebases. It's more that the problem is invisible without such tools. Tools making the tangle visible make themselves seem unusable.

The fundamental problem, is that we don't have ways of introspecting these horrendous relationship graphs for specific contexts. If IDEs and other programming tools generally could create custom browsers/IDE windows for things based in queries like:

"All of the methods that contain references to ClassA.Member1 and ClassB.Member2 which also call function Y."

...where this query can be modified or further specified at runtime. Then there could be specific built in queries that cover everything touched by canned refactorings. Then these further could be intersected or unioned.

EDIT: Forgot to complete my thought. If the graphical diagram could show contextually relevant slices of the system, it would greatly cut down the confusing web aspect of the diagrams.

Re: Unit is a general purpose visual programming system

#62
post #16
post #14

I have seen dozens of these things and have made a few myself. Beyond some specific use cases, they don't seem to scale cognitively. The tangle of connections is a problem. The previous HN link from @andsoltis has a better critique than me. Don't get me wrong. Besides being experientially cynical about these things, I'm also firmly in the camp of "one more UI breakthrough, bro and we might crack it!" This one has som…

I spent a lot of time on this too, many years ago, including working on a language designed specifically for it, and my conclusion was that I couldn't find a way to make it work without making the visual representation "just a tool" for working with a textual representation, because we still need to be able to communicate about code in all kinds of context where a largely visual system would mean being forced to shar…

I'm pretty sure I have a general solution to that problem. The key is that hierarchies can be embedded in text, as HTML and XML do. Check out https://github.com/bablr-lang/

Re: Unit is a general purpose visual programming system

#63
post #20

Earlier quoted context omitted.

That’s fine though? Ultimately everything you do on the computer is just a representation of bits being shuffled around. That doesn’t diminish its meaning or effective’s of a better user interface.

The problem becomes if the form you're used to working with the code in is very different from the form you need to communicate about it in. In practice every attempt I've looked at either become hard to communicate about the code in, or the visual aspect tends to end up just becoming a secondary visualisation of code that you still treat as textual first. In the latter case, turning it into a better UI is an unsolve…

The trick is that you don't round trip. You choose one immutable data structure that captures both the textual source of the program and the semantic information captured by the parser at the same time.

Re: Unit is a general purpose visual programming system

#64
post #29

Earlier quoted context omitted.

Requiring me to watch videos to follow along is an absolute non-starter to me. It's way too slow. If it was just learning an environment maybe I could tolerate that, but the showstoppers is communicating about code for projects . An AI bot doesn't solve this - if you can't relay the information textually, there's no reason the AI bot will be able to.

Are you saying visual programming languages can only work if they can be explained with text?

No he's saying that video is an inefficient and ineffective medium for conveying information that is not respectful of the recipient's time.

Re: Unit is a general purpose visual programming system

#65
post #59

Earlier quoted context omitted.

There needs to be some way of sharing diagrams, but hopefully not as screenshots? Maybe more like a higher-level SVG, where there is text and you can look at it, but it’s not the preferred way of viewing it. It would need to be easy to embed these diagrams in other documents, which suggests a standard format and viewers readily available, for browsers and editors at least. Support for embedding such things in another…

The problem is now you're reinventing the entire software stack of everyone you ever need to communicate with about it. Consider how hard it is to even get people to use additional symbols, like the APL's do...

Yes, good example. On the other hand, emojis seem pretty popular, and many programming languages do support non-ascii symbols in identifiers. We just don’t use them much for actual code.

Along with markdown, there’s also increasing support for math equations in forums and blogging software.

Re: Unit is a general purpose visual programming system

#66
post #44

Earlier quoted context omitted.

I have also actually built things in a visual programming language. They are simply not capable of the same level of organization as a text based language because pictures is a bad way to communicate. There is a reason humans advanced past cave painting and hieroglyphics.

Are you able to elaborate more? What language? I have used LabVIEW, among other visual languages, and built systems with 1,000+ VIs, which are the fundamental building blocks of code organization, and hundreds of classes. LabVIEW has VIs, clusters, classes, libraries, and projects, all of which are useful and required for a well-managed, decoupled code system. With good software principles, there's nothing that says…

This is why I still have hope.

We see the tangle representing a complex system and say the tangle is ugly. We hide the tangle in text and names and say it is better. There is something odd there.

That the tangle is perceived to be uglier than the word.... is it that our brains deal better with a sliding window of symbols rather than gazing upon the sprawled true tentacled glory of some large algorithmic expression?

The promise of VP is that the program is the architecture is the monitoring tools.

Should we learn to love the sprawl?

So, I'm making two parallel attempts at this again. One more serious ( https://youtu.be/sqvHjXfbI8o?si=-PDXQes5i4JglBQj&t=411 ) and one as a game/exploration.

The first will be for tiny machine-generated programs linked together, which will be for a research project. The second is for an abstract physics game which will be for learning, fun, and hopefully some tiny profit on Steam. (Will appear here https://store.steampowered.com/search/?publisher=My64K when playable)

In, both I am adding severe constraints to the VP design but the game one will be the most interesting. I'm looking to add a kind of cellular automata mediated physics that also provides gradual automated optimization. Think programming in Minecraft with Redstone but with multiple dimensions and a regular polygon substrate. The key ideas I am exploring in both are:

1) Can we design a substrate that enforces some order that solves the tangle problem?

2) Within a substrate, can an algorithm be "crystalized" or "folded" into something recognisable by its shape?

I am starting next week. I have six months off work. It should be fun.

Re: Unit is a general purpose visual programming system

#67
post #16

Earlier quoted context omitted.

I spent a lot of time on this too, many years ago, including working on a language designed specifically for it, and my conclusion was that I couldn't find a way to make it work without making the visual representation "just a tool" for working with a textual representation, because we still need to be able to communicate about code in all kinds of context where a largely visual system would mean being forced to shar…

I'm pretty sure I have a general solution to that problem. The key is that hierarchies can be embedded in text, as HTML and XML do. Check out https://github.com/bablr-lang/

I'm not sure how that is solving it? It needs to be compact, and readable.

Re: Unit is a general purpose visual programming system

#68
post #29

Earlier quoted context omitted.

Requiring me to watch videos to follow along is an absolute non-starter to me. It's way too slow. If it was just learning an environment maybe I could tolerate that, but the showstoppers is communicating about code for projects . An AI bot doesn't solve this - if you can't relay the information textually, there's no reason the AI bot will be able to.

Are you saying visual programming languages can only work if they can be explained with text?

Sibling is right that video was the problem for me with that specific bit, but also: Text isn't necessarily a hard requirement, but the alternative is harder, in that then you need a tool chain that covers everything we do with code. That includes putting it in blog posts, emails, Slack in ways that are searchable, and can be decomposed into smaller bits, so images are insufficient.

It's possible for a visual programming system to work without it, but it will need to be accordingly a far bigger step up.

Consider searchability on e.g. Stack overflow for example. If people don't have a consistent, shared vocabulary, just lack of searchable exposure is likely to forever condemning it to a niche.

Re: Unit is a general purpose visual programming system

#69
post #20

Earlier quoted context omitted.

The problem becomes if the form you're used to working with the code in is very different from the form you need to communicate about it in. In practice every attempt I've looked at either become hard to communicate about the code in, or the visual aspect tends to end up just becoming a secondary visualisation of code that you still treat as textual first. In the latter case, turning it into a better UI is an unsolve…

The trick is that you don't round trip. You choose one immutable data structure that captures both the textual source of the program and the semantic information captured by the parser at the same time.

That doesn't solve anything. The problem isn't how to represent the AST, but defining both a visual and textual version that can unambiguously represent the same thing without either or both representational becoming unusable.

Re: Unit is a general purpose visual programming system

#70
post #59

Earlier quoted context omitted.

The problem is now you're reinventing the entire software stack of everyone you ever need to communicate with about it. Consider how hard it is to even get people to use additional symbols, like the APL's do...

Yes, good example. On the other hand, emojis seem pretty popular, and many programming languages do support non-ascii symbols in identifiers. We just don’t use them much for actual code. Along with markdown, there’s also increasing support for math equations in forums and blogging software.

Emojis have universal appeal. Coding symbols doesn't.

Math symbols are a better example, but also extremely well established, and it's still taken a very long time to get widespread support, and it's still far from universal.

But note that non-ASCII symbols etc. was an example of the difficulty of even getting support for something "that simple". Now try to take the step up to e.g a node-based editor.

Post reply on HN