Summary
All computer users may soon have the ability to author small bits of code. What structural changes does this imply for the production and distribution of software? It’s been a wild few weeks for large language models. OpenAI released GPT-4, which shows impressive gains on a variety of capabilities including coding.
In this series of posts, I’ll explore the potential changes LLMs might enable in the creation and distribution of software. I‘ll start with a basic question: how will user interaction models evolve in the LLM era. Then I”ll discuss hybrid interaction models where LLMs help us construct UIs. And at the end, we’ve arrived at a point in the design space I find intriguing: open-ended computational media, directly learnable and moldable by users.
Programming bottlenecks are less of a limiting factor with LLMs. Turning a natural language specification into web scraping code or a little spreadsheet formula is exactly the kind of code synthesis that current LLMs can already achieve. We can imagine specific, targeted roles for LLMs that help empower users to build software.
In general, GPT-4 feels like a junior developer who is very fast at typing and knows a lot of libraries, but is careless and easily confused. It’s not hard to find impressive examples. In my experience, G PT-4 gets confused when solving relatively simple algorithms problems.
Chat is an essentially limited interaction mode, regardless of the quality of the bot. Chat will never feel like driving a car, no matter how good the bot is. When we use a good tool, we become one with the tool in a subconscious way. We can enter a flow state, apply muscle memory, achieve fine control.
If you want to get some metrics about your business, maybe a sales forecast, how do you do it? One approach is to ask your skilled team of business analysts. Another is to use a self-serve analytics platform where you can click around in some dashboards. When this works, it’s way faster and cheaper than bothering the analysts.
In a spreadsheet, you can edit numbers in the spreadsheet, but you can also edit formulas, which edits the tool. A spreadsheet isn’t just an “app” focused on a specific task; it’s closer to a general computational medium. Most teams have a mix of domain experts and technical experts, who work together to put together a spreadsheet.
Buzz adds small, more advanced pieces of code to Betty’s original work. Non-programmers can be responsible for most of the work of a spreadsheet. This is an important shift in the role of the ‘local developers’ who provide another outer layer of iteration.
LLMs seem to offer a promising way to more flexibly turn natural language into code. What kinds of powerful computational media might be a good fit for this new situation? Demos of on-the-fly UI Update 3/31: I found a few neat demos on Twitter from people exploring ideas in this space.