The LLM programming language.

The Large Language Model based AI systems are continuously in the news taking everyone's jobs from every aspects of life. The hype on AI is insane right now and the speed all these LLM models are developing is accelerating. The problem for me as a developer isn't that it's taking my job writing Javascript and JS frameworks. My problem is that writing Javascript isn't ambitious enough.

Programming languages are made for humans to interact with machines. It doesn't make sense that we are making a machine write a language made for us just to make it be compiled or interpreted by machines again. Millions of programmers have spent decades to build all the different abstraction layers that we have now so that we can build more complex and beautiful applications in the productivity rate we have now. And the requirements for software are only going to increase.

Because of this becoming a programmer can be overwhelming these days and people are more and more specialized into certain things only. That also makes us think we need LLM helping us writing code. The LLM should be the programming language.

The layers

Nowadays most of our apps are built with web technologies. They are either websites working on the browser itself, or the app package includes a browser core to render the app (Electron) or the app relies on the native web view provided by the operating system (Ionic, React native, Tauri). Underlying layers go something like this: machine code, Assembly, C or C++ (browser engines), DOM and Javascript and all the thousands JS packages that modern frameworks are built on.

Ideally we would like more leaner systems and there's definitely a lot of bloat too. The browsers are still backwards compatible to some 20-30 years old features that are even deprecated in the HTML, CSS and JS specs (see <marquee>). There are also a lot of building blocks we don't want to get rid of. We also want to keep the cross-platform nature browsers give us.

So before we can go from LLM to machine code, we should experiment with LLM to Web Assembly. If we were to write a WASM program now, we'd need to include some other rendering method to it and stream it through the <canvas> tag and javascript. That might make the download size too big for anyone to actually open the app. But if we had a direct API for example the DOM model for the WASM environment, we could utilize something powerful we already have with browsers.

The language

We don't want the AI to build everything from rendering, HTTP requests, connecting devices, file system, geolocation, etc. everytime we build something. Again, that would grow the download size of each program. It should have some building blocks to build on. Unless all operating systems agree on these building blocks, we should have better support for the browser APIs we already have for WASM programs.

Vue Vapor mode and Svelte are great examples how the programs should be precompiled to the only operations that are needed for execution.

The main characteristics of the LLM programming language:

  1. Natural language should compile into machine code or Assembly
  2. The compiled code should be reverse-engineered into the same exact prompt it was created so that we can make changes to the program

Natural language lowers the barrier on becoming a software engineer but it also lacks the structure of a programming language. This emphasizes the need to understand how computers work and the importance of systematic thinking.

Coding challenge sites like CodeWars and LeetCode provide a wide range of different solutions people came up with for the same problems even when the language itself is giving some guarding rails. Modern LLMs we have now are not immune to this either; every prompt might result to a different outcome. Enforcing standards with natural language would be even harder than it is now.

The interface therefore could not be a single textbox or a bunch of text files in a folder, it should be something more intelligent.

Maybe the machines end up prompting us.

Have something to say on this topic? Here's my Bluesky: @opiispanen