I've been working on <https://www.scattered-though...
# devlog-together
I've been working on https://www.scattered-thoughts.net/writing/the-program-is-the-database-is-the-interface. The demo uses clojurescript at the moment, but I'm currently working on replacing it with a (poorly implemented) language where every value in a
remembers where it came from and can be directly edited. This will mean that eg in the todo example, the text will be directly editable wherever it appears rather than having to add an explicit set-text action.
This combination of code and data as an editable unit reminds me of Leo. If you haven't seen it yet, it might provide some inspiration.
Every value can now carry metadata. For values created by data literals at the top level, the metadata includes their 'origin' - the path from the top-level to that value. https://github.com/jamii/preimp/blob/078d30f9a290ae13b4a273eb3644218fd9e0e17a/test/end_to_end.test#L347-L393 The
(put! old new)
function returns an 'action' which, if executed, will replace the origin path of
with the value
. https://github.com/jamii/preimp/blob/078d30f9a290ae13b4a273eb3644218fd9e0e17a/test/end_to_end.test#L494-L543 So now I need to compile this all to wasm and hook it up to some ui which renders data structures and functions like the old demo, and renders actions as buttons.
I finished the wasm bindings but then had css ptsd and made the gui in dear imgui instead. Demoing some basic bidirectional editing - make a list, pick the first element, change the status, delete that element. I don't have enough of a standard library in the language to do any more interesting examples yet.
@William HS Angell