为什么 python 不能由很多人或长时间构建和维护?



以下语句摘自John Guttag的Introduction to Computation and Programming Using Python

Python是一种可以有效使用的通用编程语言来构建几乎任何不需要直接访问的程序计算机的硬件。Python并不适合具有高属性的程序可靠性约束(因为它的弱静态语义检查)或由许多人或在很长一段时间内建造和维护的因为静态语义检查很弱)。

黑体字的句子似乎很模糊,谁能提供好的解释或例子?

?

Python使用动态类型。也就是说,只有在运行时才能确定地知道对象的类型。

这样做的结果是,要知道一段代码使用了正确的数据类型,唯一的方法就是运行它。因此,测试变得非常重要。但是测试程序中所有的代码路径可能需要很长时间。

当许多人在一个程序上工作了很长时间,因为很难让开发人员编写文档和构建一致的接口,所以这个问题会加剧,所以你最终只有有限的人知道应该使用什么类型,每个人都花了很多时间等待测试运行。

然而,作者的观点过于悲观。许多公司拥有大型Python代码库,并且能够通过拥有广泛且昂贵的测试套件和随叫随到的快速响应团队来做到这一点。

例如,Facebook有数亿行代码,其中21%是Python(截至2016年)。有了这种水平的预先存在的投资,在短期内,开发使Python更安全的方法比将代码迁移到新语言(如Julia或Rust)要便宜得多。

我们可以在生态系统中看到这一点。

Python已经被修改,通过引入类型注释来解决类型问题。虽然这些不是在运行时强制执行的,但它们提供了对类型安全的快速(实时)检查,这大大减少了对测试的依赖,并且可以使用Pyre和mypy等工具来强制执行接口。这使得作者讨论的那种大型Python代码库更易于管理。

相关内容

最新更新