从哲学看程序设计法

引入

程序设计法(Programming paradigm)提供并决定了程序员对程序执行的看法。编程的本质是人通过符号学秩序去刻画并改造世界。因此,从哲学的高度去看程序设计法,有助于我们更好的认知和实践。

其「场域」是计算机,「主体」是人,「客体」是世界,「目的」是改造世界。

何为计算机?

可以执行计算的机器。关键词

计算:计算量,抽象性,完备性

机器:计算能力,具体性,局限性

人如何与计算机交互?

通过既定的符号秩序和计算机交互。

符号秩序(编程语言)

  • 数理逻辑抽象性
  • 体系结构可见性
  • 现实映射难易性

好的编程语言可以在所适用的场景下实现三者的最佳平衡。

程序设计法

面向过程编程

世界观:一切都是数据和计算

方法论:通过计算操作数据

价值观:偏重机器,偏重可实现和高性能

好处是

  • 贴近计算机的本质,容易实现
  • 看得到体系结构,获得高性能

坏处是

  • 映射现实的方式更贴近机器,认知负担大

面向对象编程

世界观:一切都是对象和关系

方法论:通过对象方法操作对象和关系

价值观:偏重人,偏重更自然的刻画世界

好处是

  • 映射现实的方式更贴近人的认知规律,即主客体与运动,更容易刻画复杂的事物

坏处是

  • 远离计算机本质,抽象性更高,额外计算开销大
  • 更不易看到体系结构,无法获得高性能

函数式编程

世界观:一切都是函数和函数运算

方法论:通过函数运算操作函数

价值观:偏重数学,偏重极度简洁和高度抽象性

好处是:

  • 贴近数理逻辑,抽象性高,操作细节的复杂度低

坏处是:

  • 看不到体系结构,实现开销大
  • 使用数学来映射现实,对认知能力具有极高的要求

发表评论

为防机器,验证码请直接输入4个数字1

*