当前位置: 首页 > 科技观察

科学家的挑战:十年前写的代码现在还能否运行

时间:2023-03-22 12:21:54 科技观察

科学家的挑战:十年前写的代码还能运行吗?十年再现性挑战邀请科学家重新运行十年前或更早编写的代码。35位科学家参与挑战,结果发表在《ReScience C》期刊。科学家们使用的语言范围从C和R到Mathematica和Pascal,其他人使用的不是代码,而是分子模型,以系统生物学标记语言(SBML)编码。参与者意识到,他们认为自己牢牢记住的东西实际上会在一个月内开始忘记,为了让代码反复运行,他们需要记录相关信息,例如使用的参数值。Rougier自己复制的代码需要软盘和AppleII计算机,这不是问题,因为他办公室里有一台。意大利科学家SabinoMaggi于1995年用Fortran语言对超导器件约瑟夫森结进行建模,并用微软的VB对结果进行处理。Fortran语言几十年来基本保持不变,编译后的代码也没有问题。问题是VB。VB早就死了,取而代之的是VisualBasic.NET,两者的共同点就是名字。为了运行代码,他在Mac上创建了一个虚拟环境,加载了MicrosoftDOS6.22和Windows3.11,并从网上下载了VB。他承认安装专有软件可能存在合法性问题,并称他编写代码时已获得合法授权。还有一个问题就是他记不住VB的版本。一个违反直觉的现象是,参与者发现旧语言更容易复现,因为新语言API和库的变化可能导致旧代码无法正常工作,但旧语言已经停止变化,因此可以保持几十年的一致性。只是停止支持Python2.7被认为是一种不会改变的高级编程语言。