I saw this illustration of a node-wire visual prog...
# share-your-work
i
I saw this illustration of a node-wire visual programming language in an App Store "featured app" story. The app looked pretty bad, but this totally unrelated illustration is quietly brilliant. I couldn't stop thinking about it, so I decided to "review" this fake-ass programming system. It's full of stuff that (A) is totally fake, (B) would totally work, and (C) is better than any other node-wire programming tool I've ever seen. Here's my review: https://github.com/ivanreese/visual-programming-codex/blob/main/impressions/app-store-illustration.md
❤️ 7
🍰 4
😂 4
j
life imitates art
m
the "spreadsheet" nodes could also be guitar frets 🙂
5
i
Software-defined radio, meet guitar-defined software.
o
Maybe someone can hire the artist to design a new node's wire environment?
i
I wish Apple put bylines and credits on their editorial / illustration. Sadly, they don't.
j
Amplified on the tweets. This reminds me that you might want to reach out to Pasquale to chat about Moonbase sometime... https://twitter.com/pasql/status/1382759417683279873
🍰 1
g
We should be able to split tasks - let the Designers create GUI layouts, let the language experts create languages and then plug the components together, but - due to a mind virus - we can’t, hence, we expect GUI designers to tangle language creation into their work and we expect language creators to tangle GUI design into their work. We get uneven results. Some languages have better GUIs and some have better programmability, but never both.
i
@guitarvydas any links to ones with good GUIs?
🤔 1
a
Speaking of things that are totally fake but would totally work, guitar-defined radio sounds alarmingly doable. Every fret a switch, perhaps...
Partial disagree about leaving disconnected wires around. I agree that you should be able to have one end loose, but if you can fully disconnect them I worry they'll clutter the workspace. I can imagine myself hooking a nearby wire end to a node and wondering why it doesn't work, forgetting that I also disconnected the other end some other time (maybe a visual indicator of the other end's status would be good enough?). So I would rather wires be disposable commodities, but that would clash with your idea of annotations/comments etc on wires. Thoughts on this?
i
I'm on the side of "give people good tools". Let people choose when their stuff should be deleted. Give them a tool for "select all fully-disconnected wires" (something like Illustrator's pathfinder, perhaps). Make the "automatic" behaviour be something people can ask for, not something forced on them. Also, keeping wires around opens up so many new design possibilities.
2
g
re: ‘any links to ones with good GUIs?’ short answer: no longer answer: IMO, H2H and H2C should not be combined together (human-to-human communication, human-to-computer communication, resp.) ; IMO the “best” GUI is a whiteboard (or pencil and paper), H2Cs should compile to code ; “good” H2C guis = Drakon, Statecharts, FBP, SVG (rects + ellipses + lines + text), ?TBD?, (notable exception: most GPLs); I am currently reduced to compiling .drawio files to code ; draw.io has many warts but allows free-standing arrows ; .drawio files can be decoded to mxGraph format and compiled to code ; what you (@Ivan) are talking about is H2H which is VERY different from H2C ; ATM I ignore H2H (which is your complaint, in general :-)
a
Ah, "select all fully-disconnected wires" helps a lot. I'd still want auto deletion for any model where wires are trivial (I'll just create a new one by dragging from a node, so keeping them feels like the computer is making me do its job), but otherwise I like your plan.
j
I love that you riffed on this illustration in this way. It reminded me of one of my other favorite artist's conception of a programming system, the "Voynix" system in the graphic novel "Square Eyes":

https://cortex.persona.co/w/2752/q/67/i/b29f1b6d12bc371edb51c3f4063bf1db89b18ea257c3e58d1472d530ffcd6030/p56-57-bleed-Paa.jpg

(and some other excerpts here)
👀 1
f
🌀 Terrific analysis! I think @Ivan Reese really wants to slow down time, wait for the wire to blow up with data, and disconnect it right at the moment the data flows through its center point resulting in a wire with trapped data! Take that wire the next day and connect it elsewhere where it will release its data to a new receiver. The CIA calls it “wiretapping”. Which brings me to thinking that “classic programming” seems to be “wireless” because we usually don’t see the connections between function calls. Which… could be… interesting to visualise…
👍 1