
AI写代码时的「品味」,其实是一面照妖镜
你有没有注意到,让AI帮你写Python代码,它几乎必然会用pandas处理数据、用requests发HTTP请求、用Flask搭后端。它不是在「选择」,它是在「复现」——复现的是整个互联网程序员群体的集体习惯。这件事比你想象的要有意思得多。
先说一个很多人没意识到的事:AI写代码时的「偏好」,本质上不是偏好,是概率分布。它见过多少次某个库的用法,就有多大概率在下一次代码生成里复现它。这听起来像废话,但背后藏着一个很深的问题——谁决定了AI的代码品味?答案不是OpenAI,不是Google,而是GitHub上千万个匿名的普通程序员。
训练数据就是一次「民主投票」
大型语言模型的代码能力,主要来自对公开代码库的学习。GitHub、Stack Overflow、各类技术博客——这些地方沉淀了过去二十年人类写代码的痕迹。哪个库被引用得最多,哪种写法在Stack Overflow上被点赞最多,哪套框架的教程铺天盖地,AI就会把这些模式内化成自己的「直觉」。
这本质上是一次没有人主持的民主投票。每一行被上传到公开平台的代码,都是一张选票。结果就是:流行的更流行,小众的更小众。AI放大了技术生态的马太效应,而且它自己完全不知道。
80%
AI生成代码中,主流库的使用比例估算——长尾库几乎隐形
「最优解」和「最常见解」被混淆了
这里有一个很微妙但很重要的区分:AI给你的,往往是「最常见的解法」,而不是「最适合你场景的解法」。两者有时重合,但经常不重合。比如,AI处理日期时间几乎必然用datetime标准库或者arrow,但在某些高性能计算场景里,这些库的开销是不可忽视的。AI不会主动告诉你这一点,因为「高性能日期处理」在训练数据里是少数派。
更有趣的是框架的选择。让AI搭一个Python后端,它大概率给你Flask或FastAPI。这两个框架本身没问题,但AI之所以选它们,不完全是因为它们「最好」,而是因为它们的教程、示例代码、Stack Overflow回答在互联网上的密度极高。Django同样优秀,但相对更重,初学者教程里出现频率稍低,AI就会在某些场景下略过它。流行度污染了客观性。
「
AI的代码偏好,是人类集体选择的镜像——映出的不一定是最好的,而是最多数人走过的路。
」
时间切片问题:AI活在过去
还有一个维度经常被忽略:时间。训练数据有截止日期,这意味着AI对技术生态的认知是静态的。某个库在训练截止前三年还是主流,之后逐渐被社区放弃,AI完全不知道。它会继续自信地推荐一个已经半死不活的解决方案。
JavaScript生态对这个问题感受最深。前端框架的迭代速度之快,导致AI经常推荐「上一个时代」的最佳实践。用了某个两年前流行、现在已经停止维护的状态管理库,AI还在当宝贝一样推荐。这不是AI的错,这是静态知识遭遇动态生态必然产生的错位。
但这件事还有另一面
说了这么多AI的局限,有一点反而值得重视:AI的「保守偏好」在很多时候是对的。对于大多数日常开发任务,用最流行的库确实是最理性的选择——社区活跃、文档完善、坑已经被别人踩完了。AI的「从众」倾向,恰好契合了工程实践里「不要在不必要的地方创新」的原则。
●AI的代码偏好,在「够用」场景下是优势,在「极致」场景下是陷阱。分清楚自己在哪个场景里,比抱怨AI的局限更有用。
真正需要警惕的,是把AI的偏好当成权威。它告诉你用某个库,背后的逻辑是「大多数人用这个」,而不是「这是最适合你的」。这两句话之间的距离,有时候只是一个库的名字,有时候是整个架构方向的差异。
给实际使用者的一个思路
1追问AI「为什么用这个库而不是那个」,它的回答会暴露它的推理逻辑,也会逼它给出更贴合你场景的方案
2对于小众但关键的技术领域,AI的建议要打折扣,它见过的样本太少,自信心和准确性不成比例
3把AI推荐的库当起点而非终点,去看这个库的GitHub最近提交记录,判断它是否还活着
有一个细节可以验证AI知识的新鲜度:问它某个你知道是近一两年才出现的库或特性,看它的反应。如果它一本正经地告诉你「这个库不存在」或者给出明显过时的信息,你大概就知道它的知识边界在哪里了。这不是在刁难AI,这是在校准你对它的信任半径。
✦ 小结
AI写代码时的库偏好,本质是训练数据的概率投影——流行的被放大,小众的被忽视,过时的被当现在。它的「品味」是人类集体选择的快照,有时候是捷径,有时候是陷阱。真正的问题不是AI偏爱哪些框架,而是我们有没有意识到:它给的是「最常见答案」,不是「你的最优解」。
夜雨聆风