从宏观的语言层面来说,编程语言类型共分为两大类:静态语言(又叫强类型语言)与动态语言(又叫弱类型语言)。静态语言通常是低级(底层)语言,动态语言一般为高级(应用)语言,静态语言运用通常是通过编译器,而动态语言解释器。
动态语言
动态语言即脚本语言又叫弱类型语言(严格的来说不算编程语言),依靠解释器解释运行(解释器不会做任何的代码优化的),每次运行每次解析。这样编译运行机制,让其在运行效率上与静态语言相比会差一大截,毫不避讳的说动态脚本语言在性能上与静态编程语言相比,望尘莫及,毕竟是低级语言vs高级语言,动态语言在性能上丝毫不占任何优势。
但(重点来,敲黑板),动态语言其自身定位和设计之初就不是追求极致性能的(如果是这样的话动态语言也没必要出现了),动态语言就是为弥补静态编程语言的缺陷而生的,它的特性和静态语言刚好相反:方便快捷无需编译解释运行(方便调试,节省时间)、所见即得的代码逻辑、静态语言无可比拟的超高的开发效率(重点,核心竞争力,脚本语言的特点之一)、变量无需预先定义/无需声明数据类型即可使用、变量可随着程序的运行动态改变数据类型。
优点:
- 方便快捷无需编译解释运行(方便调试,节省时间)
- 开发效率高、开发周期短、试错成本低,动态语言可快速试错,产品可快速迭代(天下武功唯不快不破),无惧需求变化(真的不怕么?相对静态语言来说好太多,毕竟开发高)
- 所见即得的代码逻辑、
- 相对静态语言,入门简单,学习容易,上手快