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
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...
1/ "Build an app with a spreadsheet" is a mainstream idea now (Airtable, Glide, Coda, Notion, etc) but I believe there's still so much room to push this model further.
Quick list of some (lesser-known??) projects that I find thought-provoking in this space:
2/ We've seen "project tracker" and "inventory list" a bunch, but what's the ceiling on building complex software w/ spreadsheets?
Here's Alan Kay speculating in 1984 (!) about how you could use a spreadsheet and a drawing app to build a word processor
3/ The details of his explanation get intricate and I'm not sure if they'd work, but I like his motivation. The idea isn't that everyone will build their own word processor. It's that when they "open the hood" of their existing tools, they have a chance of understanding/tweaking