编程和思维(转载自“一分为四”)

转载自:“一分为四”网站
思维的心商有见识、手段、信仰、习惯。对应着编程语言的声明型语言、命令型语言、标记型语言(因为信仰是主动的表达信息)、事件驱动型语言。因此,函数型语言和声明型语言、命令型语言不是并列关系。

思维的情商有观察、意志、兴趣、反射。对应着编程方式为面向对象编程、文章编程、组件编程、函数编程。

组件编程的意思是接到一个任务,就找出手头的组件,比如zope/j2ee/django/ror这些web框架就是可组合的组件、vb的控件也是 组件、利用过滤器的shell编程也是组件、编程的层次结构也是组件、对各种web api的maskup也是组件、tcl语言也是组件编程的思路,用这些组件来搭积木,或者叫用胶水粘合成一个程序。兴趣就是听从内心的想法来行动,而组件 编程则是自下而上编程,首先考虑的是能实现什么,而不是要干什么。另外,组件思维也是用相似性来解决问题的方法,这也是离散思维的方法。

面向对象编程是接到任务后,考虑适合谁来干,把任务分派给不同的对象共同来完成任务,对任务进行划分。(我想说面向对象编程就是编写组件编程的各种 组件,但感觉不确切)。比如表现层是一个对象、数据层是一个对象、输入是一个对象、输出是一个对象。任务的完成就是对象的相互配合。

文章编程就是对任务进行分解,分成子任务、孙任务。也就是自顶向下编程。而组件编程是自底向上编程。

函数编程逐步追踪的过程,比如这个任务是达到一个什么结果,那么,要得到这个结果需要什么条件,而这些条件的完成又需要具备什么条件。来逐步达到可实现。这种编程和文章编程是可以配合的,因为文章编程也是追求最终实现。

很多语言都同时适合两个分类。比如smalltalk即是面向对象语言,又是事件驱动语言。tex、html是标记语言,它也很好的实现了文学编程的大纲结构。prolog语言是声明型语言,但它很重视推理能力,也是是函数编程的能力。

大部分语言是命令型语言,这些命令型语言同时具有情商的各种编程方式的特征,比如很多编程语言同时是面向对象的、函数的、组件框架的、而通过noweb、leo、m4、make、folding又能实现文章编程的能力。

这里只提到了心商和情商,而没有提智商和逆商,这是因为感觉心商和情商的概念更明确,更容易和编程语言的特点联系起来。因为智商和情商是对应的,心商和逆商是对应的。那么说情商就是在说智商。

现在说说智商的离散思维、关系思维、大纲思维(树状思维)、因果思维。

组件编程只是离散思维在完成任务时的表现,而prolog是认识事物的过程中的离散思维,搜索、链接是知识检索的时候的离散思维。

面向对象编程也是关系思维在完成任务时的表现。关系数据库是知识检索时的关系思维。

文章编程是完成任务的大纲思维,而通常的大纲则是一般的知识组织形式。

函数编程也是完成任务的因果思维,prolog是知识检索的因果思维。

This entry was posted in 一分为四与架构, 信息技术. Bookmark the permalink.