一名"古法"编程师,最终购入了顶配 Coding Plan...
前言
2025 年 7 月我在上交的时候还自豪的称自己是“古法”编程师,然而时至今日不得不承认的是 AI Agent (下文简称 AI) 发展确实日新月异,尤其是以 GPT-5 为代表的新一代长 Context 高 Reasoning 强 Agentic 的模型发布以来,AI 在写代码这块的进步有目共睹。本文想从一名“古法”编程师的角度来探讨:
- AI 在编码这块已经可以做什么?
- 剩下的事情 AI 为什么还做不到?
- “古法”还有前途吗?AI 未来是什么?
本文纯“古法”打造
“古法” 的困境
写代码长期以来很多人觉得基本属于是脑力劳动,但实质上很多资深程序员和我有一样的感悟:当编码能力到一定地步后,大部分写代码其实都成了重复性的体力劳动。
举一个例子,假设我现在想实现一个类似 Clang/GCC 的编译器,至少符合 C89 标准,并且尽量不使用现有的编译器基建设施,我的计划大抵会是[1]:
- 阅读 C89 标准设计,设计前端
- 选择一种合适的 Parser,比如 LL/LALR/递归下降,想好 AST/IR 之类的大概设计
- 先尝试支持语法子集,用足够的测试样例确保 Parser 设计的合理性
- 进入循环:支持更多 Feature,添加样例,同时确保没有 regression,有必要的话回头改之前的设计
- 直到达到一个阶段性的目标,比如能编译一个最小的 C 标准库
- 开始写一个最简单的后端,至少能把绝大部分 AST/IR 翻译成对应的指令,并且能链接出个简单的 ELF
- 反复优化,比如常量折叠等简单的优化,直到编译一些简单程序比如 Fibonacci 不要比 Clang 慢太多
但是问题是,我们可以发现在这个过程里,其实真正需要“动脑”的部分,只有最开始的理解 Spec 设计 Parser 还有最后最重要的编译优化是比较有意思需要动脑的,剩下的任务几乎都只能用 tedious 来形容。
也就是说“古法”编程的本质问题是,重复性的体力劳动占用了编码的太多时间,大大降低了生产力,而目前 AI 的出现,正是为这些重复的体力劳动带来了新的转机。
^1: 虽然我阅读过很多 LLVM 源代码,但是我不得不承认我没有完整做过一套流程
AI 带来的转机
AI 能做什么?
目前来看,我可以给出一个比较清晰的定义来描述 AI 能做的事情。
- 定义清晰:问题的输入和输出都非常清晰。
- 过程明确:由输入到输出的必要过程非常详细和明确。
- 反馈直接:做对/做错有明确的方法可以知道。
- 目标确定:做到什么程度算是可交付的状态
以上述写编译器为例:
- 定义:输入是 C89 源代码,输出是 ELF 文件(至少在 Linux 上是这样),这个几乎是最简单的
- 过程:虽然编译器的架构多年以来已经基本稳定,LLVM 和 GCC 的架构和设计有很多文档可以参考,但是目前 AI 还是难以在没有前置知识的条件下直接明白最优的 workflow
- 反馈:在编译器开发里,问题往往是很容易发现的,毕竟有标准。
- 目标:这就是最复杂的事情,编译器除了本身编译原理的复杂度,还有用户体验 UX 的复杂度,因此一个“好用”的编译器其实相当有挑战性。
恰巧最近 Claude 最近尝试用 Opus 直接 End-to-End 的 Vibe 出一个编译器出来,本意是想说明 AI 的进步[2],但结果变成了大型行为艺术,出现了大量问题:
- 硬编码大量路径,包括 GCC 的头文件,解释器路径,甚至连日期宏定义也能硬编码
- 无法编译 Hello World,大量 feature 完全不支持
- 大量的语义错误
结合我上面说的理论来看:
- 定义:AI 直接分析应该几乎是靠谱的
- 过程:我觉得 Claude 应该就是在这一步出了大的问题,他显然没有像人类一样重复的去验证然后增量式开发
- 反馈:这个从结果来看还是没问题的
- 目标:这是另一个问题,显然 Claude 也不知道一个“好用”的编译器的定义,至少他没有想到不能硬编码
但是如果反过来看呢?其实这些事情不是恰好和我们这些“古法”编程师互补吗?因此我想新时代下的“古法”编程师(或许应该叫做魔法师)的做法已经呼之欲出了:
只做创造性的工作,重复性的工作定义好这四点然后扔给 AI 去做。
目前通过这个方式,我觉得 AI 能顶上差不多 25% 个我的效率,所以我往往会让多个 AI 并行着帮我做事。而且 AI 最大的好处就是任劳任怨干脏活累活。
^2: 或者是为了拉投资
完全的自动化写代码/科研
目前来看 AI 的完全自动化编码,甚至是科研,我觉得有了很大的变量。整体来看,我持中立偏乐观的态度,原因有几条。
软工理论的革新
上述我讲的让 AI 工作效果变好的 4 点,其实在以往软工理论里都有对应的研究,比如需求分析细化,自动测试等等,有了 AI 的加持,这些事情会做的越来越 Practical。
我非常非常期待在这块有足够的突破,能把大部分常见的编码任务自动化的并且高质量的打包成我上述提到的四点,进一步解放生产力。
高质量数据的涌现
目前主流 AI 厂商几乎或多或少,或承认或不承认的把用户对话数据拿去训练了。一个明显感觉的变化是,在 GPT-4 时代,我让 AI 去写一个 Agent,即使给了很多上下文 AI 也几乎很难写出来有用的代码(包括 Prompt),现在一句话的事情就可以搓出来了。
LLM 的进步空间可能在缩小
目前 LLM 基础 reasoning 能力见效快的方式(加数据量,加质量,加算力等)几乎都被尝试过了,我有一种感觉是目前亟待一些类似 Transformer 一样 ground breaking 式的研究。但不管怎么样,我对 LLM 的发展非常期待。
程序员会被替代吗?
目前来看 AI 想完全替代程序员还有不短的一段距离,比如上述做 Planning 的能力仍然需要程序员的知识积累。举个例子的话,假设完成一件事情是从 A 到 B 的一张图,现在 AI 很多时候能选出最短路径,但是真实世界里很多时候并不是最短路径就能解决的。然而不得不承认,随着软工相应研究的深入,这些“古法”编程师的核心能力未来可能也会被 AI 学会。
后记
我相信未来程序员不会被替代,但一定是会以一种新的形式存在,就像经过石器时代的人类并没有消失,只是学会了更趁手的工具提高了生产力。但是这种形式会是什么样的?开 10 个窗口完全指挥 AI?还是像现在这样 AI 的比重在工作流里不断提高但是最终还是依赖程序员审核?亦或者是 AI 指挥人类干活[3]?具体的故事就等时间使之发芽吧。
^3: 参考文献 《心理测量者》