夜雨聆风学习资料网

ARTICLE · 1093114

一句话就能生成一个App,程序员们为什么急了?

一句话就能生成一个App,程序员们为什么急了?

一年前,你如果在推特上说"我一句话就让AI给我写了个App",底下评论区大概率是嘲讽:玩具、不严肃、给不想学编程的人玩的。

一年后的今天,这件事已经变成了很多团队建内部工具的标准做法。那些以前要排队等程序员排期、一等就是几个月的需求,现在产品经理自己描述一下,一个晚上就跑起来了。

没人再觉得这有什么好稀奇的。

就像当年"不懂HTML也能建网站"从奇迹变成常识一样,Vibecoding——用大白话描述需求直接生成能用的程序——已经悄悄从边缘把戏变成了主流工具。

但有意思的是,另一句话也开始在程序员圈子里反复出现,而且出现的频率越来越高:

"Vibecoding不算编程。"

说这话的人,语气从居高临下到直接开骂都有,但意思永远一样:你们干的那些,不算数。

这种火气,其实完全可以理解

你得先站在说这话的人的角度想一想。

他们背后是什么?是算法啃了两遍才啃明白,是熬夜debug别人写的、一行注释都没有的代码,是事后复盘发现罪魁祸首竟然是自己,是那些慢慢攒出来的、用伤疤换来的职业直觉。

然后旁边有个人,用跟奶奶说话的语气描述了一下需求,一个晚上就拿到了结果。

那种感觉,像是自己最硬的那部分本事,突然被贬值了。

好像多年的经验,压缩成了"能把话说清楚"这么一个能力。

这不是小气,也不是傲慢,这就是人对自己的劳动最正常的嫉妒心。有这种感觉一点都不奇怪。

问题不在感觉本身,在于从这种感觉里得出的结论。

说实话,我自己也这么想过

一开始,作者也掉进过同一个坑。看到那些demo,打开生成的代码瞄一眼,发现里面有些东西就算deadline拿刀架脖子上他也不会放进生产环境,然后就放心了:这玩意儿不是对手。

错误不在于他对代码的判断——那些代码确实平庸。

错误在于,他比错了对象。

他拿"别人一个晚上的成果"去比"自己几个月的成果"。这个比较本身就不成立。

真正有意义的比较应该是:我自己用这个工具能做出什么,跟不用它相比差多少。

一旦把问题换成这个问法,就没有人可以吵了。

工具不拉平差距,它放大差距

这里有一个反直觉的真相。

你可能会想:一个帮你写代码的工具,应该会拉平强者和弱者之间的差距吧?

恰恰相反。它对理解系统越深的人,回报越大。

原因很简单:工程师的工作从来就不是敲键盘。

它在第一行代码之前就开始了——定义问题。你不光要想清楚结果长什么样,还要想清楚出错的时候怎么办:超时了怎么处理,两个请求撞上了怎么办,负载到了哪个点这个方案就崩了。一半的坑,在这个阶段就能看见,而能看见的人,是那些已经踩过这些坑的人。

然后是模型根本不可能知道的上下文:这个服务为什么这么搭,为什么这里用队列而不是直接调用,一年前已经做了什么决定、为什么不能中途推翻。再然后,生成的代码要用"凌晨三点被叫起来背锅的那个人"的眼睛去读——不是找错别字,是找那些安静的地方:没处理的超时、半路丢掉的幂等性、在一百行测试数据上跑得漂亮但在真实百万数据上直接趴下的查询。

最后,还得把它推上线,盯指标,出事了回滚,然后负责。

这部分,没有任何工具能替你扛。

生成覆盖的是中间那段——真正敲代码的部分,而那恰恰是对有经验的人来说本来就最快的一段。两头的东西还在原地,而工程师的工资,恰恰付在两头。

同一个词,说的是两种人

整个争论的根子,其实在这里:一个词被用在了两件不同的事情上,然后大家还奇怪为什么谈不拢。

第一种,是作为娱乐和入门的Vibecoding。

有人自己捣鼓出一个小东西,看到脑子里想的东西真的跑起来了,那种快乐是真实的。对大多数人来说,这永远只是个周末消遣,这没有任何问题。更进一步说,新人恰恰是通过这种小玩意儿进入这个行业的——而且比他们通过算法教材进入行业要早好几年,如果他们会通过教材进入的话。

第二种,是职业工程师用生成工具干活。

工具是同一个,但任务量级和犯错的代价完全不同:不能重放的数据迁移、跟别人的支付系统对接、重写一个正在扛着线上流量的服务、你拿夜班负责的基础设施。这已经不是通常意义上说的Vibecoding了——这是工程工作,生成工具跟调试器、性能分析器排在同一行,而且同样不能自己决定任何事情。

区别不在工具,在工具之前和之后发生了什么。

那个在朋友演出上皱眉的音乐家

当一个工程师听到"你不就是在Vibecoding吗",然后开始解释"我这根本不是Vibecoding,我做的是真正的、困难的工作"——他是在为一个词吵架。而从外面看,这不像辩论,像在捍卫地位,不管他实际想表达什么。

作者喜欢用音乐来打比方。

想象一个来自好乐团的音乐家,去参加朋友的乐队演出:他们六个月前才组队,在车库里排练,一半的音弹错了,鼓手还抢拍。然后他一整晚都在皱眉,跟周围每个人说这有多糟、他多不喜欢。

从专业角度讲,他完全正确——他们确实比他差远了。

但从人的角度讲,他只是毁掉了一群人的夜晚,而那些人什么都没从他手里抢走。

今天那些用一句话拼出自己第一个应用的人,就是车库里的朋友。他们没有在争夺乐团里的座位,也没有抢走任何人的座位。他们中的一些人,一年后会来认真学怎么演奏——恰恰是因为他们度过了一个愉快的夜晚,而不是因为有人告诉他们有多差。

下次有人这么说,你该怎么接

所以,当有人跟你说"你不就是在Vibecoding吗",最好的反应是不生气。

笑一下,同意他:对,而且我做得非常专业。

然后对话要么进入正常的职业交流,要么就此结束——两个结果都比为一个词吵架强。

作者给自己定了三条规矩:

  • 不证明自己的工作有多难。如果难度在结果里看不见,说再多也没用;如果看得见,就没什么好解释的。
  • 不纠正别人的用词。"这不是Vibecoding,这是带代码生成的工程"这句话,从来没让任何人变聪明,但每次都成功地终结了对话。
  • 最重要的一条:不贬低别人的兴趣。一个人给你看他周末捣鼓出来的东西,他不是在等你的代码审查——他需要的是有人注意到他做出来了这个东西。这句话值得说出口,哪怕里面的代码很吓人,还硬编码了三个密码。

最后这条,比前两条加起来都重要。

兴趣是这个行业里最稀有、最脆弱的东西:一句居高临下的话就能浇灭,而再想点着,几乎不可能。

对工程师来说,这意味着什么

技能没有消失,它在转移。

价值从"敲代码的速度"——说实话,那里本来也没多少价值——转移到本来就最有价值的地方:理解业务、把问题定义到可解的程度、看见边界、以及为凌晨三点线上跑着的东西负责。

这套东西,恰恰是没法生成的。没有哪个模型知道你们公司能接受多长的宕机,知道上一次迁移为什么在最后一刻被回滚,知道动这个服务之前得先跟谁打招呼。

工具不拉平差距,它放大差距。你越懂系统,它给你的回报越大。

而如果你只会说"你不算编程",那你放大的,只有自己的焦虑。

相关学习资料