<AI: First New UI Paradigm in 60 Years> Summary: ...
# linking-together
m
AI: First New UI Paradigm in 60 Years Summary: AI is introducing the third user-interface paradigm in computing history, shifting to a new interaction mechanism where users tell the computer what they want, not how to do it — thus reversing the locus of control.
g
There is something to be said here around the difference between expressing "intent" and acting with "intent". I heard recently with respect to craft (not software specifically, but craft in general): "Craft is not just the intent but also the hand of the maker and the process, trial, and error all coming together to make something careful and intentional." Is the intention here shared between programmer and AI? Can we consider the AI to hold intent? Or are we moving into a world where some of that intention is lost?
g
FTR: I think that the phrase “..tell the computer what they want, not how to do it...” does not capture the difference between software-GUIs and AI-based interaction. https://publish.obsidian.md/programmingsimplicity/2023-07-11-First+New+UI+Paradigm+In+60+Years%3F
r
i appreciate this perspective, though i’ve found that most people are pretty bad at clearly articulating their intent - which is a huge driver of what i’m working on with Cheshire. if you’ve ever gotten requirements or a PRD to start implementing against, you’ll probably have come across all sorts of ambiguous cases and terms, missing logic, implicit assumptions, etc. pushing that sort of “intent” to generative ML systems is sort of like playing with the monkey’s paw - it might give you what you asked for, but not what you intended. i’m hoping to provide a useful affordance in between - an intermediate representation of user intent as human readable symbolic logic - so that people can iterate and clarify and understand their own framing of intent before trying to get AI to generate something from it.
for the case of generating code via ML from that intermediate representation, i’m also planning on going from the logical form to SAT/SMT-friendly representation, so that various blocks of logic can be tested against the corresponding code. it seems super important to help people test and validate that the code generated actually meets human intent, especially if the human in question is not fluent in the language being used for the generated code.