Programming Evolution Report

编程进化史

从手工编程 → Tab 编程 → Vibe 编程 → 工程编程 → Harness 编程。
这不是工具升级史,而是软件生产控制权从“写代码”迁移到“定义约束、组织执行、设计验收”的演化史。

一、总览:五个阶段不是替代关系,而是控制权重心迁移

阶段 核心动作 人的主要角色 机器的主要角色 稀缺能力
手工编程 逐行写 编码器 执行器 语法、数据结构、底层理解
Tab 编程 补全 + 拼装 驾驶员 辅助生成 API 记忆、模式识别、速度
Vibe 编程 用意图驱动生成 提示者 / 审稿人 大段实现 需求表达、快速判断、审美
工程编程 系统化交付 架构师 / 协作者 局部自动化 分层、治理、测试、协同
Harness 编程 编排任务流 + 验收闭环 系统导演 / 约束设计者 多步骤执行体 工作流设计、评测、监控、反馈回路
程序员的稀缺性,正在从 “写代码” 迁移到 “约束系统、组织上下文、定义验收”

二、第一阶段:手工编程

确定性
细节控制
高心智负荷

手工编程是软件工业的原始形态:人脑构思、人手编码、人工调试、人工维护。代码与意图几乎直接重合,程序员像工匠,系统像手工制品。

核心特征

  • 控制力极强,但速度慢。
  • 单点优化强,但全局一致性差。
  • 知识壁垒依赖记忆、经验和底层模型。

本质价值

手工编程定义了软件世界的“物理学”。所有后续自动化都建立在它之上,因为必须先知道“正确代码长什么样”,自动化才有参照物。

三、第二阶段:Tab 编程

IDE 补全
模板复用
局部自动化

Tab 编程并非 AI 才出现。从 IDE 自动补全、片段模板到 Copilot 式候选,它的本质是:你仍然在写代码,但不再从零开始写。

关键变化

程序员从“逐字符生产者”变成“候选实现选择者”。机器接管可预测部分:样板代码、常见 API、CRUD 骨架、惯例式实现。

深层洞察

Tab 编程最重要的贡献,不是省击键,而是暴露一个事实:大量开发时间消耗在“把已知模式重新敲一遍”,而不是新思考。

局限

它优化的是编码层效率,不是软件生产系统效率。人依然是主控,机器只是加速器。

四、第三阶段:Vibe 编程

意图先行
结果导向
代码退居二线

Vibe 编程的断裂点在于:代码第一次从主要交互对象,变成中间产物。人通过目标、感觉、风格、示例、约束与偏好驱动生成,而非主要通过语法驱动实现。

典型表达

  • “帮我搭一个像 Notion 风格的后台”
  • “把这个流程改得更顺一点”
  • “先做个能跑的 MVP”

它真正擅长什么

Vibe 编程极强地提升了探索速度,适合原型、UI、脚本、demo、低风险业务逻辑。

核心缺陷

  • 看起来对,实际可能错。
  • 局部顺,整体乱。
  • demo 快,维护差。
  • 适合发明,不适合治理。
Vibe 编程提升的是 探索速度,不是 交付确定性

五、第四阶段:工程编程

可维护
可协作
可演进
可交付

工程编程不是更酷的新范式,而是对前面几代“只要能跑就行”的浪漫纠偏。系统一旦进入真实世界,就要面对协作、发布、安全、兼容、监控、合规与长期维护。

核心任务

不是写出功能,而是控制复杂度。

分层与边界

明确模块、接口、责任归属。

规范与约束

降低个体自由度,提升团队一致性。

测试与验证

用自动化减少回归风险。

CI/CD 与发布

把交付从手工动作变成流水线。

可观测性

不是等系统坏了再猜,而是持续看见状态。

文档与协作机制

让系统能被接手,而不是绑定个人。

AI 压低了构造成本,反而抬高了治理价值。生成越便宜,烂代码越多,工程堤坝越值钱。

六、第五阶段:Harness 编程

任务编排
执行闭环
评测驱动
机器劳动力管理

Harness 编程不是“让 AI 帮你写代码”,而是把编程从代码生产升级为任务系统编排。它把模型、工具、上下文、步骤、测试、回滚与验收标准,捆绑成可重复执行的框架。

它与 Vibe 编程的区别

维度 Vibe 编程 Harness 编程
交互方式 一句意图驱动一段生成 定义框架,系统按步骤执行
流程形态 偏单轮、短流程 偏多步骤、长流程
目标 把东西变出来 把事情稳定做成
关键风险 表面可用,内部脆弱 错误自动化、幻觉被流程放大

一个完整 harness 的组成

  • 任务目标
  • 环境上下文
  • 工具权限
  • 执行步骤
  • 中间检查点
  • 自动测试
  • 失败恢复
  • 结果评估
  • 日志与追踪
  • 可重复运行机制
Harness 编程的本质,是在管理 机器劳动力,而不只是管理代码。

七、五代演化背后的真正主轴

从“实现”到“选择”

手工编程自己实现;Tab 从候选中选择;Vibe 从生成结果中裁判;工程从系统方案中权衡;Harness 从执行框架中设定约束。

从“产出代码”到“产出可靠结果”

竞争从“写得出来”,转向“稳定交付正确结果”。

从“个人能力”到“系统能力”

英雄程序员的相对价值下降,系统设计者价值上升。

从“智力密集”到“约束密集”

难点从“我不会写”,迁移到“我怎么约束它别乱写”。

八、每一代淘汰了什么,又保留了什么

阶段 没有被替代的价值 被压缩或转移的价值
手工编程 底层系统、性能优化、安全关键路径 重复性手写实现
Tab 编程 日常默认能力层 机械敲代码的时间价值
Vibe 编程 原型、探索、创意表达 低门槛原型开发的专业壁垒
工程编程 复杂系统治理、协作交付 “能跑就行”的开发幻觉
Harness 编程 人机协作闭环、自动化生产系统 单轮生成式开发的中心地位

九、真正的分水岭:代码正在失去唯一中心地位

过去默认公式是:软件 = 代码

现在更接近现实的公式是:软件 = 代码 + 上下文 + 工具链 + 测试 + 运行约束 + 反馈系统

在 Harness 编程时代,还要继续改写为:软件 = 可执行工作流

这带来三个变化

  • Repo 不再是唯一生产单元。 workflow、eval、prompt、tool map、execution log 都会成为核心资产。
  • PR 不再是唯一变更单元。 变更可能是策略、步骤、权限、验收条件的变更。
  • 资深工程师的价值被重估。 会写复杂代码重要,但更重要的是能构造 agent 能稳定工作的环境。

十、五代编程对应的组织形态

阶段 组织形态 决策模式 典型失败模式
手工编程 工匠作坊 个人主导 依赖个人,不可扩展
Tab 编程 高速装配车间 个人加速 快速复制坏模式
Vibe 编程 创意实验室 快速试错 表面可用,内部脆弱
工程编程 现代工厂 流程治理 官僚化、过度设计
Harness 编程 自动化指挥中心 约束 + 反馈驱动 幻觉放大、错误自动化

十一、最大的误判

误判一:把 Vibe 当终局

Vibe 只是打通“需求表达到代码生成”的链路,没有解决稳定性、回归、验收、复用与治理问题。它更像前期突破口,不是终局操作系统。

误判二:把 Harness 当插件

Harness 不是给 AI 套个壳。它是在重新定义开发:不是直接写实现,而是构造一个能持续产出正确实现的系统。

十二、未来三年的关键趋势判断

1. 初级编码能力继续贬值

CRUD、API 调用、常规页面搭建会越来越像基础识字能力。

2. 中层工程能力两极分化

一部分人被 AI 放大;另一部分只会“改文件”的人会失去价值。

3. 顶层价值向三类人集中

问题建模者、系统约束者、验收设计者。

十三、对个人程序员的残酷结论

如果一个程序员的核心身份仍然是“把需求翻译成代码的人”,护城河会持续变薄。

未来更强的身份是:

  • 把目标翻译成执行系统
  • 把模糊需求压缩成可验证任务
  • 让人机协作形成闭环
  • 构造可重复交付的生产机制

程序员正在从写作者转向编排者。

十四、最终结论