← 最新论文
💻 computer science

A Study of LLMs' Preferences for Libraries and Programming Languages

该研究首次实证分析了大语言模型在代码生成中对库和编程语言的选择偏好,发现模型倾向于过度依赖流行库(如 NumPy)并默认选择 Python,往往忽视任务的最优性,从而凸显了针对性微调与评估基准改进的必要性。

原作者: Lukas Twist, Jie M. Zhang, Mark Harman, Don Syme, Joost Noppen, Helen Yannakoudakis, Detlef Nauck

发布于 2026-04-09
📖 1 分钟阅读☕ 轻松阅读

原作者: Lukas Twist, Jie M. Zhang, Mark Harman, Don Syme, Joost Noppen, Helen Yannakoudakis, Detlef Nauck

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是在给现在的“编程 AI 助手”(大语言模型,LLM)做了一次**“体检”,专门检查它们在写代码时,“选工具”和“选语言”**的习惯。

想象一下,你请了一位非常聪明的**“全能管家”**(AI)来帮你装修房子(写代码)。你只告诉他:“我想建个厨房”或者“我想建个车库”,却没说具体要用什么材料或风格。

这篇研究就是看看,这位管家在没被具体指令的情况下,会下意识地做出什么选择。结果发现,这位管家有点**“太保守”“太随大流”**了。

以下是用通俗语言和比喻对论文核心内容的解读:

1. 核心发现:管家有严重的“路径依赖”

📚 关于“选工具”(库的选择):只认老牌子,不看新网红

  • 现象:当你让 AI 写数据处理或画图表的代码时,它几乎无脑地选择 NumPyPandasMatplotlib 这几个老牌工具。
  • 比喻:这就像你让管家去买个**“切菜板”。哪怕你只是切个苹果,他也会从仓库里搬出一套重型工业级切菜机**(NumPy),因为这是他最熟悉的工具。
  • 问题
    • 过度使用:在高达 45% 的情况下,根本不需要用这些重型工具,AI 却非要加上。这就像用挖掘机去挖一个花盆,既浪费资源又显得笨重。
    • 忽视新工具:市面上有很多更新、更快、更轻量的新工具(比如 PolarsPandas 快两倍),但 AI 几乎完全忽略它们。它就像个固执的老厨师,只肯用那把用了 20 年的旧菜刀,拒绝尝试新出的智能刀具。

🗣️ 关于“选语言”(编程语言的选择):死磕 Python,不管适不适合

  • 现象:无论任务是什么,AI 首选 Python 语言。
  • 比喻:这就像你让管家去**“造一辆赛车”(需要高性能、低延迟的任务,比如高频交易或系统底层开发),或者“造一座摩天大楼”**(需要高并发、多线程)。
    • Python 的特点:就像一辆舒适但跑得慢的家用轿车,适合日常买菜、接送孩子(写脚本、数据分析)。
    • Rust/C++ 的特点:那是F1 赛车重型卡车,速度快、控制精准。
  • 结果:即使任务明确要求“高性能”或“低延迟”,AI 在 58% 的情况下依然给你开了一辆家用轿车(Python)去跑 F1 赛道。更离谱的是,在需要高性能的场景下,它一次都没用过 Rust 这种高性能语言。

2. 为什么会出现这种情况?

论文认为,这就像管家**“读的书太多,但太单一”**:

  • 训练数据偏差:AI 是在海量的互联网代码(主要是 GitHub)上训练的。因为 Python 和那些老牌库在网络上太常见了,AI 就以为“这就是全世界”。
  • 缺乏判断力:AI 并没有真正理解“什么任务适合什么工具”,它只是在模仿它见过的概率最高的组合。它像是一个只会背“标准答案”的学生,遇到新题型就只会套用旧公式。

3. 一个有趣的“精神分裂”现象

研究发现,AI 在**“嘴上说的”“手上做的”**经常不一致:

  • 嘴上:如果你问它“建赛车用什么语言好?”,它会很专业地回答:“当然要用 C++ 或 Rust 啊,Python 太慢了。”(它知道正确答案)。
  • 手上:当你真的让它写代码时,它转头就给你写了 Python。
  • 比喻:这就像一位美食评论家,嘴上能头头是道地分析“为什么这道菜应该用松露”,但真让他下厨,他却只会做番茄炒蛋,因为他最习惯做这个。

4. 这对我们意味着什么?(利弊分析)

✅ 好处(利):

  • 省心:对于新手或快速原型开发,AI 默认选 Python 和成熟库,能让人快速上手,代码也容易看懂,就像大家都用一样的工具,维修起来方便。
  • 稳定:老牌工具通常很稳定,不容易出大错。

❌ 坏处(弊):

  • 性能瓶颈:如果你真的需要高性能(比如做游戏引擎、高频交易),AI 给你的 Python 方案可能会慢得像蜗牛,甚至根本跑不起来。
  • 扼杀创新:如果所有 AI 生成的代码都用同样的旧工具,那么新的、更好的工具就永远没人用,整个软件生态会变得千篇一律,缺乏多样性。
  • 误导用户:很多不懂技术的用户会盲目相信 AI 的选择,结果买错了“车”或“工具”,导致项目失败。

5. 总结与建议

这篇论文告诉我们:现在的 AI 编程助手,虽然很聪明,但在“做技术选型”上有点“懒”和“盲从”。

  • 给开发者的建议:不要完全听 AI 的。如果你知道你的项目需要高性能,要主动告诉 AI:“请用 Rust 或 C++ 写”,或者检查它是否用了不必要的重型库。
  • 给 AI 开发者的建议:需要给 AI 吃更多的“新食谱”(多样化训练数据),并教它根据任务特点做更明智的选择,而不是只会背“标准答案”。

一句话总结
现在的 AI 写代码,就像是一个只会开家用车的司机,不管你是要去送快递、跑赛车还是搬砖,他都会把你塞进那辆熟悉的家用轿车里,并告诉你:“这车最舒服,大家都这么开。”我们需要教会他,“看菜吃饭,量体裁衣”

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →