[控场AI]
· 5 分钟阅读· 2,825 字

从打孔卡到AI软件工厂:编程范式正在被重写

从打孔卡到AI软件工厂:编程范式正在被重写

编程正从人写代码转向人建造能生产代码的软件工厂,抽象层再度上移。

文章回顾了编程史的抽象层上移过程:从打孔卡、汇编、高级语言到今天的自然语言提示词,人类始终在用更高层的表达封装底层复杂性。文章指出,AI 写代码只是中间阶段,真正的转变是顶尖工程师开始建造「软件工厂」——通过定义目标、约束和验证器,让系统自行生产并迭代代码,即 self-improving software。工程上,这类系统支持全谱系模型与自带模型,并用模型路由在效果与成本间取得平衡。由此,程序员的核心能力从语法熟练度转向意图表达、验证器调试和系统设计。尽管带有产品推广色彩,但方向与编程史一致。

编程这件事,正在经历一次根本性的身份转换——从"人写代码"到"人建造能写代码的系统"。

一段来自 YouTube 的视频用极简的叙事回顾了这段历史:最早的编程意味着在纸卡上打孔,每张卡片承载一条指令,送入计算机执行。一个孔打错位置,整个程序就崩了。而历史上第一个真正意义上的"计算机 bug",是一只货真价实的飞虫。如今,人类可读的代码已经和那个年代相去甚远,而 AI 开始替我们写代码——我们只需要给出提示词。

但故事并没有停在"AI 写代码"这一站。

编程简史:从物理孔洞到自然语言

打孔卡时代的编程是物理性的。程序员手里拿的不是键盘,而是打孔器;调试不是看报错日志,而是对着光检查卡片上的孔位是否对齐。据视频描述,那个时代一次失误就足以让整段程序失效——所谓"容错"根本不存在。

从打孔卡到汇编、从汇编到高级语言、从高级语言到框架和库,每一次跃迁都在做同一件事:把底层复杂性封装起来,让人类在更高的抽象层上表达意图。今天所谓"人类可读的代码",本身就是上一轮抽象的产物。

而现在,抽象层再一次上移。自然语言提示词正在成为新的"源代码"。

The human readable code that we have today is a far cry from what we had in the old days.

打孔卡(Punch Card) 是早期计算机的主要输入介质。操作者在硬纸卡上按固定列位打孔,有孔代表 1、无孔代表 0,一张卡片通常承载一行指令或一条数据。程序按卡片顺序依次读入,因此卡片的物理顺序就是程序的执行顺序。打完的卡片通常装成一叠送入读卡机,任何一张卡片丢失、折角或孔位偏移,都可能导致整个程序无法运行。所谓「历史上第一个计算机 bug 是一只飞虫」的典故,就发生在 1947 年哈佛 Mark II 计算机的继电器故障中,操作者将那只飞蛾贴入日志并写下「第一个发现 bug 的实际案例」,这个词从此沿用至今。

AI写代码只是中间站,不是终点

视频中有一句话值得反复琢磨:"You no longer write code directly, even with AI." 意思不是"你不该用 AI 写代码",而是说——即使借助 AI,直接写代码这件事本身也已经不是最优解了。

这背后的逻辑是:当 AI 能生成代码时,瓶颈就从"写"转移到了"定义正确性"。你让 AI 写一个函数很容易,但让 AI 写出的函数在复杂系统中持续正确、可维护、可验证,难度反而上升了。逐行生成代码的方式,本质上是在用旧范式的手工思维来使用新工具。

You no longer write code directly, even with AI.

验证器(Verifier) 在软件工厂语境中不是传统意义上的单元测试,而是一套能够自动判断产出的产物是否满足预期的机制。它可能包括测试套件、形式化断言、静态分析规则、契约式检查,甚至由另一个模型充当评审者。关键区别在于:写代码时人类关注的是「怎么实现」,而写验证器时人类关注的是「什么算对」。因为 AI 可以快速生成大量实现方案,真正的稀缺资源变成了高质量的判定标准。验证器一旦写好,就同时承担了正确性守门人和迭代信号源两个角色——系统根据它的反馈自动修正输出,从而形成自我改进的闭环。

软件工厂:建造生产代码的系统

视频提出了一个核心概念:软件工厂(Software Factory)。世界顶尖工程师的演化方向,不再是亲自写代码,而是建造一座"工厂",由工厂来生产代码。

具体做法是三个动作:定义目标(goals)、约束(constraints)、验证器(verifiers),然后让工厂完成其余工作。这个结构的精妙之处在于:它把人的角色从"执行者"变成了"规则制定者"和"质量守门人"。

目标回答"要达成什么",约束回答"边界在哪里",验证器回答"怎么判断做对了"。三者共同构成一个闭环,使得系统不仅能生成代码,还能评估并迭代自己的输出。这正是视频所说的"self-improving software"——自我改进的软件。

This is self-improving software.

模型路由与反锁定:工厂的工程细节

据视频介绍,Factory 这家公司从第一天起就在做软件工厂这件事,并且是"software factory"这个术语的提出者。在工程层面,它支持从前沿模型到开源模型的全谱系,也允许用户自带模型(bring your own model),从而避免被某一家实验室锁定。

配套的能力是模型路由(model routing):根据任务自动选择最合适的模型,在效果和成本之间取得平衡。这个设计思路反映出一个现实——没有任何一个模型在所有任务上都最优,把选择权交给系统而非硬编码,是工程上更可持续的做法。

You can even bring your own.

模型路由(Model Routing) 指的是在系统层面维护一个调度层,根据任务类型、输入长度、延迟要求和成本预算,把请求动态分发到不同模型。例如简单的格式转换可以交给便宜的小模型或开源模型,复杂的架构推理则交给前沿的大模型。这种做法的前提是模型之间可以互换——也就是所谓的「反锁定」(anti-lock-in):通过统一接口和抽象层,避免把业务逻辑写死在某一家实验室的 API 上。当新一代模型出现时,只需更新路由策略而非重写整个系统。这与编程史上「把变化点封装起来」的思路一脉相承,只不过这次封装的对象变成了模型本身。

程序员角色的再定义

如果软件工厂成为主流,工程师的核心能力图谱会明显位移:

从语法熟练度转向意图表达能力。 能否把模糊的需求拆解成清晰的目标和约束,比能否手写一个红黑树更重要。

从调试代码转向调试验证器。 当代码由系统生成,人类直接接触的是判断标准——验证器写得好不好,决定了整个工厂的产出质量。

从单点交付转向系统设计。 你的产出不再是一个模块,而是一条能持续产出模块的生产线。

这条路径未必适用于所有团队,视频本身也带有明显的产品推广色彩。但它指出的方向——抽象层持续上移、人的角色向规则制定者迁移——与过去几十年的编程史是一致的。

从打孔卡到 AI 软件工厂,变的始终是抽象层,不变的是人类对"把复杂问题说清楚"这件事的依赖。

#软件工厂#AI编程#自我改进软件#模型路由#编程范式#软件工厂概念#AI写代码
分享:

相关推荐