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

新闻 前端
2019 年,法国国家信息与自动化研究所(INRIA)的 Nicolas Rougier 和国家科学研究中心(CNRS)的 Konrad Hinsen 发起了一个项目。

2019 年,法国国家信息与自动化研究所(INRIA)的 Nicolas Rougier 和国家科学研究中心(CNRS)的 Konrad Hinsen 发起了一个项目:Ten Years Reproducibility Challenge,邀请科学家重新运行十年前或更早时间写的代码。有 35 名科学家参与了挑战,结果陆续发表在《ReScience C》期刊上。

科学家使用的语言从 C 和 R 到 Mathematica 和 Pascal,还有人重复的不是代码而是分子模型,编码在 Systems Biology Markup Language (SBML)中。参与者意识到,曾经他们以为能牢牢记住的东西其实一个月内就会开始遗忘,要让代码能重复运行他们需要记录相关的信息,比如使用的参数值。Rougier 本人再现的代码需要软盘和 Apple II 电脑,电脑不是问题,他的办公室里就有一台。意大利科学家 Sabino Maggi 在 1995 年使用 Fortran 语言建模了超导装置约瑟夫逊结,用微软的 VB 处理结果。Fortran 语言几十年来基本没变,编译代码没有遇到问题。问题是 VB。VB 早就死亡了,它就被 Visual Basic.NET 取代了,两者之间的共同之处就是它们的名字。为了运行代码,他在 Mac 上创建了虚拟环境,加载了 Microsoft DOS 6.22 和 Windows 3.11,以及从网上下载的 VB,他承认安装私有软件可能存在合法性问题,表示当年他写代码的是时候有合法授权。另一个问题是他不记得 VB 的版本了。反直觉的一个现象是参与者发现旧的语言更容易再现,原因是新语言 API 和库的变化可能会导致旧代码不能正常运行,但旧的语言已经停止变化,因此几十年都能保持一致。刚刚停止支持 Python 2.7 被认为就是不再变化的高级编程语言。

 

责任编辑:张燕妮 来源: solidot
相关推荐

2020-09-10 15:05:48

代码开发工具

2019-10-11 18:24:02

网站门户网站互联网

2010-08-31 16:22:57

2019-12-25 14:33:15

5G革命通信

2021-07-12 08:53:21

互联网 行业数据

2014-09-26 11:40:06

2019-09-09 15:35:40

互联网百度微博

2018-04-28 15:42:46

iPhone XiPhone苹果

2021-01-16 08:05:30

Windows微软互联网

2020-02-11 15:32:59

2022-12-07 15:36:20

日系车智能电动汽车

2022-11-03 14:13:24

腾讯科学家

2020-08-03 10:37:01

Python编程语言工具

2017-08-04 15:53:10

大数据真伪数据科学家

2018-08-02 16:21:18

路由器

2011-06-16 09:34:54

Mac OS十年

2018-08-20 19:24:40

数据科学数据清理数据分析

2020-08-16 13:00:34

操作系统计算机人机交互

2015-08-17 09:45:15

开发游戏

2015-08-17 08:56:45

二十年前游戏开发开发
点赞
收藏

51CTO技术栈公众号