为什么脚本语言使用弱类型?

时间:2017-01-25 15:01:48

标签: scripting compilation interpreted-language

使用Javascript已经有好几年了,最近我一直在使用lua。

我唯一喜欢这些语言的是他们使用弱打字。而且我想知道是否有人有好的答案;的为什么

我个人看到的方式,没有任何优势。我的同事提出这可能是因为强类型需要进行大量的类型检查,因此会对性能造成太大影响。但作为对编译器如何工作有点遗忘的人,我很难接受这种解释。

(对不起,如果这是一个愚蠢的问题,我见过similar discussion here,但我不同意问题和答案。使用强类型的语言原型设计就像这样容易。)

2 个答案:

答案 0 :(得分:0)

动态(运行时)类型检查 会导致性能下降。请记住,像C ++,Java和C#这样的编译语言可以在编译时强制执行类型系统(例如,如果您编写的代码违反了它甚至无法编译的类型系统,那么运行时间会少得多),这使您可以跳过很多运行时类型检查,否则你将不得不这样做。在脚本语言中没有这样的机制,所以你必须做额外的检查。

答案 1 :(得分:0)

除性能影响外,类型检查需要一组相当复杂的规则,实现者和用户必须(在某种程度上)必须理解这些规则。即使对于知道他们正在做什么的高级用户而言,严格的类型检查也会妨碍方便,并且通常能够忍受甚至感谢他们的一些变量的类型检查。实际上,一些现代脚本语言现在为想要它的用户提供可选的类型检查。