this is a terribly simple UI, really just a place to drag a file and run a simple data conversion.
and yet -- I wouldn't have bothered to code it manually. only worth it because it literally took 10 seconds to code both the data conversion and the GUI
It’s also neat that I now have this GUI tool and can quickly reach for it whenever I need.
I think ChatGPT w/ plugins could have produced a similar UX for a single conversion, but wouldn’t have left me with a solid reusable tool
Also, interestingly I haven’t even bothered to read the code.
Just checked a couple example outputs which was enough to give me confidence that it does the right thing
Just a tiny, real, useful example of a pattern I’m excited about: personal AI-generated software tools
In the physical world, you can adapt your creative environments, in small and big ways. You can organize your kitchen, mix and match knives and pots and pans, drill some hooks into the ceiling.
You can just naturally tweak things as needs arise!
2/
Unfortunately, software is usually missing this adaptability. Companies build apps that you can't change.
Maybe you can tweak settings or even install plugins, but many changes are off limits...
3/
Siri: responds immediately with a written sentence that I can read in the blink of an eye. Efficient.
ChatGPT: takes a while, slowly speaks out loud the answer
Takeaway for me: if I’m engaged with the task and can look at a screen, voice input + visual output is a nice efficient combo. Voice input is faster than typing but don’t necessarily need voice *output*
This demo — “trim a video directly in ChatGPT” — offers a perfect example to reflect on pros/cons/nuances of chatbot as user interface. A few thoughts: 1/
To start, chat is obviously a silly UI for this task. My iPhone can trim videos and I can interactively scrub to pick a good time interval. Fast, precise, direct manipulation tools are nice.
That being said, I am not a total chatbot hater!
2/
The point of chat is that it’s not limited to trimming, it can do any edit I want!
Earlier today (coincidentally) I used GPT-4 to write one-off Python for video processing.
Was really neat to just say “add this overlay, slow down by 8x” without needing to learn a GUI
3/
What if -- despite all the hype -- we are in fact underestimating the effect LLMs will have on the nature of software distribution and end-user programming? some early, v tentative thoughts: 1/
it seems likely to me that all computer users will soon have ability to 1) develop small software tools from scratch, 2) describe *changes* they'd like made to existing software they're already using. what will this mean for software ecosystems?? 2/
you, skeptic: "nooo but the LLM-generated software will be lower-quality than handcoded software by pro teams: filled with bugs, uglier, bad... 😡 "
Yeah totally true... also all qualities which also apply to spreadsheets vs "real apps"! 3/
We already talk a lot about "liveness" (fast visible feedback) in programming, but this paper argues there's another quality we want: *domain-specific* UIs for editing programs.
They call this quality "richness".
I've already found this to be a useful lens to apply in my work. Often a programming system that "seems vaguely cool" is only live or only rich, and if you have the vocabulary, you can be more attuned to possibilities of going further along one axis...