Articles
Updated
icon

AI and the evolution of software

Some believe AI heralds the end of software: "Software is expensive because developers are expensive. They are skilled translators–they translate human language into computer language and vice-versa. LLMs have proven themselves to be remarkably efficient at this and will drive the cost of creating software to zero". This is either good or bad for incumbents, and probably decreases the value of much of the software we use today.

There's certainly something to this prediction. But calling the “end of software” is a bit extreme. A more measured take might go like this: language model-driven programming is the continuation of a long tradition of automation and abstraction.

An old adage in software engineering goes: "We can solve any problem in by introducing an extra level of indirection." AI introduces a new kind of indirection – we can now describe programs in human language.

This is an exciting development, but it continues a long tradition of simplifying software creation. JSON triumphed over XML due to its superior human legibility. Python has become the most popular programming language due in large part to how closely it resembles human language. The automation of programming tasks is a tradition as old as the Unix philosophy:

  1. Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
  2. Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.

We've been abstracting the process of programming since the earliest days of writing programs. In the beginning, programs ran sequentially, on a single computer shared by multiple people. System abstractions improved, and soon programmers could easily combine multiple processes to accomplish a larger task on a single machine. Tools for building software evolved, and soon we were coordinating many programs across multiple machines. Metaprogramming emerged as a powerful technique, allowing programs to create and transform other programs. Some of the more futuristic ideas in programming today – like the Unison language – resemble navigating an infinite library of possible programs. There's an interesting convergence here: treating programs as data resembles what happens when we prompt language models.

Steve Jobs called the computer a “bicycle for the mind”. Software creation turns your computer into a much more capable vehicle. I can’t wait to see the latent potential of civilization unlocked by general access to this vehicle.


References

Chris Paik, The End of Software

(Jun 2024) https://x.com/cpaik/status/1796633683908005988

Software is expensive because developers are expensive. They are skilled translators–they translate human language into computer language and vice-versa. LLMs have proven themselves to be remarkably efficient at this and will drive the cost of creating software to zero. What happens when software no longer has to make money? We will experience a Cambrian explosion of software, the same way we did with content.

Software companies will be replaced the same way media companies were, giving rise to a new set of platforms that control distribution.

SaaS, ARR, magic numbers–these are all shorthand to understand the old model of business building in software, one where the expense associated with creating software was a moat. The invisible hand has been stayed in software for a long time, but LLMs will usher in its swift, familiar corrective force. Majoring in computer science today will be like majoring in journalism in the late 90’s.

Andrej Karpathy, LLM OS

(Sep 2023) https://x.com/karpathy/status/1707437820045062561

TLDR looking at LLMs as chatbots is the same as looking at early computers as calculators. We're seeing an emergence of a whole new computing paradigm, and it is very early.

We're building in public and writing about it.

Subscribe for updates in your inbox.

On this page