帝国科维模型可能是有史以来最大的软件错误

2020-05-16 23:21:51

在代价高昂的软件错误史上,“水手1号”可能是最臭名昭著的。1962年,这艘无人驾驶航天器在从卡纳维拉尔角发射几秒钟后就被摧毁了,当时由于一行不可靠的代码,它危险地偏离了航线。

但没有人死亡,唯一的打击是美国宇航局的预算和自豪感。帝国理工学院对冠状病毒的非药物干预建模,帮助说服英国和其他国家实施严厉的封锁,将取代失败的金星太空探测器,并可能作为有史以来最具破坏性的软件错误载入史册,无论是经济成本还是生命损失。

自从帝国理工学院的微观模拟模型发表以来,我们这些对软件开发有专业和个人兴趣的人一直在研究代码,政策制定者根据这些代码做出了决定性的决定,封存了我们数万亿英镑的经济,并使数百万人陷入贫困和困境。我们对我们的发现深感不安。这个模型似乎完全不可靠,你不会拿自己的生命去冒险。

不过,首先,我想就我们的资历说几句话。我是总部设在硅谷和谢菲尔德的全球大数据软件领先者万迪斯科的创始人兼首席执行官大卫·理查兹。我的合著者是WANdiso建筑副总裁Konstantin‘Cos’Boudnik博士,他是分布式计算17项美国专利的作者,也是Apache Hadoop框架的资深开发者,该框架允许计算机使用海量数据解决问题。

帝国理工学院的模型似乎基于一种名为Fortran的编程语言,这是20年前的老新闻,你猜怎么着,它是水手1号使用的代码。这种过时的语言在语法和赋值方式上存在固有问题,这可能会导致多个设计缺陷和数字不准确。仅帝国模型中的一个文件就包含15,000行代码。

试着解开那个纠结的、杂乱无章的烂摊子,它看起来更像一碗天使头发的意大利面,而不是一段精心调整的程序。行业最佳实践将改为使用500个单独的文件。在我们的商业现实中,我们会因为开发这样的代码而解雇任何人,任何依赖它来生产软件以供销售的企业都可能破产。

这种方法忽略了被广泛接受的计算机科学原则,即关注点分离,这些原则可以追溯到70年代初,对成功的软件系统的设计和架构至关重要。这些原则防止了开发人员所说的CACE:改变任何东西都会改变一切。

如果没有这种分离,就不可能对单个部件进行严格的测试,以确保整体的充分工作秩序。测试可以提供保证。这就是你在汽车工厂的传送带上做的事情。每个组件都经过完整性测试,以通过严格的质量控制。

只有到那时,这辆车才被认为可以安全上路。因此,帝国理工学院的模型很容易基于相同的初始参数集产生截然不同且相互冲突的输出。在不同的计算机上运行它,您可能会得到不同的结果。换句话说,它是不确定的。

因此,它从根本上是不可靠的。它尖锐地提出了一个问题,即为什么我们的政府在吞下帝国的药方之前没有征求另一种意见。

归根结底,这是一个计算机科学问题,房间里的计算机科学家在哪里?我们的领导人没有计算机科学的基础来挑战这些想法,所以很容易受到学术界的影响。我怀疑政府看到了意大利医院不堪重负的情况,惊慌失措。

它选择了钝器而不是手术刀,现在将给社会带来巨大的压力。帝国模型的捍卫者认为,因为问题-全球大流行-是动态的,那么解决方案应该具有相同的随机、非确定性性质。

我们不同意。在给定相同的初始参数集的情况下,模型必须能够通过产生相同结果的基本科学测试。否则,根本无法知道它们是否可靠。

事实上,许多全球行业成功地使用了考虑随机性的确定性模型。没有任何外科医生会在知道起搏器是基于一种可以说是不可预测的方法的情况下给心脏病患者安装起搏器,因为他们担心危及希波克拉底的誓言。当我们国家的整体福祉岌岌可危的时候,政府究竟为何要信任同样的人呢?

大卫·理查兹(David Richards),万迪斯科的创始人兼首席执行官,康斯坦丁·布德尼克博士(Dr.Konstantin)是该公司负责建筑的副总裁。

每日电讯报重视您的评论,但恳请所有帖子都是主题、建设性和尊重的。请检查我们的评论政策。