learn-tech/专栏/左耳听风/040编程范式游记(11)-程序世界里的编程范式.md
2024-10-16 06:37:41 +08:00

68 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

因收到Google相关通知网站将会择期关闭。相关通知内容
040 编程范式游记11- 程序世界里的编程范式
这个世界到今天有很多很多的编程范式,相当复杂。下面这个图比较好地表现了这些各式各样的编程范式。这个图越往左边就越是“声明式的”,越往右边就越不是“声明式的”(指令式的),我们可以看到,函数式编程、逻辑编程,都在左边,而右边是指令式的,有状态的,有类型的。
上面这个图有点乱,不过总体说来,我们可以简单地把这世界上纷乱的编程范式,分成这几类:声明式、命名式、逻辑的、函数式、面向对象的、面向过程的。
于是我们归纳一下,就可以得到下面这个简单的图。简单描述一下,
中间两个声明式编程范式(函数式和逻辑式)偏向于你定义要什么,而不是去怎么做。
而两边的命令式编程范式和面向对象编程范式,偏向于怎么做,而不是要做什么。
我们再归纳一下,基本上来说,就是两大分支,一边是在解决数据和算法,一边是在解决逻辑和控制。
下面再给一张表格说明一下这世界上四大编程范式的类别,它们的特性和主要的编程语言。
程序编程范式。一个是左脑,一个右脑。我们程序员基本上是在用左脑,左脑是理性分析,喜欢数据证据,线性思维,陷入细节,具体化的,不抽象。但是实际上玩儿出这些东西的都在右脑,函数式,还有像逻辑式的抽象能力都在右脑。所以我们非线性的想象力都在这边,而标准化教育把我们这边已经全部干掉了,我们只剩左边。我们陷入细节,我一说 Java 是最好的程序设计语言,一堆人就来了,找各种各样的细节问题跟你纠缠。
离我们最近的是函数式编程,但既然函数式编程这么好,为什么函数式编程火不起来呢?首先,这里有个逻辑上的问题,并不是用的人越多的东西就越好。因为还要看是不是大多数人都能理解的东西。函数式编程或是声明式编程,需要的是用我们的右脑,而指令式的则需要用我们的左脑。
参看下图:
我们可以看到,
人的左脑的特性是:
理性分析型
喜欢数据证据
线性思维
陷入细节
具体化的
人的右脑的特性是:
直觉型
想象力
非线性
宏观思维
抽象化的
人类社会中,绝大多数人都是左脑型的人,而只有少数人是右脑型的人,比如那些哲学家、艺术家,以及能够创造理论知识的人。这些人在这个世界上太少了。
这是为什么很多人理解和使用声明式的编程范式比较有困难,因为这要用你的右脑,但是我们习惯于用我们的左脑,左脑用多了以后右脑就有点跟不上了。
说到人类的大脑了,已经到了不是我专长的地方了,这个话题太大了,所以,也是时候结束《编程范式游记》这一系列文章了。希望你能从这一系列文章中有所收获。如果有什么疑问或是我有什么没有讲对的,还希望得到你的批评和指正。先谢谢了。