本文翻译自: What is a programming model?
作为软件工程师,我们熟悉一系列编程模型,比如命令式、函数式、声明式、或面向对象编程。
1.编程模型
编程模型或编程范式是一个概念框架,它指导和约束我们如何思考问题及其解决方案。
如同任何概念框架一样,一个编程模型是一个诸多概念及这些概念之间的诸多关系以及这些关系的诸多约束的集合。比如,在面向对象编程中,核心概念是类和类之间的继承关系。
继承关系被约束以形成有向无环图。
在选择面向对象编程语言时,该框架是我们思考问题及其解决方案的视角。在面向对象语言的语境中,这种视角甚至有一个名字:我们用它来观察问题的视角称为面向对象分析,而我们用它来观察解决方案的视角称为面向对象设计。
2.超越编程语言
然而,一个编程模型不但是由编程语言定义的,而且也被整体环境定义。函数库、框架、平台都有能力改变概念、关系和约束的集合。
比如,甚至当编写面向对象程序时,你的程序会在你增加线程时发生巨大改变。你的程序不仅成为了面向对象程序,而且它们开始成为了并发程序,改变迫使你思考与之前不同的问题和解决方案。