Skip to content

世上本没有路,走的人多了也便有了路

2026年7月18日

大概十来年前,在知乎上看过一个讨论得非常热烈的问题:自然语言编程能否实现?

我记得当时自己的观点是:不能。

核心观点如下:

  1. 编程语言的语法掌握是很容易的事,这不是什么门槛
  2. 但编程是一个不断分解细化问题的过程,自然语言对问题的描述是很不清晰的,很难转换为确定性的代码

未来已来

十来年前讨论这个问题多少还有些科幻色彩,但在今天,AI 已经几乎可以完全自主完成各种编程任务了。有些人只用一句话就生成了整个软件,其中的交互细节、视觉风格、Edge Case 处理,AI 全都做了决定,而且结果看起来还不错。

回顾人类生产软件的流程,细化问题并逐一回答是很重要的一步。一句话的需求背后有漫长的研发过程——需求定义、评审、技术评审、开发、测试——每一步都在把未回答的问题收敛为确定的细节。

这让我重新思考当年的问题:自然语言明明是很不清晰的语言,AI 又跳过了这个需求分解细化的过程,直接按它自己的理解执行,理论上给最终结果带来了不确定性。但为什么实际上又能转换为确定性的代码?

现在这条路是怎么走出来的

如果我们仔细拆解 AI 做得很好的那些场景,会发现一个共同点,即它们都是常见的模式

我以前会举一个例子:当我们说“做一个搜索框”,背后实际上有很多细节需要处理:输入框的样式、placeholder 的文案、输入时的交互、防抖、搜索结果的展示、loading 状态、空状态、超时提示等等。

但是,“做一个搜索框”这个模式在 GitHub 上出现了成千上万次,Stack Overflow 上有无数讨论,各种各样的实现、各种 Edge Case(debounce 设多少毫秒、空状态怎么展示、loading 状态如何处理、超时怎么提示),早就被社区反复讨论并形成了共识方案。

当一片空地,被无数人以同样的路径反复走过无数次之后,空地上就形成了一条路。当无数人做过搜索框之后,社区就形成了一个共识:搜索框应该是这样的。

现代大语言模型的训练数据覆盖了海量代码仓库、技术文档、设计规范,因此它学习到了一个典型的搜索框应该长什么样。当你说“做一个搜索框”时,模型并不是在重新思考“防抖应该设多少毫秒”,而是直接拿出了最典型的那一个方案——300ms。

所谓的“细节决策”,对模型来说其实是“预测一个最多人用的可能性”。也就是说,AI 的成功不是因为它真的在推理,而是因为它记住了人类的决策结果是什么样的。

世上本没有路

“编程是一个不断分解细化问题的过程”——这句话在今天依然正确。但也必须承认,这样的说法忽略了另一面:绝大多数编程工作并没有什么开创性,而是在重复前人已经走过的路。当一个模式被走了足够多次之后,AI 也可以获取这些共识,直接给出经过验证的结果。

鲁迅说:世上本没有路,走的人多了,也便成了路。

十多年前我关注的是前半句——世上本没有路,所以需要人去不断做决策,去开路。十多年后,我发现后半句同样重要——走的人多了,也便成了路。AI 是那个已有路的人,它最擅长的就是沿着已有的路走下去。

而在未知领域不断去开新路这件事,仍然是我们人类的事,这大概就是人类的价值所在吧。