作者 | 年素清
责编 | 李雪敬
出品 | 程序人生(ID:coder_life)
艾伦·凯(艾伦 Kay)是近代计算机革命先驱之一,他最早提出了“面向对象编程”的概念,也是“Dynabook”(笔记本电脑的雏形)的最早阐述者。
他是一个真正意义上的全才,不仅是工程技术方面的专家,还在儿童发展理论、认识论、分子生物学等领域颇有建树,他擅长将它们融合在一起,在知识的交汇点上挖掘出更具价值的东西。此外,他还是个发明家。
艾伦有一句广为人知的名言:“预测未来的最好的办法就是创造未来。”
艾伦·凯,图片来自维基百科
首次提出“面向对象”
艾伦于 1940 年出生在美国马塞诸塞州。1岁时,全家随父亲迁往澳大利亚,世界第二次世界大战爆发后,又迁回美国。
艾伦3岁就可以阅读,家里有 6000 本书和大量的绘画。大量的阅读使得童年时期的艾伦就有了自己独立的观点,他说:“到我上学的时候,我已经读过几百本书。那时我已经有了许多自己的观点,我知道一年级所教的许多东西都很幼稚和虚假。当然我已经可以用五岁的声音维护自己的观点。”
1960 年,艾伦进入 Bethany 大学就读,但在一年之后,他就因抗议学校对待犹太人的不公问题而被学校开除。退学后的艾伦加入志愿兵服务队,在军队的一次计算机的能力倾向测试中,艾伦因为表现出众而被美国空军派遣到 IBM K101 工作。正是在那里,艾伦学习到了大量计算机有关的知识。
从军队退伍后,艾伦被科罗拉多大学录取,攻读数学和分子专业,毕业后进入犹他大学学习电气工程。
在犹他大学,艾伦开始使用由 1988 年图灵奖获得者伊凡·苏泽兰(Ivan Sutherland)开发的 Sketchpad 程序,结合 Simua 仿真语言编写程序。当时的计算机是个非常罕见的物件,那个时代的程序员使用一堆别人看不懂的字符工作,因为更高级的语言还没有被开发乃至推广。
随着对计算机接触的深入,艾伦开始思考计算机和编程。受这些程序思想的启发,再加上自己生物学的背景,他提出了“生物学类比”理论。艾伦假定理想的计算机将象生物体一样工作,为完成某个任务,每个“细胞”都要与其它“细胞”协同完成,而每个“细胞”又有自己的功能。为了解决另外的难题或试验另外的功能,“细胞”们可以实现重组,这一理论成为面向对象程序设计的萌芽。他的博士毕业论文也是围绕图形面向对象方面的研究展开。
“计算机就像一种超级纸张”
1968 年,艾伦在 MIT 人工智能实验室见到了 Logo 语言的创始人西蒙·派珀特(SeymourPapert),派珀特和同事们向孩子们演示如何使用 Logo。艾伦看完之后,他之前对于计算机的认识受到极大冲击,艾伦后来回忆起这段经历说:“我看到了第一个真正的手写体识别系统。这是一套今人难以置信的系统。它对我产生了巨大影响,因为我有种心有灵犀的感觉。当我将这些观念综合起来,计算机的概念就象是一种超级媒体,一种超级纸张。”
从这以后,艾伦开始学习 Logo 语言。
推动苹果 Mac 机的诞生
1971 年,艾伦进入 Xerox PARC(施乐帕克研究中心)开始参与 Alto 计算机的开发。当时的位图显示器十分昂贵,艾伦成功说服 PARC 让他使用这些位图显示器,这使得艾伦和他的团队能够实现不同大小和字体的文字,使用多窗口环境,以及一些对图像处理的高端支持。基于这些操作,艾伦最后发明了重叠窗口、图标等图形用户界面。
1979 年,艾伦邀请史蒂夫·乔布斯(SteveJobs)、杰夫·拉斯金(Teff Raskin)以及其它苹果公司的元老们来到 PARC 参观,乔布斯一行人对艾伦的视窗图形用户界面非常感兴趣,他们认为这就是未来的电脑。
1984 年,在乔布斯的极力邀请下,艾伦加盟苹果。同年,苹果推出 Macintosh 计算机(就是我们所知的Mac机),首次将图形用户界面应用到个人计算机之上,引起计算产业界的巨大轰动。
面向对象之父与移动计算机之父
1968 年,艾伦受派珀特启发,他构想出一台像书本一样大小的计算机,用户尤其是儿童可以用它来代替纸张,他将这个项目称之为“Kiddie Komp”,并在此基础上提出了“Dynabook”的概念,后来在 1972 年一篇名为《适合各年龄段儿童的个人计算机》的论文中发表了这个概念。“Dynabook”后来演变成了今天的超薄笔记本电脑。
为了将 Dynabook 的想法落地,艾伦开始着手 Smalltalk(面向对象的程序设计语言)的研发。之后,他率领团队对 Smalltalk 的执行效率和规模进行了优化,他们引入了继承和子类的概念并确定了语言的语法,这使得编译器能够产生高效、可执行、精炼的二进制代码,这些概念的引入使 Smalltalk 成为最早的面向对象语言。艾伦因此被誉为“面向对象之父”,2003 年4月,美国计算机学会(ACM)将当年的图灵奖授予了艾伦,以表彰他和他的 Smalltalk 语言。
此外,Smalltalk 吸取了 Mac 机原型的优秀经验,能够通过高度便携的联网方式,以编辑、授权的形式模拟所有现有媒体。1993年,苹果推出世界上第一款掌上电脑“Apple Newton”,终于将 Dynabook 理念成为了现实。艾伦也因此被后人称为“移动计算机之父”。
“计算机革命并未真正发生”
尽管计算机自诞生之日到艾伦的时代经历了翻天覆地的变化,但是他却认为计算机革命并未真正发生,软件工程正在向和摩尔定律相反的方向发展,当硬件容量逐年递增的时候,软件则在无谓地持续膨胀,而背后的原因可能是虚弱而难于扩展的思路和工具、懒惰和缺少知识等。
当时有首搞笑的单行诗:“Andy 给予的一切,都被 Bill 夺走”。指的是每当 Intel 的 CEO 安迪·葛洛夫(Andy Grove)推出一款性能更高的芯片,微软的 CEO 比尔·盖茨(Bill Gates)都会通过升级软件使新硬件带来的更高性能消失于无形。
为了改善当前软件开发的窘境,艾伦领导了向着彻底改造编程技术的 STEP 研究课题,目标是实现摩尔定律在软件代码表达效率上的飞跃,途径是把开发系统所需要编写的代码量减少到原先的百分之一、千分之一、万分之一甚至更少。
2011 年,艾伦指出软件工程已陷入停滞,成为了迷失的学科,无法跟上硬件和其他科学技术领域发展的步伐。巨大的代码库已经沦为了一个垃圾场,大到任何人都无法看懂产生 Vista 或者 Word 的1亿行源代码,而本来只需要一小部分代码就够了。
参考链接:
https://baike.baidu.com/item/%E8%89%BE%E4%BC%A6%C2%B7%E5%87%AF/10709189?fr=aladdin
http://www.gerenjianli.com/Mingren/28/o5o1idm8om.html
http://media.people.com.cn/n1/2019/0510/c14677-31077446.html
更多精彩推荐
☞实用小技能 | 用 Word 和 Excel 自制一个题库自判断答题系统!
☞中国数据库产业的“高地战事”
☞融资 2000 万美元后,他竟将核心代码全开源,这……能行吗?
☞Get了!用Python制作数据预测集成工具 | 附代码
☞学会这10大高性能开发技术,轻松躲过裁员名单!
☞小心!你可能玩了假的DeFi
点分享点点赞点在看