由于不能出去浪,程序员开始怼科学家写的代码了……

栏目: IT技术 · 发布时间: 5年前

内容简介:今年3月以后,世界上很多国家都因为新冠疫情的肆虐封锁了边境。英国政府曾提出“群体免疫”策略,不过在参考了一些学术机构的报告后,最终采取的还是封锁隔离政策。而这些学术报告中最值得一提的,就是人们的生活随封锁发生了天翻地覆的变化。当大家不能再随意握手、拥抱,当很多礼节与风俗都需要改变甚至避免时,人们肯定想问,疫情真的有那么严重吗?疫情就像是怀疑论的温床。

今年3月以后,世界上很多国家都因为新冠疫情的肆虐封锁了边境。英国政府曾提出“群体免疫”策略,不过在参考了一些学术机构的报告后,最终采取的还是封锁隔离政策。而这些学术报告中最值得一提的,就是 英国帝国理工学院(IC)的研究报告 ,该报告建议务必实施严格的封锁。

人们的生活随封锁发生了天翻地覆的变化。当大家不能再随意握手、拥抱,当很多礼节与风俗都需要改变甚至避免时,人们肯定想问,疫情真的有那么严重吗?

疫情就像是怀疑论的温床。 英国就有一个叫做“质疑封城”(lockdownsceptics.org)的网站 ,怀疑论者们会在上面发布一些有关封锁的新闻,并刊载一些反对封锁的观点与分析。

由于不能出去浪,程序员开始怼科学家写的代码了……

“质疑封城”网站最近的文章——肥胖的人们:你们不用担心死于冠状病毒丨截图

既然不愿相信疫情的严重性,也不断否定封锁政策的价值,怀疑论者当然就要从政策所依赖的研究下手。 如果帝国理工学院的研究不再可信了,据此施行封锁还有什么道理呢?

尼尔·弗格森(Neil Ferguson)是一位数学生物学教授,在帝国理工全球传染病分析中心担任疫情建模负责人,他也是整个封锁政策的核心人物。今年5月,因封城期间被爆出破坏自己立的规矩,私会情人,弗格森教授被迫辞职。 在他陷入风波的时候,不少怀疑论者更是利用弗格森教授信用危机的机会,对他主导的研究进行批评。

这是一场“带风向”的争论

今年5月初,一名自称是谷歌前员工的人在“质疑封城”网站上发表了一篇文章, 内容是对弗格森教授疫情研究所用的代码进行评审

由于不能出去浪,程序员开始怼科学家写的代码了……

一名自称是谷歌前员工的人在“质疑封城”网站上发表了一篇文章,内容是对弗格森教授疫情研究所用的代码进行评审丨截图

帝国理工学院会把他们的研究代码上传到github。 github 是一个开放源代码、让全世界 程序员 协作编写软件的网站。 既然大家都能看到研究的代码了,那么就可以针对代码进行评审。所谓的 代码评审(code review) ,通常是程序员们你看我写的代码,我看你写的代码,互相挑错,弄完之后项目质量就会变棒棒的一种活动。

而这篇文章并没有对项目的核心部分提出什么有价值的分析与质疑,结论却是“ 只要用到这项研究代码的论文,都应该立刻被撤回 ”。这篇文章为“质疑封城”吸引了大量流量,网站月均浏览量从不到10万增长到超过40万。目前文章已经有快700条留言,其中一个用户留言说, 要去源代码所在的地方发布一个 issue ,目的呢,也是要求撤回论文。

github issue 就像社区中的帖子一样,是供大家讨论事情的, 不过得讨论项目有关的问题,尽量别跑题 。让我们先来看下这个项目之前的 issue 是什么样的:

1)某个文件第几行的代码,关于每年有多少天的变量应该是365而不是364,还有会不会其实应该是365.25?下面的回复解释了为什么要用364而不是365,大家都了解以后此 issue 被关闭。

2)某个部分的运行需要测试。回复里有人说,是的呢,但你提到的测试类型不一定合适,你有具体的测试策略吗?之后又有人提出这里有我写的测试代码,若是合适的话请合并到项目里。

也就是说, 提出一个 issue ,主要目的在于对这个项目能有所贡献 ,无论是指出它的问题,还是提出应改进的地方,之后大家围绕项目代码你给点意见我提交下代码,最后这个项目就变得更好了。

可怀疑论者发布的这个 issue 说了些啥呢?“这些代码的测试太烂了,无法用于科学目的,不符合科学方法”,“因为这项研究,几十亿人的生活被打乱”,“作为公共政策,是以此研究非常准确为前提的,这真是个灾难”,“程序员们,请签名以表赞同吧”。

由于不能出去浪,程序员开始怼科学家写的代码了……

issue:呼吁立即撤回所有以该代码库为基础的论文,请程序员们签名表示赞同。丨截图

帝国理工学院从3年前就在 github 上发布其各项研究所使用的代码,但并没有什么人看。可这样的一个 issue 一经发表,却吸引了很多不明真相的人前来围观。点击收藏此项目的人数从不到300快速增加到了接近900。

弗格森教授其实是重用了13年前用于流感大流行建模的代码,而在发布前它已经在 github 与微软的帮助下大大改进了,参与改进的人还包括传奇程序员、自由软件倡导者约翰·卡马克(John Carmack)。 13年在软件工程领域算是不短的时间,并且经过了这么多人的努力,目前的代码已经比较符合现代规范。 而事实也证明,英国政府采取帝国理工学院建议的封锁策略后,死亡人数下降为预期的1/28。

故事到此就很清晰了, 这个issue明显是要带风向 ,去否定研究得出的结论。怀疑论者是在利用程序员的身份与专业背景去挑战弗格森的研究,进而表达自己的政治诉求。他们之前就一直在指控是帝国理工学院与弗格森教授让大家倒了霉,整个西方经济都因此停滞。“ 代码发布在 github 上了?太好了,公开了就好办了,集中炮火打击 ”,这就是他们的想法。

“代码风格”很重要,却不一定影响结果

可为什么很多程序员这么容易就被人利用了呢? 因为上面提到的issue还提到了项目的代码风格很烂 ,大家一寻思,这种情况下的软件一般都问题不断。据此推测,这项研究也肯定漏洞百出了。

代码风格究竟重不重要其实在软件行业里也是一直受争论的话题。良好的代码风格,特点是使代码易读,比如一个人的名字被用作变量,那么起名叫 name 就比 x 强很多, 这不仅利于项目进行中的协作,对之后的维护工作也至关重要 。对代码风格的追求主要是因为在现代软件行业中,协作是无法避免的事儿,你写完的代码还得给其他人看,也无可避免地需要修改其他人遗留下的代码。一个项目以后再想加点什么、减点什么、改点这里、修点那里,要是看不懂可就没招儿了,这也就是对软件行业的重构有所帮助。

由于不能出去浪,程序员开始怼科学家写的代码了……

良好的代码风格,有利于项目进行中的协作,对之后的维护工作也至关重要,但不见得就跟最后的结果有直接关系。丨图虫创意

不过话说回来,很多时候,代码写得漂不漂亮也不见得就跟最后的结果有直接关系 。比如之前大火的游戏《太吾绘卷》,它的作者就不咋懂写代码,整得一团乱,但也没碍着作品创意。科研工作怎么写代码,写什么样的代码,是科研人员为了得出结论所用到的手段罢了。 这种情况下,可能过程就真没有结果那么重要。

事实上,不少重要的数学代码库都是由科研人员编写,若有意愿的话,他们有能力写出优美健壮的代码。但现实中,不少科研人员都需要迅速发表论文,这时候他们的代码在专业程序员眼中就没那么专业或者严谨了。人人都希望看到质量良好的代码,把代码公开可能是帮助其改进质量的第一步。

公开代码,需要善意的环境

在专业人员的指导下,通过专业方法,科研领域的代码风格应该会越变越好。

当然,一切的前提是善意。 都是程序员,有些呢,对缓解新冠疫情作出了自己的贡献,他们根据公开的源代码,提出问题和建议,改进项目。 可另一些呢,比如那些怀疑论者们,基本就是在添乱了。 立场和偏好会先入为主地影响对事情的判断,即使很多程序员明白代码风格不等同于软件质量或科研成果,还是会因为以上原因去攻击对方。

这些举动是很危险的,它可能会减少科学家们公开代码的动力,甚至还会使得正当的同行评审更加困难。

由于不能出去浪,程序员开始怼科学家写的代码了……

通过专业方法,科研领域的代码风格应该会越变越好,当然一切的前提是善意。丨图虫创意

每项公共政策乃至每项科学研究都可能有争议,很难让所有人满意,也很难令所有人信服。 今年的疫情或许让社会气氛变得更加紧张,什么政策都会被用放大镜检视。

其实之前英国 “气候门”(Climategate)事件就与这次反对封锁的情况有些相像。当时英国东安格里亚大学气候研究小组的邮件往来被黑客入侵,随后该小组被指控操纵数据、伪造科学流程。最终英国独立调查人员在彻底调查后指出:科研人员诚信完好,方法健全,但缺乏透明度, 建议公开所有相关的数据与代码

在此之后,公开研究使用的代码在气候学领域已被普遍实践, 那么在其他领域的科学研究中,这种举措是否值得参考 ?在今年疫情中,把相关研究的代码公开,程序员们或许也能更好地理解科研是如何进行的。与此同时,因为参与开源,所有人都可以为科研代码质量的提高贡献自己的一份力量,建议与批评也都会更加有理有据。

作者:iou90

编辑:黎小球

由于不能出去浪,程序员开始怼科学家写的代码了……

本文来自果壳,未经授权不得转载.

如有需要请联系sns@guokr.com

由于不能出去浪,程序员开始怼科学家写的代码了……


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Definitive Guide to HTML5 WebSocket

The Definitive Guide to HTML5 WebSocket

Vanessa Wang、Frank Salim、Peter Moskovits / Apress / 2013-3 / USD 26.30

The browser is, hands down, the most popular and ubiquitous deployment platform available to us today: virtually every computer, smartphone, tablet, and just about every other form factor imaginable c......一起来看看 《The Definitive Guide to HTML5 WebSocket》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具