您的位置:首页 > 其它

面向对象之父Alan Kay:预测未来,创造未来

2011-04-30 23:08 302 查看

面向对象之父Alan Kay:预测未来,创造未来

http://developer.51cto.com
2009-12-22 03:05 red7 51CTO.com
我要评论(1
)

更多时候,Alan Kay是以面向对象程序设计和Smalltalk创世人的身份被我们记住,以软件大师和计算机界泰斗的高度被我们仰视;但你是否知道,他还是个发明家。

【51CTO独家特稿】在开始正文之前让我们先回答一个问题,你使用过Alan
Kay的某项发明吗?如果你是个程序员,你会使用C、C++或Java进行程序开发,那你应该用过Alan
Kay的发明,因为这些编程语言都或多或少从SmallTalk语言中汲取养分,或者,在大学课程里,你一定学习过Alan
Kay提出的面向对象编程的基本理论。

51CTO开发频道年终巨献:架构师最怕程序员知道的十件事

如果你不是程序员,那么你用过(见过)笔记本电脑,恭喜你,笔记本电脑这个概念最初也是由Alan
Kay提出的;如果你觉得笔记本太奢侈,OK,你应该在使用Windows或者Mac,无论是哪种操作系统,图形用户界面的概念是Alan
Kay告诉乔布斯的。如果你还不承认,那么平板显示器、无线网络、以太网工作站、客户机服务器模式和激光打印机的实现原理中,我们都能找到Alan
Kay的影子。



面向对象之父Alan Kay

更多时候,Alan Kay是以面向对象程序设计和Smalltalk创世人的身份被我们记住,以软件大师和计算机界泰斗的高度被我们仰视。

1940年,Alan出生在美国马塞诸塞州。1岁时,Alan随父亲居家迁往澳大利亚。3岁就可以阅读Alan在存有6000本书和大量的绘画的大
房间里度过童年。二战开始后,Alan全家又迁回美国。大量的阅读和独立的观点使Alan对自己的童年感到骄傲:“到我上学时,我已经读过几百本书。那时
我已经有了许多自己的观点,我知道一年级所教的许多东西都很幼稚和虚假,老师在撒谎。但学校只能有一种观点――那就是老师的观点或者课本的观点。他们不喜
欢与他们相左的观点,因此那就象是一场战争。当然我已经可以用五岁的声音维护自己的观点”。对少儿教育的责任心伴随Alan一生,他后期的许多大师级的创
意最初的理念都是出于对儿童的关爱。

OOP萌芽

1960年,Alan进入Bethany大学,仅一年之后他就因抗议学校犹太人限额问题,而被Bethany大学驱逐。沮丧的Alan加入志愿兵服
务对,在此,他发现了自己的又一项天赋;在军队的一次计算机的能力倾向测验中,Alan表现出众,随后即被美国空军派遣到IBM
K101工作,在那里,Alan不但验证了计算机能力倾向测试的准确度,还学习到大量计算机知识。

退伍后的Alan被科罗拉多大学录取,学习数学和分子生物学。毕业后,他又一次面对择业问题,他说:“我考虑过从医,但我觉得自己责任心不够。直到现在我仍这样认为。”他还考虑过哲学,但也放弃了。最后他还是进入了犹他大学学习电气工程。

海拔4000英尺以上的犹他大学,设有一个博士点。在那里,他开始使用由1988年图灵奖获得者Ivan
Sutherland开发的Sketchpad程序,并用Simua仿真语言编写程序。当时的计算机是个稀罕玩意,能深入接触计算机控制编程的人更是少之
又少。新生Alan在那里使用UNIVAC108机,任务是办公桌上的一堆磁带和一张纸条:“这是UNIVAC108机的Algol语言,如果它不能运
行,把它弄好。”

那个时代的程序员更像是“风语者”,使用一堆别人看不懂的字符工作,因为更高级的语言还没有被开发或推广;但还是那个大师频出的时代,Alan开始
深入思考计算机和编程。受这些程序思想的启发,再加上自己生物学的背景,他提出了“生物学类比”理论。Alan
Kay假定理想的计算机将象生物体一样工作,为完成某个任务,每个“细胞”都要与其它“细胞”协同完成,而每个“细胞”又有自己的功能。为了解决另外的难
题或试验另外的功能,“细胞”们可以实现重组。这一理论成为面向对象程序设计的萌芽。也是在那时,Alan开始为Flex机设计界面,但由于过于复杂而没
有成功,之后他开始研究图标编程。

超级纸张

1968年秋,Alan在MIT人工智能实验室第一次见到Logo语言的创始人Seymour
Papert;他观看了Papert和他的同事教孩子们如何用Logo时,Alan有关计算机社会作用的整套观念受到极大冲击。“我看到了第一个真正的手
写体识别系统。这是一套今人难以置信的系统。它对我产生了巨大影响,因为我有种心有灵犀的感觉。当我将这些观念综合起来,计算机的概念就象是一种超级媒
体,一种超级纸张。”

那时的计算机是一个庞然大物,有独立的房间存放,由专门的机构拥有和维护;将其想象成孩子的教学玩具、媒体或一张纸不仅需要极大的想象力,还有勇气。

这里需要提及Alan Kay的一句在IT界广为流传的名言“The best way to predict the future is to invent it”,预测未来的最好办法,就是把它创造出来。

Smalltalk和OOP

Alan
Kay的毕业论文是关于图形面向对象方面的研究,他由此凯获得犹他大学的博士学位。接着在斯坦福人工智能实验室担任教学工作。这两年工作期间,他开始构想
一本象书本大小的计算机,用户(尤其是儿童)可以用它来代替纸张。他将这个项目称之为 “Kiddie
Komp”。这期间,他也开始着手Smalltalk语言的研发。Smalltalk基于Alan的博士论文为理论支持,应用自己之前的单独个体(即“细
胞”)生物学模型来设计的,个体之间可通过“信息”相互交流;另外,Smalltalk使用“鼠标驱动”的“多窗口环境”,这是图形界面操作系统的雏形。

Smalltalk是第一门纯面向对象的程序设计语言,OPP的思想使Smalltalk的语言结构方面有许多与其他语言不同的特点,例如在
Smalltalk语言中没有条件语句,取而代之的是一些发送给对象true或者false的消息,因此它们不属于语言部分,而属于Smalltalk的
类库;也没有循环重复语句(C语言中的for while),Smalltalk用向数字对象或块对象发送消息来实现重复执行。

1971年,Alan来到施乐的PARC小组,虽然当时的位图显示器十分昂贵,但是Alan依然说服了PARC让他使用这些位图显示器,这使得
Kay和他的小组能够实现不同大小和字体的文字,使用多窗口环境,以及一些对图像处理的高端支持;这实现了Alan设计Smalltalk的初衷,为儿童
教学的而开发的语言。



1975年,Alan的小组认识到应当对Smalltalk的执行效率和规模进行优化。于是他们在许多重要方面重新设计了Smalltalk系统,
在语言上:引入了继承和子类的概念并确定了语言的语法,这使得编译器能够产生高效、可执行、精炼的二进制代码。这些概念的引入使Smalltalk成为面
向对象语言鼻祖。

Delphi与C#之父:技术理想架构开发传奇

UML之父:架构业务需求与软件开发的桥梁

Python之父Guido Rossum:打造Google第三

C++之父:面向对象的进化与实现

Pascal之父Niklaus Wirth:结构化的程序

Smalltalk在编程语言发展史上的地位毋庸置疑。它不仅引入了面向对象程序设计的基本理念和实现方法,还为现在编程语言的进化提供了必要的基
因,C、C++以及后来的Java、Python、PHP等都借鉴了Smalltalk的部分底层实现方法和语法要素;即使是30年之后,我们依然可以从
编程语言排行榜中看到Smalltalk的活力。

发明家Alan

也许你还对开始的那个问题和答案念念不忘,让我们来简单的回忆一下Alan Kay的其他贡献。

在施乐PARC研究小组期间,Alan制作了一个名为Pynabook的概念产品——微型电脑,业界认为这是笔记本电脑的模型。当时个人计算机技术
尚处于襁褓期,但Alan的设计中却已包含了许多未来的技术,比如平板显示器和无线通讯系统。1993年,
Dynabook理念终于成为现实,化为了苹果公司的Newton。

1979年,在Alan的邀请下,乔布斯、Teff Raskin以及其它苹果公司的元老们来到PARC参观。他们被Alan
Kay的视窗图形用户界面理念所吸引,认为这就是未来的电脑;对Smalltalk语言的灵活性也大为惊奇。Alan在PARC的工作就是苹果
Macintosh的种子,甚至今天的Windows操作系统也是Alan的理念延伸。



Macintosh应用了Alan的视窗图形用户界面理念

1984年,Alan加盟苹果,这使Alan有足够的时间和金钱开始研究他那长期以来的梦想。同一年,一台以图形界面为中心并为市场广泛接受的计算
机——Macintosh诞生。接下来的时间,Alan在世界各地四处奔波讲学的同时在麻省理工大学担任教学工作,也间或为苹果工作。但大多数时间
Alan Kay则在加州西好莱坞的自办的学校中教学,教孩子们使用计算机。



Alan Kay在 图灵奖颁奖典礼上

2003年4月19日,计算机学会(ACM)宣布,2003年度有“计算机界诺贝尔奖”之称的ACM 图灵奖授予第一个完全面向对象的动态计算机程序设计语言Smalltalk的发明者Alan Kay。

【责任编辑:red7
TEL:(010)68476606】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: