I’m interested in something similar regarding Code as UI and warraties to lower cognitive load in order to empower more people via computation. For that, the hypothesis I explored during my PhD is that self-referentiality is one of such warranties, but I arrived at that coming from autopoietic systems (Maturana and Varela) and trying to explore the consequences of it in the co-design and reciprocal modification of grassroots communities and their digital artifacts. My research question was: “How can we change the digital artifacts than change us?” and the approach was to introduce highly self-referential digital artifacts (i.e. those described within themselves instead of external source code and run environments, thus providing live coding capabilities) in grassroots communities and exploring such reciprocal modification. Such research arrived a diffractive genealogy of Convivial Computing, that contrast from the one I have seen from the Global North, where the convivial part is on abstracted users and communities, instead of pretty embodied and concrete ones, as in our case.
My first exploration, Grafoscopio, was made on Pharo and later ported to GToolkit, when the second became available. And now I want to approach that exploration of Convivial Computing, or in other words, the relationship between computing and (inter)personal and community agency with Cardumem.
As with Grafoscopio, with Cardumem I will start with “extended writing”, but this time it will not take the form of a computational notebook and instead will be a minimalist extensible hypermedia wiki engine made in Lua and YueScript, backward compatible with TiddlyWiki data, as we want to bootstrap ourselves from our existing practices there. In that way we can solve TiddlyWiki limitations by creating a tool that complements it and later replaces it (more on that my Community agency and metatools insertion strategies post).
To arrive at end-user programming we need first a tool that is meaningful for us (me and the communities I belong to) in our day to day life. And while I use a computational notebook frequently, I use a wiki engine even more and I have seen people in my communities which use the later (or other PKM tool) but almost never use a computational notebook.
In the context of our minimal wiki engine, we will start with a light markup language and add computational features later, but they will be added with a full computer language with minimal syntax (YueScript).
Code as UI in our case means:
- the UI for hypertext writing (via a light markup, probably some extension of Djot)
- the UI for changing/extending the wiki behavior and appearance (via YueScript + Mustache).
While still the UI is heavily text based, I foresee that some interesting convivial computing practices can be bootstrapped from such minimal metatool.