Alan Kay

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

简介

天才计算机大师阿伦凯,他是Smalltalk面向对象编程环境语言的发明人之一,也是面向对象编程思想的创始人之一,他还是笔记本电脑最早的构想者和现代Windows GUI的最初尝试者。
“预测未来的最好方法,就是把它创造出来”这是天才大师阿伦凯的名言,他是Smalltalk面向对象编程环境语言的发明人之一,也是面向对象编程思想的创始人之一,他还是笔记本电脑最早的构想者和现代Windows GUI的最初尝试者。
阿伦是个超智商儿童,三岁就能阅读,五岁便会自学,等上小学的时候,已经读了数百本书了。随着年龄的增长,阿伦的求知欲变得更加旺盛,阿伦回忆说,“学校里充斥着一种观点:老师的观点或者是教科书的观点,除此之外,再无其他,这是很荒唐的。”

在开始正文之前让我们先回答一个问题,你使用过Alan Kay的某项发明吗?如果你是个程序员,你会使用C、C++或Java进行程序开发,那你应该用过Alan Kay的发明,因为这些编程语言都或多或少从SmallTalk语言中汲取养分,或者,在大学课程里,你一定学习过Alan Kay提出的面向对象编程的基本理论。
如果你不是程序员,那么你用过(见过)笔记本电脑,恭喜你,笔记本电脑这个概念最初也是由Alan Kay提出的;如果你觉得笔记本太奢侈,OK,你应该在使用Windows或者Mac,无论是哪种操作系统,图形用户界面的概念是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成为面 向对象语言鼻祖。
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的理念延伸。

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

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

面向对象的经典语录

1.没有什么比不加区分的选择事件处理程序能够更快地引导oop程序员走向毁灭的道路.

2.大多数情况把复杂的低级的代码定义在窗体文件之外是一个好注意.

Alan Kay——面向对象之父:预测未来,创造未来相关推荐

  1. 面向对象之父Alan Kay谈面向对象

    Programming.Reddit 真是一个好东西,应该进入每个程序员的必读列表.我最喜欢它的一点在于,它不仅有当下的热门话题,还会引导你读到不少历史性的但是更具深意的文字. Alan Kay谈OO ...

  2. 图灵奖得主Alan Kay谈面向对象和函数式编程

    Alan Kay授权<程序员>整理翻译并本文.译/王江平 原文链接 https://news.ycombinator.com/item?id=11808551 本文为<程序员> ...

  3. C++ Alan Kay对面向对象的解释

    一.起源 今天逛b站的时候无意中看到了SchelleyYuki小姐姐的视频,在这个视频里面Schelley小姐姐分享了java的学习经验和初学Java的常见误区(这个在下一篇博文会记录一下我看完视频之 ...

  4. 图灵奖获得者 Alan Kay:突破常规思维,创建下一代科研社区(附视频)

    2020 北京智源大会 本文属于2020北京智源大会嘉宾演讲的整理报道系列.北京智源大会是北京智源人工智能研究院主办的年度国际性人工智能高端学术交流活动,以国际性.权威性.专业性和前瞻性的" ...

  5. 《程序员》10月:浪漫的计算机科学家Alan Kay

    本期<程序员>封面报道,带来了以下实践分享: Alan Kay不仅是面向对象编程和用户图形界面先驱,还是这个世界上对计算机未来怀有最浪漫愿景的科学家.闪烁光芒的深刻见解不该因时代更替,或者 ...

  6. Alan Kay等专家领衔,北京智源大会6月24日精彩预告

    明天,2020北京智源大会将进入最后一天 等待大家的是3场精彩的专题论坛和闭幕式及全体大会 高能预警!!! 数十位海内外顶尖专家将轮番上阵 为我们带来一场科技盛宴 更有图灵奖得主Joseph Sifa ...

  7. 五项技术创新 创造未来出行新体验

    本文讲的是五项技术创新 创造未来出行新体验,IBM (纽约股票交易所股票代码:IBM)2007年8月7日发布了有可能改变人们出行方式的五项创新.这张创新名单来自全球IBM实验室的新兴技术.正像IBM公 ...

  8. 未来计算机手抄报图片,小学生科技创造未来手抄报图片简单又漂亮

    导语:科学是到处为家的--不过在任何不播种的地方,是决不会得到丰收的.下面分享关于科技创造未来手抄报资料,希望对大家有所帮助! [科技创造未来手抄报资料:科技作文] 对于科技这个词语,大家都很熟悉.简 ...

  9. 马云:阿里必须是一家创造未来的公司,必须成为国家和世界创新的发动机

    博主说:"阿里必须是一家创造未来的公司,必须成为国家和世界创新的发动机",这话说的霸气,却也让人感动. 正文 技术形象也许是阿里巴巴的一个痛,36氪采访过几位阿里科学家,他们总觉得 ...

最新文章

  1. defaultdict python_python中defaultdict的用法详解
  2. python中matplotlib条形图-python matplotlib库绘制条形图练习题
  3. Ruby on Rails 终极部署方案 nginx+mina+puma
  4. 运营、AI、Python数据分析,这3场直播你别错过
  5. 在MyEclipse中,jsp文件输入中文,文件不能保存
  6. eclipse的maven配置及本地仓库配置
  7. openwrt里面的高深代码-两行shell脚本
  8. VS2017不能打开stdio.h等文件
  9. 企业数据安全防护不可忽视,数据丢失/损坏如何处理?
  10. 最新软件外包公司排名-中国IT人力外包公司排名
  11. i3wm 获取window class
  12. 电机驱动L298N调试的问题。
  13. T410与T410i有什么区别?
  14. 今日恐慌与贪婪指数为15 恐慌程度较昨日持续下降
  15. 第一次学游泳技巧_新手学游泳第一次下水,学会如何将身体进入水中
  16. C语言_写一个函数:求给定数组的中位数
  17. 大模型微调技术(Adapter-Tuning、Prefix-Tuning、Prompt-Tuning(P-Tuning)、P-Tuning v2、LoRA)
  18. 单代号网络图计算例题_还在熬夜计算工期?不会优化工期?学会双代号网络图效率提高80%,升职加薪其实不难...
  19. 手机放哪里辐射危害最低?
  20. Yii碰到“the file or directory to be published does not exist bower/jquery/dist”

热门文章

  1. 从资本和负债角度浅析末位淘汰制的适用条件
  2. PS使用“磁性套索工具”
  3. unity塔防游戏怪物转向_浅谈塔防游戏的“进化史”,独特创意把“策略至上”推到新的高度...
  4. 2020校招指南(找工作的可以看看)
  5. 如何学习NgZorro的源码
  6. 根据Schema写出XML文档四部曲
  7. 九九乘法表|99除法表|99除法表|11乘除法|12乘除法
  8. vscode调试Electron项目
  9. 使用VisualStudio2022插件(Visual Studio Installer Projects 2022)打包 .Net 6 框架下的 WPF项目 为安装文件
  10. Vue 实现数字滚动效果