命令式编程 Imperative programming
用命令的方式,一步一步告诉计算机先做什么再做什么。模拟电脑运行过程,通过执行命令改变程序的状态。
从开发人员的角度来说,就是一个"输入-》函数1-》状态1-》函数2-》状态2-》输出"的过程
难点在于函数的书写和中间状态的保存。

声明式编程
告诉计算机应该做什么,更关注结果,不关心计算机怎么做。
领域特定语言(Domain Specific Language,DSL),比如SQL,CSS,正则表达式等,开发人员声明需要的结果是什么,由特定语言的内部实现去调用计算机相关指令,得到输出。
函数式编程(Functional Program,FP)等。
从开发人员的角度来说,就是一个 "输入-》计算机处理-》输出"的高层次的抽象过程。
如“select * from tb”,我们只关心我们要的结果,而不用去关系具体实现。


面向对象编程
是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

函数式编程
函数式编程是一种编程范式,它将计算机运算看作是数学中函数的计算,并且避免了状态以及变量的概念。数学上函数的概念相较于编程中函数的概念更为严格。函数没有side effect,no state,函数是一等公民(Higher Order Function)。
使用者只需要关心输入输出。难点在于monad函数的抽象和书写

网络上志同道合,我们一起学习网络安全,一起进步,QQ群:694839022