不要陷入“反AI”的炒作浪潮里

当今的程序员对 AI 编写的代码大多带有一种厌恶的情绪。或者说,我们经常看到人以 “老艺术家” 的名号贬低其他用 AI agent 实现开发任务的人。

对此,我想说:不要陷入 “反AI” 的炒作浪潮里。

人们有盲目贬低 AI 编程的动机

AI 作为一个新的生产工具(是的,我不打算把它叫做智能体)极大地改变了程序员编写软件的方式。然而,我们不难发现 AI 编写代码的技术有以下几个事实:

a) AI 编程几乎没有门槛。这是显然的(请接受现实,先生)。
b) 没有门槛的工作不一定是低质量的。送外卖不需要门槛,但是送外卖的工作完全可能是高质量的。
c) 一种新的没有门槛的工具的出现会导致在旧的生产流程下达到门槛的人本能的抵触,不论其产出是否低质量。我们可以用卢德主义的出现证明这一点。

由上,AI 技术不可避免地遭到人们的抵制。而我们常常直接给 AI 编程扣上 vibe coded slop 的帽子。也就是说,我们把 “是否使用 AI 编程” 当成一种指标看待。并以此,评价程序员的水平高低。

好的程序员往往有几个 Good Thing (tm):傲慢,懒惰,狂妄。可以说,我们对科技的认识极大的建立在一个鄙视链之上。当一个被广泛鄙视的技术出现时,我们就不由自主的鄙视被广泛鄙视的技术的使用者,即使我们大多数人并不知道为什么要去鄙视他们,以享受这样做带来的优越感。可悲的是,这样的人往往更离不开 AI 编程。直到他们被抓包的时候大概是这样说:

agentic coding 不能叫 vibe coding… agentic coding! 程序员的事,能叫 vibe coding 吗?我们和你们这些 vibe coder 不是同一种物种!

一个典型的例子是:php 语言(当然,这与我是一个 php 内核的开发者没有关系)。各位,你们在知乎,微博,小红书上说 php 不好的时候,有没有想过,php 到底哪里不好呢?是性能?安全性?还是语言设计?有人可曾关心过互联网上被吐槽无数次的问题,在一个不算新的版本中早就被解决了?很少。或者说,没有。php 性能低 – 你跑过 benchmark 吗?你有了解过 opcache 优秀的优化机制吗?你有了解过新版本的 JIT 特性吗?好了,哪怕 php 在某次 benchmark 里超过了 go:

php 的 benchmark 不能跟其他语言比… php 的 benchmark!go 的事,能跟你 php 比较吗?我们这些写 go 的跟你们写 php 的不是同一种物种!

另外,请不要让我提起 Rust,Zig 和 Odin 教徒。谢谢。

AI 浪潮与这样的迭代没有本质区别。这就引出我要介绍的一个现象,我称之为:技术部落主义(Technical Tribalism)

技术部落主义

部落主义是指人类基于群体归属感形成的排他性认同现象。技术部落主义,则是指技术上,程序员基于群体归属感就某一单一的技术栈形成的排他性认同现象。

一直以来程序员们都有一个共识:评价水平最好的标准,就是看实现了什么。我们千百年来出现了很多评价程序员工作的方式,如 LoC(Line of Code, 代码行数),NoC(Number of Commits, commit 数量)和 NoPR(Number of Pull Requests,PR 数量)这些指标在后续看来无一例外都是扯淡。计算机是工科,我们评价的标准永远是:

  • 解决了什么问题 (what)
  • 解决的怎么样 (how)
  • 有什么实用价值 (why)

至于用了什么样子的技术栈,写了多少行代码,没太大用处。

所以说,我们可以得到:计算机是结果导向的学科。你能做出成果就是成功,无论你是如何做出的。因此,没有无能的技术栈,只有无能的人。(所以,请不要再散布上个部分中讲述的傻逼言论了。)

这也就证实了技术部落主义在实用价值上的荒谬。技术部落主义是过程导向的,它仅仅注重你是如何实现某个项目,用了什么样的语言。而 AI 正是刚刚好中了这部分的雷区。“哈!你写的代码是 AI 的,你完蛋了,我要把你挂到 XXX 上审判!没有人会用你的软件了!你看看我,老艺术家!” 欸,去年的这个时候好像我们说的是:“哈!你写的代码是 php 的,你完蛋了,我要把你挂到 XXX 上审判!没有人会用你的软件了!你看看我,我用 rust!”

(对不起,我发誓这是我最后一次提及 php)

AI,开源和技术部落主义者

不可避免地,反 AI(anti-AI)的浪潮来到了开源社区里。好了,我知道人们要说什么了。啊!AI 滚出去!这是有关劳动,这是有关质量的选择!用 AI 的滚出开源社区!!

我应该庆幸至少没人说:啊! php 滚出去!这是有关劳动,这是有关质量的选择!用 php 的滚出开源社区!!(对不起…)

饶了我吧。这是有关你的自大,先生。AI 查找 bug 的能力已经远远超过人类了。只要 AI 能创造价值,为什么要排斥它呢?你参与开源社区,究竟是为了让项目变好,还是为了能获得一个只有少数人拥有的头衔凌驾于他人之上?

我必须要澄清的一点是:我曾经发表过很多看起来反对 AI 的言论(可以看之前的文字)但是我其实反对的,都是使用 AI 的傻逼。我的观点大概是:

  • 使用 AI 的傻逼和不使用 AI 的傻逼,都是傻逼。
  • 使用 AI 的人类和不使用 AI 的人类,都是人类。

我承认 AI 的出现导致门槛降低,大量智力不足的人涌入开源社区给维护者造成了大量麻烦。但这不代表我们应该把责任放到 AI 身上。很多人拒绝 LLM 参与项目,若从维护者的角度来看,以此保证贡献者有一定的技术水平和投入了时间,是可以接受的。我接受不了的是:有些人会指着其他人的项目说,这是 AI 写的垃圾,而不看它实现了什么。(换句话说,也有人说这是 php 写的垃圾,而不看它实现了什么(抱歉))

是啊,有人就是用 AI 做了然后还有很多用户,怎么了呢?哦,我难道一定要成为一个书呆子,学完没人懂的计算机科学知识,手写几千行代码之后才能做软件?

“老艺术家”,老艺术家和老艺术家们

然而我还是经常手写代码。为什么呢?因为我享受写代码。就是,享受敲键盘。真的。这种手动解决问题的感受很爽。(你也可以说我有受虐倾向,我接受)上周在 php 的 ambassador program 的视频会议里见到了非常多热情而有水平的开发者,或者说,跟我一样有受虐倾向的人。

人的一生就是在走出偏见。“老艺术家” 们的时代总是会落幕的。