You are viewing archived messages.
Go here to search the history.

Ivan Reese 2025-12-16 06:19:15

Lovely little article about HyperCard, including some historical context I'd not previously seen, and a general plea to do more weird stuff like this. (And yes, article, node-wire spaghetti is my idea of no-code Nirvana).

-> HyperCard on the Macintosh

Ezhik 2025-12-16 07:20:42

Since this article brought up using AppleScript in Photoshop, a good while back I've seen somebody share a very complex Photoshop macro which created a procedurally generated landscape, or something of the sort. They sheepishly said that they didn't know how to code, but they made this thing with macros. They didn't even realize that they did, in fact, know how to code.

That + a couple of recent HyperCard articles (especially that Decker one that calls this out directly) made me think about the visual aspect of coding. Or it just vanishing entirely. Interface designer tools replaced by XML-ish markup. Text rules everything around me. Scratch is just arranging text. The node-wire spaghetti at its worst just being a slightly more spatial representation of textual code. And of course the elephant in the room is LLMs, which turn text into more text. Are we throwing text at the problem of too much text?

But then there's also the interesting aspect of coding in the same space as the output. You do that with the Excels, but mainstream programming is spending all this time at the backstage and never seeing the actual performance. Can we direct from the audience seat?

What would a programming environment that ditches text look like? HyperCard? LittleBigPlanet?

And can the backstage-audience metaphor apply to a textual programming environment? What would that look like? Excel?

Ivan Reese 2025-12-16 14:22:01

Yes! I agree emphatically with all your thoughts and share your yearnings!

Paul Tarvydas 2025-12-16 19:48:46

Q: What's wrong with that manifestation of node-wire spaghetti?

A: (IMO) There are more than 7±2 items of importance on the diagram. IMO, the diagram should be composed of multiple layers, with no layer containing more than 7±2 items. IMO, nodes need to be recursive, i.e. nodes can contain compositions of nodes, with each node possibly containing other compositions. All the way down. "Infinite canvases" will fail to satisfy in a similar manner. An "elephant in the room" is that we need recursive nodes with well-defined input and output ports .

Jason Morris 2025-12-16 20:33:28

I think the 7+2 wisdom is overstated. Books aren't limited to 9 words on a page. Sudoku has 81 spaces. Chess has 32 pieces. It's about the experience of processing the input. In Go there are 361 board positions, but your brain learns to process them as groups, regions, etc. It's more about whether the interface allows you to reduce the number of concepts you need to process simultaneously to around 7. If it does, humans will just use it that way. But I do think nesting is a very strong and underutilized way of facilitating that. I do worry that not everything helpful to navigate fits nicely into a tree, though. Have been experimenting recently at work with UIs that allow people to navigate directed graphs in a way that feels like navigating a hierarchy for filtering purposes, except that there is sometimes more than one way back "up" the graph. The results have been interesting, but most people have no experience with DAGs as a data structures, so it's hard to gauge if there is value there. I would like a more general concept of zoom, where you are able to choose a node as a target, and change the display to show or hide dimensions of information about that target, with dimensions being more varied than the "contains" relation.

Ivan Reese 2025-12-16 20:57:55

Saying "the 7+2 wisdom is overstated" is understated! :)

7±2 is Miller's Law, which was found by studying "the longest list of items (e.g., digits, letters, words) that a person can repeat back in the correct order on 50% of trials immediately after the presentation." It's about temporary memorization of lists! That's it.

This finding, and the other findings from Miller's paper, have effectively zero bearing on node-wire (absolutely, but also relative to text).

Ivan Reese 2025-12-16 20:58:32

I agree with compositions / recursions being valuable.

Paul Tarvydas 2025-12-17 17:23:58

Blur out "7±2", it's just a metaphor for "easy vs. hard" ...

Crossing the Great Divide From Difficult to Easy

Shalabh 2025-12-17 19:33:23

We need a language to talk about relationships represented in visual diagrams, eg “node a feeds into node b”. Once we have a language we can represent the same diagram as text. Any projection, zooming or modification of the diagram can also be done in the language oriented text version. So the question is: what does the visual diagram give us?

(this is not a counterpoint but rather a request for further examination)

Ivan Reese 2025-12-17 20:14:31

Why do we need to map the visual into language? The whole reason I want to explore visual programming is to see what it might express that language would struggle with.

Paul Tarvydas 2025-12-17 20:24:54

a) Some drawing editors already give us the "node a feeds into node b" info in some kind of XML. I use draw.io and transmogrify it's graphML into JSON while removing the graphical sugar (x,y,geometry stuff - something like 90% of the .drawio file - much more readable when boiled down). Then, I read the JSON into a "kernel" program (now Python, used to be Odin) and run it. [I have posted references to this stuff and am currently editing yet another short video on how to use pbp-kit ].

b) DPLs (Diagrammatic Programming Languages) give us huge amounts of flexibility that have been discarded in the rush to functional-ize code. I use both , DPLs and current programming languages (Python, JS, lisp, Odin, etc., etc.). I recommend using hybrids, not only Text PLs and not only DPLs. DPLs can express things that traditional PLs can't, while, traditional PLs can express things (like a = b + c ) that are cumbersome and wasteful to express in DPLs. DPLs can express pure, asynchronous message passing (functions don't do this by default). DPLs can express concurrency more easily than TPLs can. DPLs can express queue-based feedback loops (FP expresses stack-based recursion which ain't the same thing as queue-based feedback). DPLs can express fan-out and fan-in better than TPLs can. DPLs can express isolation and (recursive) nesting - our current TPLs don't. There's a wealth of info that Gutenbergian syntax simply ignores or makes more difficult than necessary. DPLs can express communicating state machines - incredibly useful when you want to use more than one computer, e.g. blockchain, IoT, internet, robotics, etc... (one will note that the BFT solution is just a simple state machine. Harel used diagrammatic StateCharts to power the Israeli air force (iiuc). Atari Pong was originally built with no TPL code and only with a diagram)

TPLs force us to think of "programs" as gearboxes full of tightly coupled functions and "computers" as FP-machines. That's only like 10% of what can be accomplished with these things (n.b. the "10%" number is pure hand-waving, but indicative of the imbalance, IMO).

Paul Tarvydas 2025-12-17 20:32:28

Mapping "visual" into TPLs lets us use existing tools and techniques (parsing, compilering, etc.). Kinda like the fact that early compilers simply mapped HLLs to ASM. Compilers still do that internally, but all of the ASM programmers who insisted on seeing the emitted code have retired. Now nobody cares to see how the sausage is made. Mapping from 2D to 1D is just a convenience, but, if you believe in brainstorming, this convenience can - incrementally - give you new ideas.

Joshua Horowitz 2025-12-18 04:17:24

Shalabh Chaturvedi sounds like mechanism.ucsd.edu/bill/teaching/F12/cs200/Readings/larkin.whyadiagramissometimesworth.1987.pdf (“Why a Diagram is (Sometimes) Worth Ten Thousand Words”)

Shalabh 2025-12-20 17:56:00

Excellent link, thanks Joshua.

Shalabh 2025-12-20 18:06:18

Need was a strong word - we dont need to map visual to text. But it is possible to map it and it can give us other perspectives into the same model.

What category are spreadsheets in? Clearly they cant benefit from git, grep or other plain text paraphernalia. OTOH, they don’t feel like a DPL – I don’t see diagrams when I open it. I feel there is a space here without a name.

Ivan Reese 2025-12-20 18:11:52

We need to separate the human interface from the machine representation. I’m perfectly happy with a text or binary machine representation. But for the human interface, there are many things for which it is impossible to map them cleanly into text. You could use text to describe them, but that would be lossy.

Shalabh 2025-12-21 19:48:36

Agree about the separation. I’m more interested in the human interface. Unfortunately there is often a different abstraction for interop across tools and so internal representation leaks out.

Also I just remembered Technical Dimensions of Programing Systems is a good model for categorization to answer my own question.

📝 Technical Dimensions of Programming Systems

Programming requires much more than just writing code in a programming language. It is usually done in the context of a stateful environment, by interacting with a system through a graphical user interface. Yet, this wide space of possibilities lacks a common structure for navigation. Work on programming systems fails to form a coherent body of research, making it hard to improve on past work and advance the state of the art. In computer science, much has been said and done to allow comparison of programming languages, yet no similar theory exists for programming systems; we believe that programming systems deserve a theory too. We present a framework of technical dimensions which capture the underlying characteristics of programming systems and provide a means for conceptualizing and comparing them. We identify technical dimensions by examining past influential programming systems and reviewing their design principles, technical capabilities, and styles of user interaction. Technical dimensions capture characteristics that may be studied, compared and advanced independently. This makes it possible to talk about programming systems in a way that can be shared and constructively debated rather than relying solely on personal impressions. Our framework is derived using a qualitative analysis of past programming systems. We outline two concrete ways of using our framework. First, we show how it can analyze a recently developed novel programming system. Then, we use it to identify an interesting unexplored point in the design space of programming systems. Much research effort focuses on building programming systems that are easier to use, accessible to non-experts, moldable and/or powerful, but such efforts are disconnected. They are informal, guided by the personal vision of their authors and thus are only evaluable and comparable on the basis of individual experience using them. By providing foundations for more systematic research, we can help programming systems researchers to stand, at last, on the shoulders of giants.

Paul Tarvydas 2025-12-16 19:13:02

Evidence in Support of Visual Programming

At 53:32 of this video , Alan Kay points to evidence in support of visualization. ...

Ivan Reese 2025-12-17 14:41:51

Nice critique of the Resonant Computing Manifesto. I found the manifesto distasteful, but largely because of how it incorporates AI. My own impression felt knee-jerk to me, but I didn't bother digging any deeper, so to that end this post satisfies.

-> Why I Didn’t Sign the Resonant Computing Manifesto: The Foundations Need Work

Tom Larkworthy 2025-12-17 14:53:27

I did sign it, despite it having a few problems, because in general I want people to row in that general direction and I am happy to support even if it does have some gaps I could nit pick on (and I did)

bsky.app/profile/larkworthy.bsky.social/post/3m7fiek5whc2y

https://bsky.app/profile/larkworthy.bsky.social|@larkworthy.bsky.social: My hot-take on indie-tech (which I am a big supporter of) is that "Prosocial" features are actually harmful. Voluntary communities are unable to coordinate effectively. Its not a tool problem, rather, people by default are not very good at coordinating. Corporations are good a coordinating, why?..

https://bsky.app/profile/mmasnick.bsky.social|@mmasnick.bsky.social: Remember when the internet wasn't awful? We can go back to that.

Some friends and I have released the Resonant Computing Manifesto: a call to bring back such a time, to see if we can bring back a world where technology works for us, rather than against us.

https://resonantcomputing.org/

J. Ryan Stinnett 2025-12-17 15:29:20

Thanks for sharing this critique Ivan Reese! I was similarly bothered by the AI mentions in the manifesto. This critique does a good job of articulating many other issues I agree with as well.

Mariano Guerra 2025-12-17 16:54:51

Tom Larkworthy related 🙂

Strip-Vision-Open-source-650-finalenglish.jpg

Daniel Buckmaster 2025-12-18 02:25:29

I only became aware of the manifesto when Wesley posted their own criticism, which I very much agreed with: notebook.wesleyac.com/resonant-computing

I was a bit surprised there were a lot of people I recognize and respect as authors/signatures. Directionally it seems fine , but it just doesn't... add much concrete value? Which I feel is what Wesley was pointing out.

It feels a bit rude sometimes to do a close reading of a text that is not very rigorously thought through, but I hope that the authors are able to appreciate that doing this sort of reading is taking their ideas seriously, and I hope that they are willing to take their own ideas seriously enough to consider them.

Konrad Hinsen 2025-12-18 07:51:08

I discovered the manifesto via this thread. First impression: well-intentioned but naive. The critique cited by Ivan Reese points out the missing politics, and Conway's law explains why you can't ignore the politics and focus on just the tech.

Top naiveté: "In the era of AI, whoever controls the context holds the power. While data often involves multiple stakeholders, people must serve as primary stewards of their own context, determining how it's used." There is no way an individual or small team can control the context of its AI usage, assuming the latter means LLM here. LLMs live in the world of Very Big Data, by technical necessity.

Jack Rusher 2025-12-18 08:20:41

While I agree that it is naive, I do get “Marxists plotting to icepick Trotsky” vibes from these reactions. Somehow it's easier to be vocal about people with whom you have 80-85% overlap than your complete enemies?

Mariano Guerra 2025-12-18 10:01:08

"We, the signatories of this manifesto, are committed to building, funding, and championing products and companies that embed these principles at their core."

who is building, where? who is funding? how do I get the funding? who is championing? where?

Mariano Guerra 2025-12-18 10:06:29

my sad critique of the manifesto and the space in general is that nothing will get built, let alone maintained, that can actually be used for something real that people outside the creator or a small community of enthusiasts for a short period of time can use.

In 10 years someone will share a screenshot of a lost prototype that only worked for the demo and talk about how people in the past where doing all this amazing things and ask why worse is better won again.

Mariano Guerra 2025-12-18 10:16:09

It's ok if the space enjoys talking, discussing, thinking and prototyping more than building long term, but we shouldn't cargo cult xerox park and then complain that what gets adopted is what gets built, maintained and is useful for real stuff ™

Jack Rusher 2025-12-18 13:43:15

Mariano Guerra Unfortunately, where software is concerned “form follows funding”, and the current environment mostly funds things that VCs think will make them richer.

If you feel like dedicating your life to a hobby project that has the properties you desire, you're free to do that, but there's no guarantee anyone will care 🤷‍♂️

Mariano Guerra 2025-12-18 14:14:41

that's why I ask where is the building and the funding the manifesto mentions, hard to align the manifesto and the current incentives, ask mozilla 😄

Mariano Guerra 2025-12-18 14:15:31

I've been trying for 15 years, nobody cares 🙂

Mariano Guerra 2025-12-18 14:22:00

two quotes I read today:

The unfortunate reality is that Mozilla today exists as a convenient way for monopolists to shield their companies from legal scrutiny and unpleasant discussions.

What I would like to say is that free software is a strategy. As a community of people that share some kind of liberatory principles of which free software has been a part, let use free software as best we can, among many other strategies. If it fits, great. If you find yourself on the same side of an argument as Palantir, it’s time to back up and try something else.

No manifesto survives contact with reality I guess

Konrad Hinsen 2025-12-18 17:35:13

Manifestos belong to the realm of idealists. Funding (at a scale that matters) belongs to the realm of pragmatists.

Jack Rusher 2025-12-18 18:47:02

Mozilla fell prey to poorly designed internal structure that allowed a few bad actors to seize power. The money river from GOOG could have used for very good things, but ended up lining the pockets of incompetent leadership ☹

Konrad Hinsen 2025-12-19 09:01:32

Thinking of my old favorite again: Conway's law. What organizational and governance structure would actually support the development of "resonant computing"?

With the latest news from Mozilla, I see another wave of hope for Servo liberating the Web from corporate greed. But what does the Servo Web site say in its headline?

Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.

Empowering developers writing apps isn't really aligned with the goals of humane tech, resonant computing, and whatever other labels exist in this space. Its history with Mozilla Corporation, and its current attachment to the Linux foundation, also says "corporate tech". However, I know nothing about how the Servo team/community (which one fits better?) actually works.

I even wonder if Web governance, with central control by the W3C, is actually robust enough against corporate takeover to support humane tech.

So far for organizational structures that don't work. Which ones do? Personally, I'd bet on small protocols and small tools that implement and bridge multiple protocols. No organization big enough for corporate takeover to be able to harm the whole ecosystem. But do we have actual examples of approaches that seem to work?

📝 Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.

Servo is a web rendering engine written in Rust, with WebGL and WebGPU support, and adaptable to desktop, mobile, and embedded applications.

Jack Rusher 2025-12-19 10:59:21

Most things have cycles and seasons, but most end poorly (software projects, communities, nations, species)

Ivan Reese 2025-12-19 14:11:59

I'm pretty okay with death. Wouldn't call it the bad ending.

Seth Hinz 2025-12-19 19:28:08

Curious how many people here are in the greater vancouver area (BC not WA)? A vancouver FoC meetup could be fun (although I'm still in SF for the time being 😅)