End-User Programming Self-Hosted Systems are in Tension with Direct Manipulation

Easy to use software, such as "Direct Manipulation" systems actually make the user-programmer gap worse since more people will be able to use the software (since it is easy to use), but the internal program code is now much more complicated (due to the extra code to handle the user interface).

— Taxonomies of Visual Programming and Program Visualization

  • direct manipulation usually involves a lot of complex code - usually in forms of two-directional bindings, translating between different data representations, etc. - this makes End-User Programming in a self-hosted system much harder - even if the user can "pop up the hood", the machinery inside will be very complex
  • I'm curious if one solution would be that combination of End-User Programming and self-hosted system doesn't point at indirect manipulation - if the user can "speak" closer to the "machine", to the internal language in which the software is made, then maybe sacrificing direct manipulation for easier moldability makes sense?
  • of course ideal solution would be if the direct manipulation was so easy to implement that end-users could do that for their own usecases, but so far UI programming remains one of the hardest parts of computering
    • one compelling direction is the space of bi-directional evaluation, where the mapping between a domain object and its representation could (magically) work in two directions
  • I can feel a connection with WYSIWYG is a Form of Naive Realism, though not sure exactly what it is yet!