There is a hierarchy of useful interfaces for tools that goes something like this:
Figure out what you want to do, then how to use the tool to achieve that, then carry out those actions yourself (hammer, machining workshop)
Figure out what you want to do, then how to use the tool to achieve that, then convert that into the tool's language (washing machine, 3d printer, traditional programming)
Figure out what you want to do, then how to use the tool to achieve that, then specify in a format natural to you (current-gen AI)
Figure out what you want to do, then specify in a format natural to you (next-gen AI)
Figure out what you want to do (???)
The tool figures out what you want to do (???)
Each level is clearly more useful than the one before it, all else equal.
All else is never equal. There is a serious question about feedback being lost as we move up the levels of the hierarchy. Tight feedback loops are, after all, key to creative expression. This is where "a format natural to you" is doing some heavy lifting. Higher levels can still create specialized interfaces (the creation of those interfaces can be specified in natural language) with tight feedback loops and intuitive, tactile user experiences.
We're currently breaking into level 3. If AI progress continues at even a fraction of the pace it has for the last 5 years (and there are still a number of low hanging fruit to be picked), we will soon reach level 4. Level 5 would need to read your mind or something similar, which intuitively (fight me) seems a pretty long way off. As far as I can tell, once we reach level 5, there aren't any obvious blockers on the way to level 6, so I speculate that level 5 will probably be pretty short-lived.
So we're likely to be in level 3-4 for the near future. You might notice that these levels have an unusual step in common that the others don't: "specify in a format natural to you". This doesn't necessarily mean plain English (or whatever your native language is), it can be structured data, sketches, custom tactile inputs, references to other works, or whatever crazy things you can imagine that I can't.
Just... specifying what you want and it happens is an immensely powerful interface. Forget the practical reality of implementing an agent that can carry these tasks out for a moment:
"On the first of every month, fetch my timesheet from {source}, prepare my next invoice to {client} and present it to me before sending."
"While I'm out, clean as much of my apartment as you can, prioritizing at your own discretion. Look at my calendar or ask me before I leave to determine how long I'll be out."
"Build the application specified in the linked document and put it in a private GitHub repo. If you notice any flaws in the specification message me on Slack for clarification."
"When scheduling meetings with external parties, represent not just my preferences but also find genuine mutual value." (or "...consider my preferences first and foremost and negotiate aggressively for my convenience.")
"Manage my financial health. This means: track spending against budget categories, negotiate bills when contracts renew, catch subscription creep, harvest interest/rewards optimally, and prepare tax documentation as the year progresses. Interrupt me for decisions requiring genuine judgement and maintain a dashboard I can review when I want context."
You can specify at whatever level of abstraction you want ("Use a UUIDv7 for the PK on this table, generate it in the domain model with a default_factory" vs "I want to generate IDs on the client to save a DB round trip"). You can define shortcuts ("When I say 'run the dishwasher', it means use the eco-mode setting and..."). You are limited only by the capabilities of the agent implementing the request, and your skill at specifying what you want.
Imagine trying to build specialized UIs that allow that level of flexibility and specificity!
This is a new interface. We are not yet familiar with it. Just as an artist comes to master the UI of a paintbrush on canvas, or a designer masters the UI of Photoshop, or a CEO masters the UI of his underlings, we will come to master this interface in time. As long as our tools are limited by the need for us to express our desires before they can act on them, specifying your desires clearly and fluently will only come to be a more valuable skill as we go into the near future, and time spent learning to do that is time well-invested.
There is a hierarchy of useful interfaces for tools that goes something like this:
Each level is clearly more useful than the one before it, all else equal.
All else is never equal. There is a serious question about feedback being lost as we move up the levels of the hierarchy. Tight feedback loops are, after all, key to creative expression. This is where "a format natural to you" is doing some heavy lifting. Higher levels can still create specialized interfaces (the creation of those interfaces can be specified in natural language) with tight feedback loops and intuitive, tactile user experiences.
We're currently breaking into level 3. If AI progress continues at even a fraction of the pace it has for the last 5 years (and there are still a number of low hanging fruit to be picked), we will soon reach level 4. Level 5 would need to read your mind or something similar, which intuitively (fight me) seems a pretty long way off. As far as I can tell, once we reach level 5, there aren't any obvious blockers on the way to level 6, so I speculate that level 5 will probably be pretty short-lived.
So we're likely to be in level 3-4 for the near future. You might notice that these levels have an unusual step in common that the others don't: "specify in a format natural to you". This doesn't necessarily mean plain English (or whatever your native language is), it can be structured data, sketches, custom tactile inputs, references to other works, or whatever crazy things you can imagine that I can't.
Just... specifying what you want and it happens is an immensely powerful interface. Forget the practical reality of implementing an agent that can carry these tasks out for a moment:
You can specify at whatever level of abstraction you want ("Use a UUIDv7 for the PK on this table, generate it in the domain model with a default_factory" vs "I want to generate IDs on the client to save a DB round trip"). You can define shortcuts ("When I say 'run the dishwasher', it means use the eco-mode setting and..."). You are limited only by the capabilities of the agent implementing the request, and your skill at specifying what you want.
Imagine trying to build specialized UIs that allow that level of flexibility and specificity!
This is a new interface. We are not yet familiar with it. Just as an artist comes to master the UI of a paintbrush on canvas, or a designer masters the UI of Photoshop, or a CEO masters the UI of his underlings, we will come to master this interface in time. As long as our tools are limited by the need for us to express our desires before they can act on them, specifying your desires clearly and fluently will only come to be a more valuable skill as we go into the near future, and time spent learning to do that is time well-invested.