Live data from Hacker News

Where should visual programming go?

tonsky.me

61–70 of 77 posts

Re: Where should visual programming go?

#61
post #3

When this last round of discussion of visual programming happened I had a minor epiphany. For a little background, I’ve maintained that visual programming goes absolutely nowhere until we have visual diffs that work (work as in workflow). I’ve been saying that since before the UML Trough of Disillusionment kicked into high gear. Without diffs, without analysis, we are going nowhere fast. Almost every other link of th…

GitHub has had diff for images for years, and there's a web automation testing (think: Selenium) vendor called Aplitools that takes snapshots of web pages and diffs those too.

I don't know of any non-proprietary tools, but at least the tech is out there.

Re: Where should visual programming go?

#62
post #49

Earlier quoted context omitted.

Technically this works in Scheme, but not in Lisp. In Common Lisp one would need to write (funcall (if (

You're right, the example I wrote was in Racket. I didn't know "everything is an expression" wouldn't work in CL.

Everything is still an expression in CL, but you have to account for different namespaces.

Also, the above can be further shortened to:

  (funcall (if (

Re: Where should visual programming go?

#63
I don't believe in visual programming ever replacing code for general programming. However, many examples exist when visual programs work for narrow domain-specific applications. This works because such applications allow exposing only high-level domain-specific abstractions. This reduces complexity enough to be a good fit for visual representation.

Re: Where should visual programming go?

#64
post #3

When this last round of discussion of visual programming happened I had a minor epiphany. For a little background, I’ve maintained that visual programming goes absolutely nowhere until we have visual diffs that work (work as in workflow). I’ve been saying that since before the UML Trough of Disillusionment kicked into high gear. Without diffs, without analysis, we are going nowhere fast. Almost every other link of th…

The thing about visual programming, at least a lot of them, is they store the data as an ASCII version under the hood, but render and edit it visually. So for those, normal diff still works, and the renderer can highlight things accordingly.

Re: Where should visual programming go?

#65

Earlier quoted context omitted.

Curious, what's your profession? To me you do sound like a programmer.

Former machine technician. I used to repair machines in factories. I’ve been lurking on hacker news for over a decade because I find the work of programmers fascinating, but my brain just doesn’t cope well with code. I do however, understand machines and control logic, so for me visual programming is a sweet spot.

I have a theory that software devs make horrible mechanics.

Re: Where should visual programming go?

#66

not a well thought out take, but i think visual programming should stop trying to encode application logic and focus on: - building good UIs rapidly (e.g. improving & simplifying layout options, look & feel, etc.) - make debugging trivial & powerful - make deployment trivial Visual Basic was on the right track in almost every way except as a language. Hypercard maybe had the language thing figured out: use english as…

Non-coders will cease to exist about a half hour into building their first visual program. Even non-coders are going to want a place to put some code. They will get sick of all the clicking, clicking and dragging and wonder if there is a better way.

Something I have seen in the unreal community is heavy blueprinters develop wrist issues.

Re: Where should visual programming go?

#67
post #54

not a well thought out take, but i think visual programming should stop trying to encode application logic and focus on: - building good UIs rapidly (e.g. improving & simplifying layout options, look & feel, etc.) - make debugging trivial & powerful - make deployment trivial Visual Basic was on the right track in almost every way except as a language. Hypercard maybe had the language thing figured out: use english as…

> Hypercard maybe had the language thing figured out: use english as a base? I wrote some stuff in applescript, which is similar / descended from HyperTalk. I would say it's the worst language I've used; it's so hard to use because of pretending to be natural. It doesn't help when Apple forgot how to write documentation somewhere around 2008, so there's no authoritative docs, and it's unsearchable because it looks li…

applescript was a nightmare with zero autocompletion and a ton of magical strings and bad syntactic choices, some inherited from hypertalk, some not

i don't think an english-derived scripting language would be a bad thing (well, I wouldn't, since I created https://hyperscript.org, now would i?) if the tooling was good, I don't see a huge difference between someone dragging and dropping a for loop and an if statement and just typing

  for thing in whatever
    if the thing's field is false
      do something

Re: Where should visual programming go?

#68
post #29

not a well thought out take, but i think visual programming should stop trying to encode application logic and focus on: - building good UIs rapidly (e.g. improving & simplifying layout options, look & feel, etc.) - make debugging trivial & powerful - make deployment trivial Visual Basic was on the right track in almost every way except as a language. Hypercard maybe had the language thing figured out: use english as…

The problem with Hypercard is that it used an extremely restricted subset of English constructions. Once you got used to the limitations, it was fine, but could be very frustrating for users learning what sorts of phrasing Hypercard expected. Allowing too large a subset of English ends up allowing more ambiguous statements and more user surprise. Also, more complex grammar increases the chances of mistakes in impleme…

i really think a strong auto-complete/auto-correct could help here

the old hypertalk (and, later, appletalk) writing environments were terrible, that's where technology could really help

Re: Where should visual programming go?

#69
post #63

I don't believe in visual programming ever replacing code for general programming. However, many examples exist when visual programs work for narrow domain-specific applications. This works because such applications allow exposing only high-level domain-specific abstractions. This reduces complexity enough to be a good fit for visual representation.

Nah, I wouldn't be too sure. Each generation introduces their own new abstractions on top of whatever existed before. Any code that was written before their era is outdated legacy unreadable stuff, and it can only be fixed by writing new shiny modern blazing fast rocketemoji stuff. It doesn't matter that existing code already works, it must be changed anyway, and we all know that change==progress.

Maybe it won't happen during the next decades. Most likely it won't happen until all currently-alive maintainers of Linux "retire", and most programmers alive are from generations that grew up being pressured to use either Rust or React.

So I can easily imagine a future where there's two main camps: low level code in Rust (where "low level" now means "anything up to, and including, the web browser"); and high level code in some graphical thingy that compiles down to WASM.

And the path I see where we'll reach that point, is by the Rust community continuing to do their thing, and by SaaS companies continuing to do their thing (VM->Docker->"Serverless"[1]->"Codeless"[2]->"Textless"[3]).

With all that, I think it's possible that visual programming might become the dominant way of doing general programming. Not the only way (after all COBOL is still a thing today, so it would be like that), but I can see how what's "normal" is shifted up one level of abstraction higher, so that "code" in that future is seen the same way as "assembly" today; or "assembly" in that future is seen the same way as "punch cards" today.

Those old timers think their Rust language is good enough with their memory safety and stuff, and prefer to ignore decades of progress on programming. Separating the code in text files? Yeah no wonder they keep having incidents like the DeseCRATE or Cargottem supply chain attacks (years 2038 and 2060 respectively), if they install dependencies willy-nilly without even looking at the code they're bringing in (nobody wants to look at dependencies with that primitive tooling). If they used modern tooling instead, they would be able to easily tell at a glance which "nodes"[4] are trying to do suspicious stuff just by their location or relationships with other nodes; or even restrict network or filesystem access to a region of the canvas. They say "well, just use capabilities", but then the code looks like an unreadable mess and way too error prone, when modern tooling lets you just draw a square on a canvas and "any node[4] inside the square can read filesystem, everything outside it can't", without needing to modify any of the nodes[4] themselves. It eliminates whole types of vulnerabilities and whole types of human errors.

(/s, mostly)

[1]: Still needs servers, but you don't worry about it because servers are too low level and you only want to focus on the important stuff (just code).

[2]: Still needs code, but you don't worry about it because code is too low level and you only want to focus on the important stuff (just English).

[3]: Still needs text, but you don't worry about it because text is too low level and you only want to focus on the important stuff (just visual concepts).

[4]: Module, function, macro, etc.

Re: Where should visual programming go?

#70
Puckishly: it need go nowhere at all.

As a matter of fact, we _do_ have something that is more 'visual' or 'symbolic' than written speech, and it has a critical role in certain abstract forms of writing. It's mathematical notation (or, sometimes, symbolic logic) and it's already great.

Thus, any sufficiently advanced visual programming environment is indistinguishable from rendered LaTeX.

Post reply on HN