1.2 面向对象语言的发展历史

Simula

面向对象技术最先是在编程语言Simula中提出的。1967年5月20日,在挪威奥斯陆郊外的小镇莉沙布举行的IFIP TC-2 工做会议上,挪威科学家Ole-Johan Dahl和Kristen Nygaard正式发布了Simula 67语言。Simula 67被认为是最先的面向对象程序设计语言,是面向对象的开山祖师,它引入了全部后来面向对象程序设计语言所遵循的基础概念:对象、类、继承,但它的实现并非很完整。程序员

Simula虽然最先提出面向对象的概念,但由于其自己复杂,比较难学,而并无大规模流行。但Simula提出的面向对象的概念对程序语言后继的发展产生了巨大和深远的影响。编程

Smalltalk

Smalltalk是公认为历史上第二个面向对象的程序语言,并且是第一个完整实现了面向对象技术的语言。设计模式

最先的Smalltalk原型由艾伦·凯于70年代初提出。类(来自Simula-67)、海龟绘图(来自MIT的LOGO)以及图形界面等概念的有机组合,构成了Smalltalk的最初的蓝图。在1971年到1975年之间,艾伦·凯在Xerox PARC的小组设计并实现了第一个真正的Smalltalk语言系统。安全

Smalltalk引领了面向对象的设计思想的思潮,对其它众多的程序设计语言的产生起到了极大的推进做用。C++,C#,Objective-C,Actor,Java和Ruby等,无一不受到Smalltalk的影响,这些程序语言中也随处可见Smalltalk的影子。多线程

除了编程语言受到Smalltalk的影响外,90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。编程语言

C++

C++是第一个大规模使用的面向对象语言,面向对象程序设计在80年代成为了一种主导思想,这很大程度上得益于C++的流行。并且与Simula、Smalltalk不一样的是,C++到如今为止仍是排名前三的编程语言,并无湮没在历史的洪流中。分布式

C++由贝尔实验室的Bjarne Strou-strup与1983年推出,C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。性能

C++最开始的时候不是叫作C++,而是C with class,这是把它看成一种C语言的有效扩充。因为当时C语言在编程界居于老大的地位,要想发展一种新的语言,最强大的竞争对手就是C语言,因此当时有两个问题最受关注:C++要在运行时间、代码紧凑性和数据紧凑性方面可以与C语言相媲美,可是还要尽可能避免在语言应用领域的限制。在这种状况下,一个很天然的想法就是让C++从C语言继承过来,但若是只是简单继承的话,就不能有所突破了,所以Bjarne博士采起了拿来主义,参考了不少的语言,将它们的优势“继承”过来了。例如:从Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力,从BCPL得到了//注释,从Ada获得了模板、名字空间,从Ada、Clu和ML取来了异常。线程

正是由于C++兼容C,同时又具有了面向对象的能力,使得C++可以大行其道,广受欢迎;然而也正是C++是一个超级大杂烩,语言自己很复杂,致使针对C++存在不少批评和争议。有一个玩笑是说:Bjarne Strou-strup发明C++语言的时候就没有期望任何一个程序员可以彻底掌握C++!设计

Java

Java是目前使用最广的面向对象编程语言,拥有全球最多的开发者,常年稳居开发语言排行榜第一名(偶尔和C交换一下位置)。若是说C++促进了面向对象的流行,那么Java就将面向对象推上了王座。比尔盖茨曾这样评价“Java是很长时间以来最优秀的程序设计语言”。

Java是由Sun Microsystems公司于 1995年5月推出,由“Java之父”James Gosling和一群技术天才创造,并在1995年正式推出。最初的Java被称为Oak —— 以Gosling办公室外的一棵橡树命名,后来因为商标版权问题,更名为Java —— 听说取名的灵感来自印尼爪哇岛味道优美的咖啡。

Sun 公司在推出 Java 之际就将其做为一种开放的技术,而且定位于互联网应用。所以随着互联网的发展和流行,加上开源运动的发展,Java逐渐成为了最流行的编程语言。

相比C++来讲,Java语言是一个更加纯净、更加易用的面向对象编程语言。Java语言的编程风格和C++比较类似,但去掉了不少C++中复杂和容易出错的特性,例如指针,多继承等,同时增长了垃圾回收等大大提高生产率的特性。Sun公司对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”,虽然有点王婆卖瓜的味道,但Java针对C++的改进,确实大大提高了生产力,下降了复杂度,客观上也促进了Java的流行。

相关文章
相关标签/搜索