作为 Redis 的创造者,Salvatore Sanfilippo(网名 Antirez)一直是“硬核程序员”的代表。他崇尚 C 语言的简洁与控制力,享受手动雕琢代码和精细管理内存带来的乐趣。如果要说有谁最应该对“AI 自动编程”持有强烈的保留态度,那他无疑是其中之一,因为他所代表的正是那个崇尚“手工艺人”精神的黄金时代。
然而,就在昨天,Antirez 在自己的博客上发表了一篇题为《Don‘t fall into the anti-AI hype》(别陷入反 AI 的情绪陷阱)的文章,这篇文章在 Hacker News 及其他技术社区引发了广泛而激烈的讨论。
文章最震撼之处,并非是对某个模型的吹捧,而在于一个曾以“手写代码”为最高荣耀的顶尖黑客,公开承认自己已经“投降”了。
Antirez 在开篇就十分坦诚。他提到自己曾离开工作去创作科幻小说,并探讨 AI 对社会可能带来的冲击。他原以为自己已经预见到了 AI 的发展轨迹,并认为:“编程被彻底重塑,至少还需要几年时间。”
“但我现在不再这么认为了。”
他直言不讳地指出,当前最先进的 SOTA 大模型已经能够独立完成大型的子任务甚至是中型项目。虽然具体的成功程度与你如何描述问题密切相关,但结论已经非常明确:
“对于大多数项目来说,亲自写代码已经不再是明智之选,除非你只是为了好玩。”
这句话从 Redis 之父口中说出,分量非同小可。
为了证明这并非空谈,Antirez 列举了他在过去一周内,主要借助 AI(他使用了 Claude Code)完成的四项具体工作。这些工作如果由人工完成,可能需要花费数周时间,但他仅仅用了几个小时:
- 重构底层库
linenoise:他让 AI 修改了这个库以支持 UTF-8,并创建了一个能够模拟终端字符显示的测试框架。这正是那种他一直想做,但又觉得“性价比太低”而不愿动手的工作。在 AI 的辅助下,想法直接转变为了可运行的代码。
- 修复 Redis 测试中的“幽灵 Bug”:Redis 的测试套件中存在一些涉及 TCP 死锁、时序问题的瞬态故障,这是系统编程中最令人头疼的部分。结果呢?Claude Code 不仅成功复现了问题,还检查了进程状态,并最终修复了 Bug。
- 手写 BERT C 语言推理库:他想要一个纯 C 语言编写的库来运行 BERT 嵌入模型。Claude Code 在短短 5 分钟内就写出了 700 行代码,且运行速度仅比 PyTorch 慢 15%。
- 重写 Redis Streams 内核:他手头有一份设计文档,尝试将其喂给 AI。结果,AI 在 20 分钟内就重现了他过去几周在Redis Streams 内部所完成的工作。
Antirez 对此感慨道:“看着它重现我的工作,我主要的时间都花在检查和授权运行命令上了。”
这篇文章最触动人心的地方,在于 Antirez 对“编程乐趣”的重新定义。他坦言,自己的整个职业生涯都建立在 “一行行写出优美、极简软件” 的基础上。他热爱那种工匠精神。然而,面对 AI 正在“吞噬”代码的现实,他非但没有感到被剥夺,反而体会到一种释然。
“事实就是事实,AI 将永远改变编程。”
他认为,如今编程的核心已经从“如何实现”转向了“要做什么”。
- 以前的编程:不仅要懂得系统架构,还要精通语法细节、内存管理和并发模型,需要在无休止的调试中消耗大量精力。
- 现在的编程:你需要极强的“心理表征能力”,能够清晰、准确地向AI描述目标,并具备强大的代码审查能力来把控最终产出的质量。
Antirez 甚至认为,这是一种“民主化”。就像上世纪90年代的开源软件运动一样,强大的大模型让小型团队甚至个人开发者,拥有了能与大型公司竞争的潜能。
当然,作为一名具有深刻人文关怀的程序员,Antirez 并没有盲目乐观。他表达了对 AI 算力集中在少数巨头手中的担忧,也对未来可能发生的程序员职业冲击感到不安。
但他给开发者的建议却极为务实且犀利:
“无论你对 AI 持什么立场,单纯的拒绝和抵制是毫无意义的。错过 AI 并不能拯救你的职业生涯。”
他建议所有开发者:
- 不要用 5 分钟的测试来验证你的偏见:不要随便问 AI 一个弱智问题,然后嘲笑它答错了,并以此证明“AI 也就那样”。
- 投入数周时间去深度使用:在实际项目中不断磨合,找到人机协作的最佳节奏。
- 学会“自我繁衍”:利用 AI 作为杠杆,显著放大你的个人产出能力。
在 Hacker News 的讨论区,有网友评论道:“如果连 Antirez 这样能亲手编写 TCP 协议栈的人,都开始用 AI 来写 C 代码了,我们真的就没有任何理由再固守某种莫名的‘纯粹主义’了。”
Redis 之父的这篇文章,或许会成为编程史上一个重要的转折点路标。它标志着 “辅助编程” 阶段的落幕,以及 “意图编程” 时代的正式到来。面对这一变革,拥抱并学习驾驭新的工具,已成为技术人无法回避的课题。想要了解更多开发者如何应对技术趋势的变化,可以来云栈社区交流探讨。
|