0. 常见移动端编程语言分类

  • Objective-C - 静态类型语言、强类型语言、编译型语言

  • Swift - 动态类型语言、强类型语言、编译型语言

  • Java - 静态类型语言、强类型语言、解释型语言

  • Kotlin - 静态类型语言、强类型语言、解释型语言

  • JavaScript - 动态类型语言、弱类型语言、解释型语言

  • Dart - 动态类型语言、强类型语言、编译型语言

1. 动态类型语言 vs 静态类型语言

动态类型语言

动态类型指的是在创建一份数据(变量、参数、返回值等)时不需要指明该数据的类型,只在运行期间才去做数据类型检查的语言。通常情况下,这些数据的类型会随着值的改变而改变,给数据赋予不同的值,数据将得到不同的类型。

对于动态类型语言来说,类型是推断出来的,甚至可以在程序运行期间更改。

常见的动态类型编程语言有 Swift、JavaScript、Dart、PHP、Python、Ruby 等。

静态类型语言

静态类型指的是在创建一份数据(变量、参数、返回值等)时需要显式指明该数据的类型。通常情况下,这些数据的类型一旦被定义,在程序的整个生命周期也不再改变。

对于静态语言来说,类型是在创建时已经定义确定的,之后无法改变。

常见的静态类型编程语言有 Objective-C、Java、Kotlin、C/C++、C#、Go 等。

2. 强类型语言 vs 弱类型语言

强类型语言

强类型定义语言指强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

在程序执行过程中,一旦遇到数据类型定义不匹配的运算,程序直接报错而不做任何自动转换处理。

常见的强类型定义编程语言有 Objective-C、Swift、Java、Kotlin、Dart、C#、Ruby、Python 等。

弱类型语言

弱类型定义语言指数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

在程序执行过程中,执行一些与类型定义不匹配的运算时,弱类型语言尝试提供帮助,它可能会临时转换值的类型,让它符合当前运算。

常见的弱类型定义编程语言有 JavaScript、PHP、C、C++ 等。

3. 编译型语言 VS 解释型语言

编译型语言

编译型语言是指程序在执行之前需要一个专门的编译过程,把程序源文件编译为机器语言的文件,运行时不需要重新编译,执行效率高。但缺点是编译型语言依赖编译器,跨平台性差。

常见的编译型语言有:Objective-C、Swift、Dart、C、C++、Pascal

解释型语言

解释型语言是指源代码不需要预先进行编译,在运行时,要先进行解释再运行(每执行一次都要翻译一次)。解释型语言执行效率低,但跨平台性好。脚本语言都是解释型语言,此外 Java、C# 等也是解释型语言。

常见的解释性语言有:Java、Kotlin、Python、JavaScript、Erlang、PHP、Perl、Ruby、C#