Software 3.0: The Programmable Age of LLMs

2025-06-19
ℹ️Note on the source

This blog post was automatically generated (and translated). It is based on the following original, which I selected for publication on this blog:
Andrej Karpathy’s YC AI SUS talk.

Software 3.0: The Programmable Age of LLMs

Software is undergoing a fundamental shift, marking only the third significant change in its nature in the last 70 years. This evolution calls for a re-evaluation of how we approach software development and application.

From Software 1.0 to 3.0

Traditionally, Software 1.0 was the code written to instruct computers. Then came Software 2.0, characterized by neural networks whose weights, instead of explicit code, define the program. Now, we are entering the era of Software 3.0: neural networks programmable with large libraries, fundamentally changing how we interact with and instruct machines.

Hugging Face serves as a sort of GitHub for Software 2.0, offering a model atlas for visualizing and sharing trained models. This new paradigm allows programs to be written in a more natural language, blurring the lines between code and human instruction.

LLMs as Operating Systems

LLMs are not merely utilities, but potentially new operating systems. They require substantial capital investment (CAPs) to build, centralizing resources in LLM labs. This ecosystem is shaping similarly to traditional operating systems, with both closed-source providers and open-source alternatives emerging.

  • The LLM acts as a CPU.
  • The context window functions as memory.
  • The LLM orchestrates memory and compute for problem-solving.

Currently, LLM compute is expensive, leading to time-sharing and centralized cloud solutions. However, the personal computing revolution may be on the horizon, with potential for local LLM implementations. Interacting with an LLM directly feels akin to using a terminal to control an operating system.

What sets LLMs apart is their democratization of technology. Unlike previous technological advancements initially reserved for governments and corporations, LLMs are accessible to everyone. This widespread availability empowers individuals to program these computers in unprecedented ways.

The Psychology of LLMs

LLMs can be seen as stochastic simulations possessing deep knowledge and memory. They exhibit human-like emergent psychology. While they possess superpowers, they also have cognitive deficits, such as hallucination and inconsistent intelligence. These models also suffer from internal brain amnesia, lacking the ability to consolidate knowledge over time natively.

Security-related limitations must be carefully considered when utilizing LLMs. Vulnerabilities to prompt-injection risks and the potential for data leakage necessitate cautious implementation.

How do we enhance LLMs? Programming them is a usability exercise. The aim is working around deficits while toying with superhuman powers. And is programming them even possible, considering the existing limitations?

Practical Applications and Partial Autonomy

LLM-powered applications (LLM apps) should focus on:

  • Effective context management.
  • Orchestration of multiple LLM calls.
  • Application-specific GUIs for streamlined auditing.

Many software applications will likely evolve to incorporate partial autonomy. The ability to see and act in ways similar to humans, while remaining under human supervision, is crucial for leveraging the power of LLMs.

It is essential to balance AI assistance with human oversight, avoiding overactive engines that generate excessive outputs. Techniques for keeping AI on a leash involve comprehensive prompt engineering to ensure successful verification and targeted results.

Building for Agents

A new category of digital information consumers and manipulators is emerging: agents. As human-like entities on the internet, they require specific software infrastructure. Domains may benefit from implementing an LLMs.txt file, similar to robots.txt, to guide LLMs on interacting with their content.

Adapting documentation to be LLM-friendly, using Markdown and providing clear instructions, unlocks a wealth of possibilities. Tools that facilitate the ingestion of data in LLM-friendly formats, such as GitHub Ingest, further enhance accessibility.

The Future of Software

The industry stands at the beginning of an era of unprecedented opportunity. Rewriting code for both professionals and laypersons is a necessity. LLMs, functioning as utilities and operating systems, offer tremendous scope. Like the shift in early operating systems from the 1960's, these fallible, people-like spirits must be handled with care. Practical and effective approaches to working with LLMs need to be developed alongside infrastructure updates.

Drawing an analogy to the Iron Man suit, the future will likely see a shift from simple augmentations to more autonomous agents. The degree of autonomy will be a sliding scale, gradually increasing as the technology matures.

The democratization of programming through natural language interfaces marks a significant turning point. As everyone can now participate, what will be the possibilities?

Conclusion

The integration of LLMs into software development is not just an incremental improvement, but a paradigm shift. By understanding their capabilities, limitations, and potential applications, developers can harness the power of this new technology to create innovative and impactful solutions. The next decade promises to be a dynamic period of experimentation and discovery, as we collectively navigate the evolving landscape of Software 3.0.


Comments are closed.