Dikstra说过:如果debugging是移除bug的过程,那打代码一定是把bug们放进去的过程。
编程语言如果按照类型检查分类可以分为两种static typing静态类型 和 dynamic typing动态类型
其中Java,C/C++,C#,Golang等为静态。动态类型有Python,Ruby,PHP,JavaScript,VBScript等
按照强弱定义(Explicit type conversion/Implicit type conversion)分类的话,强定义类型是C/C++,Java,C#,Python,.弱定义有PHP,ASP,Ruby,ABAP,SQL,JaaScript,Unix Shell
动态类型语言就是运行时才做数据类型检查,永远不用给任何变量制定数据类型。该语言会在第一次赋值给变量时,在内部将数据类型记下。
静态类型语言就是在编译期就做检查数据类型的语言。要在写程序的时候生命所有的数据变量,是固定的。
程序都有需要进行对错误的检查。
强弱定义即是否类型安全。强定义类型定义语言是强制数据类型定义的语言。一旦一个变量被指定了某个数据类型,如果不经过强制转换,那它永远都是这个数据类型。
弱定义类型定义语言则是数据类型可以被忽视。
静态类型在编译时期时,就能可靠地发现类型错误。因此通常能增进最终程序的可靠性。静态类型通常可以编译出速度较快的代码。当编译器清楚知道所要使用的资料类型,就可以产生最优化过后的机器代码。
静态类型允许构造函数库,它们的用户不太可能意外的误用。这可作为传达库开发者意图的额外机制。
动态类型允许编译器和解译器更快速的运作。因为源代码在动态类型语言中,变更