梳理面向对象的历史
面向对象的发展历史可以分为三个阶段:
雏形阶段、完善阶段和繁荣阶段
雏形阶段
20世纪60年代挪威计算中心发布的simula语言,首次引入了类的概念和继承机制,该语言的诞生是面向对象发展历史上的第一个里程碑。
simula语言的发明者是下面两位先生:
70年代CLU、并发Pascal、Ada和Modula-2等语言对抽象数据类型理论的发展起到重要作用(支持数据和操作封装)。
犹他大学的博士生Alan Kay设计了一个实验性的语言Flex,该语言从Simula 67中借鉴了许多概念,如类、对象和继承等。
这位天才计算机大师除了是面向对象编程环境语言的发明人之一,也是面向对象编程思想的创始人之一,还是笔记本电脑最早的构想者和现代Windows GUI的最初尝试者。
1972年Palo Alno研究中心(PARC)发布了Smalltalk 72,其中正式使用了面向对象这个术语。Smalltalk的问世标志着面向对象程序设计方法的正式形成,但是这个时期的Smalltalk语言还不够完善。
完善阶段
PARC先后发布了Smalltalk 72,76和78等版本,直至1981年推出该语言完善的版本Smalltalk 80。Small talk 80的问世被认为是面向对象语言发展史上最重要的里程碑。迄今绝大多数面向的基本概念及其支持机制在Small talk 80中都已具备。他是第一个完善的、能够实际应用的面向对象语言。但是随后的Small talk的应用并不广泛,原因如下:
- 追求纯OO的宗旨使得许多软件开发人员不太适应。
- 一种新的软件开发方法被广泛接受需要一定的时间,
- 针对该语言的商品化软件开发工作直到1987年才开始进行。
繁荣阶段
从20世纪80年代中期到90年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的面向对象编程语言的涌现,例如 C++、Objective C 、Object Pascal、CLOS(Common Lisp Object System)、Eiffel和Actor等。这些面向对象的编程语言分为纯OO型语言和混合型OO语言。混合型语言是在传统的过程式语言基础上增加了OO语言成分形成的,在实用性方面具有更大的优势。此时的纯OO型语言也比较重视实用性。现在,在面向对象编程方面,普遍采用语言、类库和可视化编程环境相结合的方式,如Visual C++、JBuilder和Delphi等。面向对象方法也从编程发展到设计、分析,进而发展到整个软件生命周期。
到20世纪90年代,面向对象的分析与设计方法一多达数十种,这些方法都各有所长。目前,统一建模语言(UML)已经成为世界性的建模语言,适用于多种开发方法。吧UML作为面向对象的建模语言,不但在软件产业皆获得普遍支持,在学术界影响也很大。在面向对象的过程指导方面,目前没有国际规范发布。当前较为流行的用于面向对象软件开发过程指导有“统一软件开发过程“和国内的青鸟面向对象软件开发过程指导。
当前,面向对象方法几乎覆盖了计算机软件领域的所有分支。例如,已经出现了面向对象的编程语言、面向对象的分析、面向对象的设计、面向对象的测试、面向对象的维护、面向对象的图形用户界面、面向对象的数据库、面向对象的数据结构、面向对象的智能程序设计、面向对象的软件开发环境和面向对象的体系结构等。此外,许多新领域都以面向对象理论为基础或作为主要技术,如面向对象的软件体系结构、领域工程、智能代理(Agent)、基于构件的软件工程和面向服务的软件开发等。
最后再介绍几个对面向对象编程做出杰出贡献的伟人:
这位老先生开发了许多我们现在用来推断抽象类型的技术,同时他也是快排的发明者。
他创造了信息隐藏这一术语,并首次提出了围绕程序模块封装的秘密来组织程序模块的想法。
这两个人定义了抽象类型的规范,以及对它们的编程语言支持。