AI Killed the GUI

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.

  1. The LLM searches through your database for the artist AC/DC
  2. The LLM searches through your albums for an album named "Back in Black"
  3. 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.

Updating an employee through the LLM

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.

Thomas Hansen

Thomas Hansen I am the CEO and Founder of AINIRO.IO, Ltd. I am a software developer with more than 25 years of experience. I write about Machine Learning, AI, and how to help organizations adopt said technologies. You can follow me on LinkedIn if you want to read more of what I write.

Published 2. Oct 2024

Stop Coding! Code is Debt!

Code is not an asset, it's debt! Sometimes code is a necessary liability to deliver working products, but code is never an asset.

Read More

Stop using Git for Everything

Git is a marvelous tool, but it also adds overhead to your projects. This overhead is rarely justified for smaller applications. The solution is to get rid of it.

Read More

Unit Testing is Mostly Useless

Unit testing indeterministic code is useless 98% of the time, because what you're testing isn't your code, but either your mock objects or your current database state.

Read More