有很多文章声称渐进式打字本质上是缓慢的。最令人震惊的说法来自Takikawa et al (2016),该人报告渐进式程序的速度 100倍变慢。
我简直不敢相信,想确切地知道减速的来源。我可以相信Typed Racket对渐进式打字的实现速度很慢,但总的来说,渐进式打字不会那么慢。
例如,这个逐渐键入的Python程序:
x = some_fun()
y: int = x
这是不合理的,因为x
可以是int以外的其他类型。但是,如果智能编译器插入了等效的断言
x = some_fun()
assert type(x) == int
y: int = x
然后类型检查变为声音。显然,即使您在程序的各处插入数百个断言,减速100倍也是不现实的。我在这里想念什么?