Back in 2017, the "Software 2.0" essay sounded grandiose. Today, with LLMs in almost everything, it sounds like a calm prediction. Karpathy was not selling hype. He was naming a shift in material.
Software 1.0 is what you learn in college: you design the logic, write it in Python or C, and the computer executes exactly what was written. A bug is yours, not the compiler's. Software 2.0 is different. You do not write the logic, you bend it: you gather data, define a loss function, and train until the network fits the problem. The result is a pile of weights nobody read, nobody will read, and that still works better than human code across several domains.
Curating the Material of Software 2.0
The analogy that helps is the game board. Software 1.0 is building the board piece by piece, move by move. Software 2.0 is showing whole matches and letting the network learn how to play. You still choose the game, you still set up the starting board, you still judge the result. But the internal rule is born from training, not from explicit reasoning.
In 2026, with LLMs in the middle of almost everything, Karpathy's prediction is no longer a provocation, it is a description. The interesting question is another one: what stays reserved for Software 1.0? Maybe everything that needs to be auditable, reversible, explainable to a judge. Maybe everything with a catastrophic cost of error. Maybe much less than would be comfortable.
For now, I choose not to confuse the two layers. To build product, I embrace 2.0. To build trust, I still need 1.0.



