code_transformed: The Influence of Large Language Models on Code
本文通过对超过 20,000 个 GitHub 仓库进行的大规模先驱性实证研究,证明了大型语言模型正在显著改变现实世界的编程风格,其证据包括对 snake_case 命名规范遵循度的提高,以及代码复杂度和可维护性的转变。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,计算机编程的世界就像一座巨大的、繁忙的图书馆,每天都有数百万人在这里编写书籍(代码)。几十年来,这些书都有着各自独特的书法风格:有些作者使用简短、晦涩的角色昵称,而另一些人则编写长篇且描述性的段落。
这篇论文就像是一个侦探故事,它提出了这样一个问题:“超级智能 AI 图书管理员(大语言模型,或称 LLM)的到来,是否已经开始改变人类编写这些书的方式?”
研究人员并不仅仅是询问人们是否在使用 AI;他们深入图书馆,观察了超过 20,000 个真实的现实世界代码仓库(即这些“书”),并将它们与 AI 流行之前由人类编写的代码,以及如今由 AI 生成的代码进行了对比。
以下是他们的发现,通过简单的概念进行了拆解:
1. “书法”的变化(命名模式)
把变量名(例如 ml 或 max_length)想象成作者给角色起的名字。
- 旧方式: 人类经常使用简短、快速的名字,比如
ml(代表 "max length")或mlt。这种方式很高效,但有时难以阅读。 - AI 方式: AI 模型喜欢非常具有描述性的名字。它们更倾向于使用像
max_length和current_length这样的名字。此外,它们还非常喜欢一种叫做 "snake_case" 的特定风格(即使用下划线,如snake_case,而不是camelCase)。 - 发现: 研究人员发现,在近年来,人类编写的代码开始变得越来越像 AI 的“书法”。使用长名称和下划线的频率显著上升。这就像是人类在潜意识中开始模仿他们正在借阅的那位 AI 图书管理员的写作风格。
2. 故事的“复杂度”(代码质量)
研究人员还观察了这些故事有多“曲折”。在编程中,“曲折”指的是决策点(例如一个 if 语句:“如果下雨,就带伞”)。
- 发现: 当 AI 重写代码时,这些故事通常会变得稍微不那么“曲折”(复杂度降低),并且更易于维护。
- 陷阱: 这并不是一个万能的修复方案。在某些语言(如 Python)中,AI 实际上让故事变得比人类写的更加复杂。但在其他语言(如 C/C++)中,AI 让代码变得更加整洁。
- 趋势: 有趣的是,现实世界图书馆(GitHub)中的代码在 2023 年以来也开始变得更加整洁且易于维护,呈现出与 AI 风格一致的趋势。
3. “复制粘贴”效应(相似性)
团队测试了两种场景:
- 直接生成: 要求 AI “从零开始写一个关于 X 的故事”。
- 参考引导: 向 AI 展示一个人类的故事,并说:“读一下这个,然后重写它使其更好。”
结果: 当 AI 被给予一个人类的故事进行重写时,它会非常紧密地保留人类的“声音”和风格。但当被要求从头开始创作时,AI 生成的故事听起来与人类通常的写法截然不同。这表明,AI 擅长润色人类的作品,但其自然的“原生”风格与我们是非常不同的。
4. “思考过程”(推理)
最后,研究人员窥探了 AI 的“大脑”,看看它是如何解决问题的。他们检查了 AI 是否真的使用了正确的逻辑步骤(算法)来解开谜题。
- 发现: AI 经常猜错逻辑步骤。它会尝试使用“暴力破解”法(尝试每一扇门),而实际上需要的是一把“智能钥匙”(特定的算法)。
- 语言差异: AI 在编写 C/C++ 时,表现得更像是一个逻辑谜题求解器;而在编写 Python 时,则更像是一个实用的程序员。
- 难度因素: 只有当问题非常难时,AI 似乎才会“苏醒”并展现出其最佳的推理能力。对于简单的问题,它通常只是在瞎猜。
大局观
论文总结道,我们正在见证一场编程领域的文化变革。这不仅仅是 AI 在编写代码,更是 AI 在微妙地重塑人类编写代码的方式。正如一种新的时尚潮流可以改变每个人的穿着方式一样,AI 的存在正推动着人类开发者向一种更具描述性、标准化且“对 AI 友好”的风格靠拢。
研究人员警告说,虽然这可能会使代码更易读,但也意味着编程中独特的“人类指纹”正开始与机器的风格融合,我们需要意识到这种转变。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。