← 最新论文
💻 computer science

A Study of Scientific Computational Notebook Quality

该研究通过分析 2024 年《自然》杂志 1239 篇论文中的代码可用性声明,构建了包含 518 个代码仓库的语料库,发现科学计算笔记本普遍存在难以复现、代码重复及状态管理混乱等质量问题,凸显了改进工具与抽象以推动可复现、可读且可重用科学软件的紧迫性。

原作者: Shun Kashiwa, Ayla Kurdak, Savitha Ravi, Ridhi Srikanth, Angel Thakur, Sonia Chandra, Jonathan Truong, Michael Coblenz

发布于 2026-03-25
📖 1 分钟阅读☕ 轻松阅读

原作者: Shun Kashiwa, Ayla Kurdak, Savitha Ravi, Ridhi Srikanth, Angel Thakur, Sonia Chandra, Jonathan Truong, Michael Coblenz

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

这篇论文就像是一次对科学家们的“数字实验室笔记本”(Jupyter Notebooks)进行的“体检”。

想象一下,科学家们在研究新发现时,不再只是用传统的纸质笔记本记录实验步骤,而是用一种叫 Jupyter Notebook 的电脑软件。这种软件很棒,它能把代码(指令)、文字(解释)和结果(图表)像做三明治一样夹在一起,让其他人能看懂他们是怎么得出结论的。

但是,作者们(来自加州大学圣地亚哥分校的研究团队)发现,虽然这些“数字笔记本”很流行,但质量却让人非常担心。他们检查了 2024 年发表在顶级期刊《Nature》上的所有论文,收集了 518 个代码仓库,发现了很多问题。

为了让你更容易理解,我们可以把这篇论文的研究发现比作检查一家餐厅的“后厨”

1. 核心问题:后厨太乱了,别人进不去(可复现性差)

比喻:想象你是一家餐厅的老板,你想让另一位厨师完全按照你的食谱做出一模一样的菜。

  • 现状:作者们尝试运行了 19 个科学家的“食谱”(代码),结果只有 2 个能成功做出来
  • 原因
    • 缺食材:很多食谱里写着“放入 500 克牛肉”,但根本没把牛肉(数据文件)放在盘子里,或者没告诉别人去哪里买。
    • 工具不匹配:食谱里说“用 A 牌烤箱”,但别人家里只有 B 牌,或者软件版本太老,根本打不开。
    • 结论:科学界引以为傲的“可重复性”(别人能复现你的结果)在这些笔记本里几乎不存在。

2. 笔记写得太少,像天书(可读性差)

比喻:一本好的实验笔记应该像导游解说词,告诉游客(其他科学家):“我们现在到了哪里,为什么要走这条路,看到了什么风景。”

  • 现状:科学家们的笔记里,文字(Markdown)非常少。
    • 大部分文字只是简单的标题(比如“第一步”、“第二步”),或者只是解释代码在干嘛(比如“这里在计算平均值”)。
    • 缺少的:很少解释“为什么要这么做”、“这个结果意味着什么”或者“背后的科学故事”。
  • 对比:如果是为了教别人(演示用的笔记),写得还不错;但如果是为了记录自己的发现(研究用的笔记),大部分就像只有代码没有灵魂的“机器语言”,外人根本看不懂。

3. 疯狂复制粘贴,像拼凑的乐高(代码克隆)

比喻:想象一个厨师在做 10 道菜,每道菜都要切洋葱。

  • 现状:他不是在同一个地方切好洋葱分装,而是在每道菜的操作台上都重新切一遍
  • 问题
    • 科学家们在不同的地方重复写一模一样的代码(比如画图、处理数据)。
    • 这就好比如果以后要改“切洋葱”的方法,他得在 10 个地方都改一遍,很容易漏掉,导致出错。
    • 虽然复制粘贴在探索新想法时很快,但长期来看,这让代码变得又乱又难维护

4. 变量像“幽灵”,到处乱跑(状态纠缠)

比喻:这是最复杂的一个问题。想象你在玩一个多人在线游戏,你的角色(变量)的状态(比如血量、位置)会随着你点击不同的按钮而改变。

  • 现状:在 Jupyter 笔记本里,科学家可以不按顺序运行代码块。
    • 比如,你可以先运行“第 10 步”,再运行“第 1 步”。
    • 这导致数据(变量)的状态变得非常混乱。就像你在游戏里,还没买装备(定义变量),就已经开始打怪(使用变量)了,或者装备在很远的地方被偷偷换了。
  • 后果:这种“纠缠”让代码很难理解。你想修改其中一小部分,结果发现它依赖着远处某个你看不见的变量,一改动,整个程序就崩了。

总结:我们需要什么样的新工具?

这篇论文并不是要批评科学家,而是指出:现有的工具(Jupyter)虽然灵活,但太像“草稿纸”了,不适合做严谨的科学研究

作者们建议未来的工具应该像这样:

  1. 像“智能厨房”一样:自动检查缺不缺食材(数据),自动安装合适的工具(依赖管理)。
  2. 像“结构化日记”一样:强制或引导科学家写下“为什么这么做”,而不仅仅是“做了什么”。
  3. 像“模块化积木”一样:鼓励把重复的代码变成标准的“积木块”(函数),而不是每次都重新切洋葱。
  4. 像“交通规则”一样:防止变量在代码里“乱跑”,确保代码是按顺序、可预测地执行的。

一句话总结
科学家的代码就像是在没有地图、没有说明书、且经常乱跑的情况下开车。虽然偶尔能到达目的地,但大部分时候不仅容易迷路,还很难让其他人跟着开。我们需要更好的“导航仪”和“交通规则”,让科学发现真正变得透明、可靠且易于分享。

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

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

试用 Digest →