念
Software 3.0
Software 3.0 — LLM 不再是固定功能神经网络,而是可编程的通用计算机
Karpathy 的三代软件分类法。关键转变:1.0 人写代码 → 2.0 数据+优化器写权重 → 3.0 自然语言 prompt 是程序,LLM 是处理器。每个人都成为程序员——5-10 年专业训练不再是门槛。
三代软件范式
Software 1.0人类编写代码传统计算机执行
Software 2.0数据 + 优化器 → 神经网络权重固定功能网络推理
Software 3.0自然语言 Prompt可编程 LLM 执行
核心含义 吞噬效应 2.0 逐渐吃掉 1.0(Tesla Autopilot C++ → 神经网络);3.0 正在吃掉 1.0/2.0 Context Engineering 如果 Prompt 是程序,Context Engineering 就是 Software 3.0 的软件工程 ACI 是接口层 Software 3.0 程序(prompt)与外部世界的标准化接口 Vibe Coding 每人都是程序员——描述意图即可,无需精通语法
→ LLM OS · Context Engineering · Agentic SystemsKarpathy (2025) YC Talk
Software 3.0
定义
Andrej Karpathy 提出的软件代际分类法中的第三代。三代软件的编程范式截然不同:
| 代际 | 编程介质 | 目标 |
|---|---|---|
| Software 1.0 | 人类编写的代码 | 传统计算机 |
| Software 2.0 | 神经网络权重(通过数据+优化器生成) | 固定功能神经网络 |
| Software 3.0 | 自然语言 prompt | 可编程 LLM |
Software 2.0 的关键转变是从”人写指令”变为”人准备数据,优化器写指令(权重)“。Software 3.0 的关键转变是神经网络从固定功能变为可编程——LLM 不再只是一个图像分类器,而是一台通用计算机,prompt 就是它的程序。
与 Software 2.0 的”吞噬”效应
Karpathy 在 Tesla Autopilot 中观察到 Software 2.0 逐渐”吃掉” Software 1.0:神经网络接管了原本用 C++ 编写的多摄像头拼接等功能,大量 1.0 代码被删除。
同样的吞噬正在 3.0 对 1.0/2.0 发生——GitHub 代码库中出现大量自然语言和代码交织的内容。三种范式共存,开发者需要判断每个功能适合用哪种范式实现。
与编程语言的关系
Software 3.0 的”编程语言”是英语(或任意自然语言)。这带来一个前所未有的后果:每个人都成为程序员。过去需要 5-10 年专业训练才能编写的软件,现在可以通过自然语言描述来实现(参见 vibe coding)。
与 wiki 其他概念的关系
- LLM OS — Software 3.0 的运行平台就是 LLM OS,prompt 是程序,LLM 是处理器
- Agentic Systems — agent 系统是 Software 3.0 应用的主要形态
- Context Engineering — 如果 prompt 是程序,context engineering 就是 Software 3.0 的软件工程
- ACI — Software 3.0 程序(prompt)与外部世界的接口
References
sources/karpathy-software-is-changing-again.md— Karpathy 2025 YC 演讲,首次提出 Software 3.0 命名