为什么80%的码农都做不了架构师?>>>   

艾伦·凯与Smalltalk语言

您知道左面挂着图灵奖奖章的人是谁吗?他是世界上第二个面向对象语言——Smalltalk的发明人艾伦.凯(Alan.Kay),1972年,艾伦等人在Flex系统的基础上开发成功Smalltalk语言,为此,Alan.Kay被誉为Smalltalk语言之父。2003年,Alan.Key因为在面向对象程序设计上的杰出贡献,获得了有计算机界的诺贝尔奖之称的图灵奖(ACM Turing Award)。
艾伦.凯不是一位公众人物,但在计算机界,尤其是在技术圈子内,他是能让大家都心服口服屈指可数的大师之一。成为硅谷的又一位亿万富翁或让他当麻省理工学院院长的难得机遇,都无法激起他的兴奋,但他却有足够的耐性与一群8岁左右的孩子一起玩电脑。他平生最大的乐趣就是搞小发明。
在计算机界,阿伦·凯可算得上是一个不可多得的全才,他不仅是Smalltalk面向对象编程环境语言的发明人之一,也是面向对象编程思想的创始人之一,同时,他还是笔记本电脑最早的构想者和现代Windows的图形用户接口GUI的建筑师。

图 艾伦.凯
近年来有一句话挺流行:“预测未来的最好办法,就是把它创造出来。”不少人误以为此言出自尼葛洛庞帝(Negroponte)之口,实际上,这句话是阿伦·凯的名言。有很多人说布兰德是第一个使用个人计算机PC一词的人,但布兰德说自己也是顺手牵羊,最早提出“PC”概念的就是阿伦·凯。在20世纪70年代的一份备忘录上,阿伦·凯还正确地预言到,“20世纪90年代将有成百万的个人计算机,而且都将连接到全球公用的信息设施上”这不正是今天的互联网吗?
艾伦.凯,1940年5月17日生于美国麻萨诸塞州的Springfield,但是出生后不久艾伦全家即搬迁到澳大利亚。在风光宜人的澳大利亚黄金海岸,他度过了自己的儿童时光。可是好景不长,二战爆发,艾伦全家又重返美国。
“神童”艾伦·凯
艾伦聪明过人,是个超智商的“神童”。他三岁就能阅读,五岁便会自学,等到上小学的时候,他已经读了几百本书了。学校给艾伦安排的课程他早就自学过了。随着年纪的增长,艾伦的求知欲变得更加旺盛,他还发现学校的教育不能满足他。“学校里充斥着一种观点:老师的观点或者是教科书的观点,除此之外,再无其他,这是很荒唐的。”艾伦回忆道。
艾伦在IT行业出名以后,有人专门去研究他的家史,看看神童的基因是不是家族遗传的。说起艾伦的父母也倒是一般,父亲是个建筑工程师,母亲是个音乐家兼艺术家。他们对艾伦惟一的早期教育是父亲教授数学,母亲执教音乐,所以艾伦的音乐功底深厚,他是学校合唱团的男中音独唱,还会演奏吉他。艾伦一度还有想当一名专业音乐家的想法。
1961年,因为出面维护犹太移民,艾伦被迫从他就读的西佛吉尼亚 Bathany音乐学院离开。他辗转来到丹佛,以教授吉他课程为生,生活极为潦倒。但是,在他参加志愿服役之后,参加了一项计算机编程潜在能力测试,由此改变了他的命运,在编程中,他发现自己除了音乐之外,在计算机领域也富有天才。随后,艾伦被送到了美国空军,在IBM 1401大型
计算机上编程。
两个发现改变艾伦
离开空军以后,艾伦被科罗拉多大学录取,主修数学和分子生物学,并于1966年从该校毕业,获双学士学位。20世纪60年代,电子学、微电子学开始在美国兴起,艾伦对其产生浓厚兴趣,他放弃了进一步在数学上深造的机会,来到美国中部的犹他州研读电子电气工程师的课程。促使艾伦来到犹他州的主要原因是当时创新性的编程语言SketchPad语言的创始人爱尔文·苏姗兰德在犹他州执教。在名师指点和自己刻苦钻研下,艾伦充分借鉴了其它编程语言的长处,还从自己过去的分子生物学中汲取了有益养分,创立了“生物类比”理论。“我假定未来理想的计算机能够具备生物组织一样的功能,每个“细胞”能够独立运作,也能与其它功能一起完成复杂的目标。“细胞”能够相互重组,以解决问题或者完成功能。”艾伦在其论文中写道。
1968年夏天,艾伦第一次遇到麻省理工人工智能实验室的负责人西摩·潘博得,开始对Logo语言发生浓厚兴趣。“当我在实验室里看到,西摩和他的同事正在教一群小孩子学习使用Logo语言时,我脑海中整个对社会的认识观念都发生了动摇。计算机编程真的可以改变我们的生活,创造新的未来。”。在西摩的实验室里,艾伦还看到了最原始的手写识别系统。这个系统让他欣喜若狂,并对他产生很大影响,“就是那种感觉,就是那种感觉,我找到它了!”艾伦对友人这样说。“把手写识别应用到计算机上,我能创造出一种超媒体——就像现在的报纸,但它是电子化的。”在这种思路的基础上,艾伦设想出作为现代笔记本电脑原型的“Dynabook”。除了手写识别之外,1968年,还有一件事情让艾伦感到深深震撼。学者道格·安哥博特提出一种假想,计算机主机就像铁路系统,由某个机构主管,它决定你“能够做什么”、“什么时候做”。艾伦认为道格的思想很像当时福特汽车的总裁亨利·福特,“每个人都想拥有自己的PC,就像每个人都想拥有自己的汽车。”从这点出发,为艾伦日后研究个人计算技术打下了基础。
Smalltalk名震天下
1969年,艾伦在犹太州立大学被授予计算机科学博士学位。论文主题是面向图形对象的编程。离开高校后,艾伦的第一份工作是服务于斯坦福大学人工智能实验室,担任教授一职。教学工作之余,艾伦开始思考,如何使得庞大的计算机变得更小,比如说变得像一本书那么大。这种PC机对儿童来说会非常方便,他们可以用它来代替纸。艾伦把这种新型PC称为“KiddieKomp”,这种PC需要一种新的语言,于是艾伦便设计出了后来名震业界的Smalltalk语言。 Smalltalk语言再现了艾伦过去提出的“分子PC”的思想,他认为,程序好比一个个生物分子,它们可通过信息相互联接。Smalltalk的这种思想被业界公认为“面向对象编程系列语言”的代表作品。
1970年,艾伦任职于施乐帕洛阿尔托研究中心。他开始实验把Smalltalk语言用于儿童教育。研究中心招来很多孩子,让他们学习使用电脑,在学习过程中,儿童的种种表现都被记录下来,作为分析研究的素材。通过大量的实验,艾伦得出结论:“较之于通过文字,儿童通过图像和声音能更好地学习使用PC。”他主持领导帕洛阿尔托中心全力抢攻图形化设计这一IT技术的战略制高点。帕洛阿尔托研究中心研发了简易的PC系统,重点研究图形和动画效果。除了领导研究中心的研究工作外,艾伦还在笔记本电脑、以太网研究、激光打印和“客户端服务器”网络模式方面颇有建树,但是令人遗憾的是,艾伦想象中的那种
“Dynabook”始终没有出现。艾伦非常想将这个梦想变成现实,于是他向施乐研究中心的管理层寻求资金支持,但是管理层对艾伦的奇思怪想并不支持,他们不愿意调动资源给一个虚无缥缈的设想。然而,当1979年,斯蒂夫·乔布斯、杰夫·洛金森和其它几个苹果公司的创始人来到帕洛阿尔托中心,他们的想法竟然与艾伦不谋而合。当时苹果公司正在设计一种新颖的图形用户界面,他们发现了Smalltalk语言,“它灵活、易用,简直就像是为苹果机量身定做的。”乔布斯兴奋地对同事说。
纵观图形界面的发展史,无论是微软的Windows操作系统也好,图形化的Linux也好,苹果机的Macintosh也好,追溯其源都是艾伦当时超前思想的后继者。
预测未来不如创造未来
因为在施乐公司得不到支持,1983年艾伦离开了帕洛阿尔托研究中心,去了一家名叫Atari的计算机公司当程序员。后来Atari公司裁员,1984年,艾伦来到了苹果公司。这一年是PC历史上划时代的一年——苹果公司的Macintosh机,第一款图形界面操作的微机问世。为了普及推广PC机,艾伦跑遍了全美国,给小学生教授苹果机,PC行业发展二十年多来,人们非常好奇,还有哪些技术可以为PC带来突破?如今,艾伦还在研究什么?1991年,艾伦接受媒体采访时透露,他正在研究一种新语言,该语言能够帮助PC机模拟人工智能,自行决定“做些什么”。
艾伦的一句名言至今仍让IT业界的后辈们记忆犹新:预测未来的最好方法是创造未来(The best way to predict future is to invent it.)。与其坐等未来,不如主动探索,以人类的创新和进取精神去创造属于自己的未来。这位计算机大师以自己40年的职业生涯生动地诠释了这一点。
Smalltalk语言
Smalltalk语言最初由艾伦为首的软件概念小组开发成功,后经不断的试验和改进,陆续推出若干版本,其中最有影响的是1981年推出的Smalltalk-80,但该版本直到1984年才作为正式产品公开。
与其他面向对象的语言类似,Smalltalk也有5个核心概念,即对象、类、实例、消息和方法。对象是面向对象系统的唯一元素,它的外部特征包括内部使用的若干私有变量和一组方法。类描述了性质相似的一组对象,而类的每个对象称为该类的一个实例。消息是发送者(对象)传递给接受者(对象)的请求,要求接收者执行所指出的操作。方法描述了操作的实现细节。
继承性是Smalltalk的特色,它指的是,子类继承父类的一切属性和操作,整个系统的数据是通过子类机构组织成树型结构的。这种机构为信息共享提供了有效的支持。
Smalltalk的基本语法结构是表达式。表达式是一个字符序列,它描述的对象称为表达式的值。Smalltalk共有4种表达式:
(1)文字表达式:它描述的对象是一个确定的常量,即总是代表同一个对象;
(2)变量名表达式:它描述的对象是可供使用的变量,变量之值指该变量当前所指的对象;
(3)消息表达式:它描述传送给接收者的消息,其值由该消息所引用的方法来确定;
(4)块表达式:它描述的对象表示一系统被延迟的活动,常用来实现各种控制结构。
在Smalltalk中,建立程序就是根据类创建对象,执行程序就是不断向对象发送消息的
过程。Smalltalk的主要特点是:①信息表示与处理的高度一致性;②弱类型语言;③比较完善的抽象机制;④语言融合于环境之中。
Smalltalk在继承和并发方面的功能较弱。然而,它既推动了混合型面向对象语言(如C++)的开发,又促进了纯面向对象语言(如Eiffel)的深入研究。自1986年以来,还推出了很多Smalltalk的增强版本。例如,运行在微机DOS下的Smalltalk/V,增加并行性的Concurrent Smalltalk。

#201102it
举报  浏览(6)  评论  转载

转载于:https://my.oschina.net/liango/blog/79982

艾伦·凯与Smalltalk语言相关推荐

  1. smalltalk语言介绍语法简单总结

    参考:https://www.jianshu.com/p/0aac0ba06808 最近在学习Object C,Object C很多特性继承了smalltalk语言的特性,所以先了解一下smallta ...

  2. smalltalk语言_受Smalltalk启发的Pharo语言增加了64位支持

    smalltalk语言 Pharo项目团队说,Pharo 7.0是"迄今为止最重要的版本",它于1月22日发布,带来了一个新的启动器,一个改进的Git客户端,一个IoT工具包以及适 ...

  3. Smalltalk 语言的地位为何一落千丈?

    [CSDN编者按]"我们有这么多珍贵.优雅.给了我许多快乐的语法,为什么你们还在使用那些劣质的语法?你们怎么能这么盲目.这么愚蠢?"这类争论永远没有胜者,建议不要尝试. -- Al ...

  4. Smalltalk语言

    Smalltalk被公认为历史上第二个面向对象的程序设计语言和第一个真正的集成开发环境 (IDE). Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用, 主要有:    Objec ...

  5. 第1章 JVM语言家族概览 《Kotin 编程思想·实战》

    第1章 JVM语言家族概览 天地和而万物生,阴阳接而变化起.<荀子·礼记> 1.1 编程语言简述 1.1.1 编程语言是什么 所谓编程语言只是一个抽象的规范,而编译器是这个规范的实现,它是 ...

  6. 通过Smalltalk回到未来

    小号 oftware发展,在古代技术陷入了几十年. 今天,我们创建软件的方式与1960年代和1970年代的软件方式并没有太大不同. 那时,我们使用了文本编程语言,例如FORTRAN,LISP,COBO ...

  7. smalltalk_通过Smalltalk回到未来

    smalltalk 小号 oftware发展,在古代技术陷入了几十年. 今天,我们创建软件的方式与1960年代和1970年代的软件方式并没有太大不同. 那时,我们使用了文本编程语言,例如FORTRAN ...

  8. 了不起的Smalltalk,图灵奖得主之作,苹果、微软的灵感来源

    什么是Smalltalk,它有哪些过人之处?现年40岁以下的程序员了解它的应该不多,smalltalk巅峰时代是在上个世纪80.90年代,如今热度已经消退,上期2020年2月TIOBE流行榜上在第93 ...

  9. 谷歌宣布推出Dart编程新语言

    北京时间9月9日上午消息,据著名科技做网站ExtremeTech的报道,谷歌编程新语言Dart逐渐浮出水面,它是一种"结构化的Web编程"语言.早在几天前谷歌就已着手注册了一系列与 ...

最新文章

  1. java 99乘法表对齐_Java实现九九乘法表的完整实例(对齐版)
  2. JavaScript--在页面的下拉框控件中遍历出日期--先天下能力工场
  3. 上架相关——appstore 更新app版本
  4. ReactNative 触摸事件处理
  5. extern和static的区别
  6. linux 内核系统优化,Linux系统内核优化(一)
  7. Microsoft Visual Studio Tools for AI
  8. Maven的下载与安装
  9. Python——(Anaconda+PyCharm)Youki的Python环境配置笔记(Windows版本)(legacy)~
  10. 安装linux可是c盘文件夹失败,硬盘安装linux失败,进不去以前的windows怎么处理?
  11. java为什么要连接Mysql_为什么要启动mysql workbech,java才能连接mysql数据库呢?
  12. 1周前,一个对外挂一无所知的人,在的成长过程(经典推荐)
  13. c语言 符号怎么,c语言怎么说明符号
  14. 一种简单的业务数据监控告警设计方案
  15. 微信公众号开发 (1) 微信接入认证成为开发者
  16. c语言-选手评分系统
  17. 这些年我们还在使用的国内国外域名注册商
  18. 计科1705露营活动策划案
  19. 关于阳明学“心即理”的浅显理解
  20. 金融业务的数据存储选型

热门文章

  1. 关于AD20的PCB电路图打印设置
  2. Alibaba内部首发“M8级”500页微服务架构手册,GitHub上杀疯了
  3. 存储历史(从古老的绳子记忆到如今)
  4. 华为ensp模拟器 给路由器配置DHCP
  5. CSS-浏览器缩放使边框大小改变,导致布局改变的问题
  6. python新年快乐代码_Python第二天 祝大家新年快乐
  7. UEFI怎么用 UEFI安全启动设置添加方法步骤图解
  8. sort() sorted()
  9. 毕业论文 引用与自动编号基本技巧
  10. 74HC08四路2输入与门