AI Killed the GUI
The computing industry has gone through several user interface revolutions. 50 years ago our only options were highly structured and formal programming languages, allowing the computer to execute code. Using a programming language was extremely complex, so only 0.3% of the world's population were able to "communicate with the computer."
Later we simplified it by giving the user "options" and asked the user to provide data, which our programs would interpret and transform into programming language instructions.
The 3rd iteration was the graphical user interface (GUI), which was invented by Xerox Parc in Palo Alto in the 1970s. At the time, the GUI was a revolution, and significantly simplified the way we interacted with computers, and made computers much more available. Today having a computer is taken for granted for most of the people in the world, partically because of the simplifications that the GUI gave us.
Talking with The Machine
If you think about the above revolutions, you will rapidly realise that all of these iterations are simply failed attempts at mimicking natural language. SQL for instance was created to "be as close to natural language as possible". Below is an example to illustrate.
select name, email from employees where salary > 10000
The problem with these formal languages was that they had to be structured and formalised to an extent where simply adding a single comma to the above code, would completely destroy the computer's ability to understand the instruction. If you've got an LLM, the LLM can interpret your intentions, and transform it to working code, allowing you to give it instructions such as.
I want to see the name and emails of all employees having more than 10000 in salary
And the LLM will transform your natural language into the above SQL automatically. Or, even better, you can have a function such as the following that the LLM consumes.
// Updates a record of type album
.arguments
// ID of album to update.
AlbumId:int
// Optional new title for your album.
Title:string
// Optional new artist ID the album is associated with.
ArtistId:int
validators.mandatory:x:@.arguments/*/AlbumId
data.connect:chinook
add:x:@data.connect/*/data.update/*/values
get-nodes:x:@.arguments/*/[1,5]
data.update
table:Album
values
where
and
AlbumId.eq:x:@.arguments/*/AlbumId
response.status.set:201
return
result:success
The above is a function that updates albums with a new title, and/or associates the album with another artist. If you teach the LLM how to execute the above function, it can easily parametrise your function invocation for you, such that you can instruct the LLM using something equivalent to the following.
Update Back in Black and make sure it was released by AC/DC
The above could result in the following sequence of events.
- The LLM searches through your database for the artist AC/DC
- The LLM searches through your albums for an album named "Back in Black"
- The LLM updates the album's artist ID to the ID of AC/DC
Assuming you've got the functions required to search for artists and albums, and the LLM knows how to execute these functions. This isn't some future pipe dream either, this is stuff we're doing in AINIRO on a daily basis - Something you can see from the following screenshot.
This allows you to "talk to your applications" the same way you're talking to your colleagues. Watch the video below for a deep dive into the implications of this revolution.
Conclusion
The GUI won't completely go away. Even though we've had the GUI for 40 years, some of us are still using a terminal. But the GUI is simply an inferior way to deliver apps, and natural language interfaces are destined to overthrow the GUI for most tasks.
Not all apps can be translated into an AI chatbot, but those that can will be significantly easier to understand and interact with. And as we're updating our apps to use natural language, the computer will become available to a lot more people, and using a computer will be significantly simplified.