标题:开放计算机程序的必要性:促进科学研究的可复现性
随着计算机科学在科学研究中的应用日益广泛,开放源代码的议题也变得越来越重要。Darrel C. Ince、Leslie Hatton和John Graham-Cumming在《自然》杂志上发表的文章《开放计算机程序的必要性》深入探讨了这一问题,并强调了开放源代码对于科学研究可复现性的重要性。
文章首先指出,尽管现在人们普遍认同应当在请求时提供数据,但关于软件可用性的现行规定却不一致。作者们认为,除了一些特殊情况外,对于依赖计算得出的科学结果,不发布源程序是无法容忍的。硬件、软件和自然语言的不确定性始终意味着完全复现的结果难以保证,但保留代码只会增加复现结果失败的可能性。
文章进一步阐述了计算科学的兴起为科学进步带来了前所未有的机遇。强大的计算机使得过去认为几乎无法解决的理论得以研究,坚固的硬件技术允许在最不适宜的环境中收集数据,更多的数据被收集,以及越来越丰富的软件工具现在可用于分析计算机生成的数据。然而,复现性的问题仍然存在,即复现科学论文的核心发现,而不是精确复制每个具体的数值结果到小数点后几位。
作者们提出,我们应该在开放的计算机程序或代码的背景下审视复现性问题。他们认为,除了一些例外情况,对于任何依赖计算的科学结果,不发布实际源代码是不可辩护的,因为不发布这样的代码会增加不必要的、令人困惑的复现障碍。目前,关于发布与科学实验相关的计算机程序的辩论仍在进行中,政策从强制完全发布到仅发布自然语言描述不等。
文章还讨论了代码透明度的辩论,涉及科学哲学、错误验证和研究伦理等方面。但作者们的论点更加实际:通过关注代码的剖析和理解,可以最好地推进复现性。直接复现性指的是在不同的硬件和系统软件组合上重新编译和运行代码,以检测编程语言中发现的数值计算和解释问题。没有代码,直接复现性是不可能的。间接复现性指的是独立努力验证整个代码包之外的内容,例如方程的子集或特定的代码模块。
文章强调,尽管互联网设施的爆炸性增长和计算速度及数据处理能力的快速提升带来了不可否认的好处,但关于代码发布的辩论应尽快解决,以便充分利用我们的新技术能力。单独的更精细的计算网格、更长更复杂的计算和更大的数据集——尽管对科学研究人员非常有吸引力——并不能解决潜在的计算不确定性,甚至可能加剧这些问题。
作者们还指出,程序描述中的歧义是一个严重问题。自然语言描述的歧义性导致一个给定的自然语言描述可以以多种方式转换为计算机代码,每种方式都可能导致不同的数值结果。编程错误、科学软件的数值属性错误以及编程语言的一些国际标准化版本中众所周知的歧义,都是导致结果不确定性的因素。
文章最后提出了一些解决方案,包括期刊采用标准来声明与科学论文相关的源代码可访问性程度,以及研究资助机构应该委托开发工具,使代码能够与其他科学研究成果元素(如数据、图形显示和文章文本)集成等。
这篇文章为开放计算机程序的必要性提供了有力的论据,并为如何实现这一目标提供了实际的建议。通过推动开放源代码,我们可以确保科学研究的透明度和可复现性,从而提高研究质量和可靠性。