“范式”=“一种理论体系”
编程范式是程序语言背后的思想。代表了程序语言的设计者认为程序应该如何被构建和执行。常见的编程范式有:过程式、面向对象、函数式、泛型编程等。
一些编程语言是专门为某种特定范式设计的,例如,
C 语言是过程式编程语言;
Smalltalk 和 Java 是较纯粹的面向对象编程语言;
Haskell、Scheme、Clojure 是函数式编程语言。
另外一些编程语言和编程范式的关系并不一一对应,即支持多种编程范式的编程语言——“多范式编程语言”,例如,
Python、Scala、Groovy 同时支持面向对象和一定程度上的函数式编程。
Swift 即支持面向对象编程范式,也支持函数式编程范式,同时还支持泛型编程。Swift 支持多种编程范式是由它的目标决定的。Swift 创造的初衷就是提供一门实用的工业语言。不同于 Haskell 这类出自大学和研究机构的具有学术性质的编程语言。苹果推出 Swift 时就带着着明确的商业目的:Mac OS 和 iOS 系统的主要编程语言 Objective-C 已显老态,Swift 将使得苹果系统的开发者拥有一门更现代的编程语言,从而促进苹果整个生态圈的良性发展。
由于代表了语言背后的思想,编程范式很大程度上决定了语言会呈现为何种面貌。用不着深入学习,仅仅浏览代码,就能发现 Scala 和 Swift 很类似,这是因为它们支持的编程范式是类似的;Scheme 和 Swift 看起来就相差很远,这是因为它们支持的编程范式很不一样。对于理解一门编程语言而言,相对于语言的语法和编写经验,理解语言的编程范式更重要。因为,就像看一本书,琢磨作者如何用词,如何构建章节是很重要,但更重要的是理解书所要表达的思想。