源地址:
http://www.3snews.net/html/58/6358-8173.html
通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language)。
还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。
动态类型语言:在运行期间检查数据的类型的语言。用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型。如:Python和ruby就是典型动 态类型语言。很多脚本语言vbscrīpt,javascrīpt也是这类语言。看下面javascrīpt代码:
静态类型语言:相反静态类型语言是在运行前编译时检查类型。在写代码时,没声明一个变量必须指定类型。如:java,c#,c,c++等等。
public int add(int a,int b){
return a+b;
}
其实比较一下代码,你很快就会发现,其实区分动态静态类型语言从语法上就够了,语言语法格式基本就可确认动静态类型。
而Dynamic Programming Language (动态编程语言)指在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。比如:javascrīpt就是这类语言,ruby, python也属于这类语言。而c++,java不属于这类语言。看javascrīpt代码:
当然静态编程语言 是运行时不可改变结构了。
网上有人说 类型检查和改变结构 是静态语言和动态语言两个区别点。基本概念上应该就这些,是我个人理解,不一定完全正确。个人感觉没必要很清晰分门类,掌握优点、特点就好了。这个话题说开根本不是我能说清楚的。总结思考一下。
静态类型语言优点是结构非常清晰规范,方便调式,特别适用与新手开发。高校教育一般也从静态类型语言开始。所以静态类型语言特别深入人心,也很好理解。缺 点是完成个小功能,可能需要很多的代码,不便于阅读,维护。而动态语言不需要写很多类型安全代码,代码量少,一般设计都比较巧妙,很难读懂,新手很难学 习。 两类语言最大的区别是 编辑器的支持。当然很容易为静态类型语言 编写IDE。
其实最重要的是编程技巧,不要盲目的跟从技术,而要从根本上理解新的技术。从优雅性来讲,我很喜欢动态语言,也充满期望。通过对javascrīpt的研究,对ruby的了解,还有对java之流的学习,盼望我的质变过程赶快来临。