下面说的仅为个人理解或着个人认同的别人的理解。我觉得只对初中期开发人员有用。对于大神来说。这些边界就比较模糊了。可以实现相互之间的模仿使用。下面就我学过及使用的各种语言进行说明比较。这里我们不讨论 编译型和解释型语言、动态语言和静态语言。只对比一下简单类别。
1、C 语言
C 语言是一种通用的、面向过程式的计算机程序设计语言。
2、C#
典型的面向对象的语音。
3、Javascript
弱对象语音
4、SQL
结构化查询语言(Structured Query Language)简称SQL
5、Html、XMl
可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言
面向对象与面向过程的比较,下面为摘录。
面向过程:你拿扫帚去打扫房间,主体是你,取扫帚,大扫地,一系列动作都需要你自己完成;
面向对象:把扫地机器人当成主体对象,相当于个活物,机器人主动去打扫卫生,至于如何打扫完,跟你没关系。
因此,在菜鸟分析看来,面向过程,是人在干活。面向对象,相当于人创造机器人去干活。
站在计算机程序角度来讲,面向过程和面向对象的本质理解为:
-
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度(自我以为面向过程就是我们平时的自顶向下的编程方式)。
-
而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递(把程序封装集合到一起)。
总的来说:面向对象是将事物高度抽象化,面向对象必须先建立抽象模型,之后直接使用模型就行了;面向过程是一种自顶向下的编程
弱类型与强类型进行对比,下面为摘录。
http://www.elecfans.com/emb/593521.html(这篇文章写的不错)
弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。
强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 和 Python 等都是强类型语言。
上面的都是其实每块都可以深挖下。理解内部我们用户的开发语言(C#)与SQL的区别。我们能用C#的方式 去实现SQL。
下面说下我的理解
C#:面向功能的需要告诉机器怎么去实现这些功能。
SQL:面向结果的只需要告诉机器我需要什么样的结果。
下面我做个比喻:现在需要到一所需要去找一个同学(张三)。
如果我们用C#去实现:咨询校长这个同学是那个班级的怎么去找->然后自己跟着校长的提示自己取找,
或者咨询校长-》让校长打电话给该同学同学让同学自己过来(如果电话没有打通……)
如果我们用SQL去实现:告诉校长我们要找张三(然后就结束了。),剩下的事由校长自己去找,并带到我们身边。我们不能参与太多。参与多了可能会造成不必要的资源浪费。其实校长正常情况下是比我们更了解这个学校的机制。