A source of UI inspiration from Ink & Switch

I went down a bit of an end-user programming rabbit hole again and stumbled upon this article from Ink & Switch.

It strikes me that the explorations they’ve done there might align well with the types of things you’re intending to accomplish with the Agency. I remember one of the examples in a previous Spritely talk involving sending a capability to turn on and off a smart device via a messaging system. The amount of composability and flexibility you would need to do such a thing feels like you’re deep in the end-user programming space. (Which I love!)

One thing stuck out to me, because it also matches my intuition:

Many attempts at more accessible programming languages are weakly typed, under the hypothesis that types are unforgiving to newcomers. Our team’s instinct is the opposite: strong typing, with the right interface, can be friendlier for newcomers by making program components “snap” together like building blocks. If the blocks fit, the program will probably work. See the previously mentioned Scratch; Elm’s strong typing for eliminating runtime errors; and Hazel’s “typed holes” live programming environment.

I recall Christine had a paper about content-addressed descriptors a while back, which feels like it may be useful here. If your user interface has some knowledge about what kind of a thing an object is (or at least claims to be), it can present to users only the options that make sense in that context.


I can recommend joining the Malleable Systems Community. Lotsa thoughts in these areas. Via their community I learned about Webstrates/CodeStrates/Mirrorverse and Moldable Development. The main researcher is in their matrix channel.


Oh! I’d seen the Malleable Systems Collective before but didn’t realize they had a forum now. Thanks for the pointer!

1 Like

I really enjoyed Ink & Switch’s recent article on dynamic document editing: Embark: Dynamic documents for making plans

One thing that makes me excited for projects like Goblins is my hope that a distributed object system could lead to building objects over “applications”, allowing for the sorts of modular, inter-object behavior described in the Embark paper, rather than having individually siloed “applications” that lack the same openness for inspection and malleability.


I’ve been having a lot of thoughts about how something like Google Wave (Apache Wave, for a bit) would fit with Goblins, and I think this is kind of the sort of thing I was subconsciously imagining. Very cool stuff.


Google Wave sounds interesting, but I never before encountered a set of search results so confusing on whether the product is dead or still alive in 2023. Are you particularly interested in Wave itself, or the concepts on which Wave was/is based?

Just saw this - definitely not Wave itself as that ship has sailed. But the concepts explored in it as a project, yeah.