Cocoaphony译者
苏本如,责编
夕颜封图
CSDN下载自视觉中国出品
CSDN(ID:CSDNnews)
自从Swift问世以来,我一直看到一些奇怪的评论,认为Swift是一种函数式编程语言。我有点纳闷为什么有人会这么说,因为Swift几乎没有什么“函数”。它是一种非常传统的面向对象语言,着重于泛型编程。
我的推测是,人们使用一个特性列表来确定一种语言的范式。但我们使用范式这个词是有原因的。
范式——以某一特定科学科目的理论和方法论为基础的一种世界观。
“一种世界观。”是的,这就是它的本质所在。
编程语言范式很像音乐流派。它们是混乱的东西,我们可以争论在哪里画线,什么去哪里,什么是纯粹的以及什么是融合。但就像古典吉他和重金属属于不同的流派一样,即使他们都使用吉他。
我有些朋友说他们对音乐很有鉴赏力。他们标榜自己听“一切”的音乐。从JimmyBuffet的乡村摇滚到Metallica的重金属音乐,这些乐队演奏的所有音乐他们都喜欢。许多程序员也是如此。他们只知道过程编程和面向对象编程的范式。他们认为BASIC和Java之间的区别就是所有语言之间的区别了。当他们遇到一种新的语言时,他们的第一个问题是“它的语法是什么?”?但是我认为他们的问题应该是“它是如何看待问题的?”
我现在要说很多关于编程范式的事。像音乐流派一样,有很多观点和方法可以对音乐进行分类。我的方法不是唯一的方法。但是有些方法比其他方法更加有用。我想表达的是,因为它们都有map而将Swift和Haskell归为一类编程语言的分类法,并不比因为它们都有vocalists而将Wangga、Opera、和Rock归为一类编程语言的分类法更有用处。
过程式(或命令式)编程主要