19位编程大师集锦
在访谈中,我们问了这样的问题:那些想法是从哪里来的?把想法转化为现实有多难?开发大型程序是什么感觉?这是一门艺术还是一门科学?是手艺还是技能?同样的事情还能再做一次吗?访谈的目标不是支配、欺骗或操控,而是程序员自由地反思、反省,然后用言语把他自己的编程方法表达出来。
世界上的优秀程序员为数众多,他们不会都出现在本书中。所以,这是对当代杰出程序员进行访谈的系列图书的第一本。
在本书出版之前,有必要让读者预先了解一下各位大师的时代背景,后续会推出访谈样章,敬请关注!
Charles Simonyi
1948年9月10日,Charles Simonyi出生于匈牙利布达佩斯。上高中时,Charles开始接触计算机和编程,他父亲安排他给一名从事计算机工作的工程师当助手,当时计算机在匈牙利屈指可数。
1966年,Charles高中毕业,同时也完成了他的第一个编译器。凭借开发编译器时积累的经验,他在丹麦哥本哈根的A/S Regnecentralen 公司谋得了一个职位。1968年,Charles离开丹麦进入美国加州大学伯克利分校学习,并于1972年获得理学学士学位,1977年获得斯坦福大学博士学位。
Simonyi曾先后在加州大学伯克利分校计算机中心、伯克利计算机公司、ILLIAC 4项目和施乐PARC工作。自1981年以来,他一直供职于微软公司。在施乐公司,Charles开发了Alto个人电脑的Bravo和Bravo X程序。在微软,Charles组建了应用软件小组,并领导开发出Multiplan、Microsoft Word、Microsoft Excel等广受欢迎的应用软件。在微型计算机世界的几乎各个领域,Charles Simonyi都打上了他的烙印,要么通过他自己的作品,要么通过影响和他共事的那些人。他谦逊而活泼,脸上常挂着微笑,几乎能够评论任何话题,不论是否与计算机相关。
Butler Lampson
Butler Lampson,目前在加州帕洛阿尔托数字设备公司(Digital Equipment Corporation,下文简称DEC)系统研究中心担任高级工程师,他曾是加州大学伯克利分校计算机科学副教授、伯克利计算机公司创始人、施乐PARC计算机科学实验室的高级研究员。
Lampson是业界最受敬重的专家之一,他在许多计算机设计和研究领域都颇有建树。他开发过硬件系统,如以太网局域网和Alto、Dorado个人电脑;操作系统,如SDS 940和Alto;编程语言,如LISP和Mesa;应用程序,如Bravo编辑器和Star办公系统;还有网络服务器,如Dover打印机和Grapevine邮件系统。
John Warnock
John Warnock出生于1940年,在犹他州长大,就读于犹他大学,并获得了数学学士和硕士学位,以及计算机科学博士学位。1968年,Dave Evans 在犹他大学组建了著名的研发团队,研究交互式设计和计算机图形学,此时Warnock刚好转学计算机科学专业。拿到计算机科学博士学位后,Warnock进入加拿大不列颠哥伦比亚省温哥华的一家公司,尝试当了一段时间的企业家,随后加入加拿大计算机科学公司(Computer Sciences of Canada),在多伦多工作。之后,他前往华盛顿哥伦比亚特区,进入戈达德太空飞行中心工作。
1972年,Warnock搬到加州,跟Dave Evans和Ivan Sutherland一起参与Illiac IV巨型计算机、美国宇航局航天飞机太空飞行模拟器和飞机模拟器等方面的工作。1978年,Warnock加入施乐PARC,在计算机科学实验室工作了4年。在PARC工作期间,Warnock致力于提高计算机灰阶成像的排版效果。
1982年,John E. Warnock博士和Charles M. Geshchke博士共同创建了Adobe系统公司(Adobe Systems),开发混排文字和图形的软件,其输出与设备无关。他们精诚合作,开发出了Adobe系统公司的第一款产品PostScript。
进入公司办公大楼时,你会一眼看到Adobe公司的标志。这座大楼位于帕洛阿尔托的恩巴克德罗大道(Embarcadero)旁,这条大道两旁散布着不少高科技企业。公司标志非常大,金光闪闪,显示出Warnock的公司近来获得的巨大成功。跟其他很多人一样,Warnock带着自己的想法离开了施乐PARC,并在现实世界中将这些想法变成了一门语言(PostScript)和一家公司(Adobe系统公司)。
Gary Kildall
作为数字化研究所(DRI)的创始人和董事会主席,Gary A. Kildall于1972年到1973年间开发了第一个微机操作系统。他把那个系统称为CP / M(控制程序/监控程序)操作系统,后来成为他们公司的第一个产品。此外,他为IBM个人计算机设计了DRLogo编程语言,并开发出微机上最早的高级计算机语言之一,PL / 1。
Gary Kildall是西雅图人,生于1942年5月19日。他于1972年获得华盛顿大学计算机科学博士学位。他随后加入了海军,并且执教于加利福尼亚州蒙特里的美国海军研究生院,讲授计算机科学。从海军退役后他仍旧在那里继续执教。
Kildall于1984年创建了一个名为Activenture的新公司(最近已更名为KnowledgeSet公司),以探索光盘出版业的潜力。Activenture公司于1985年宣布,他们将出版光盘版的《格罗利尔多媒体百科全书》。Kildall在担任KnowledgeSet公司总裁的同时仍旧担任着数字化研究所董事会主席一职。
Bill Gates
作为微软的CEO,William H. (Bill) Gates被认为是当今个人计算领域和办公自动化行业一个强有力的推动者。Bill Gates从年轻时就开始了计算机软件的职业生涯。当Gates和微软的联合创始人Paul Allen还在华盛顿州的西雅图上高中时,两人就开始做起了编程顾问的工作。1974年,当Gates在哈佛大学读本科时,他与Allen合作为第一台商用微型计算机MITS Altair开发了一套BASIC编程语言。在那个项目顺利完成后,两人创办了微软公司,为新兴的微机市场开发并销售软件。
微软为软件产业在编程语言、操作系统和应用软件等各方面设定了标准。Gates为微软提出了新产品的创意和技术发展的远景。在开发新产品时,他还会亲自指导技术小组,投入时间复审和完善微软所销售的软件。
John Page
John Page 于1944年9月21日出生于英国伦敦,他从青少年时期就开始使用计算机,并在20多年的职业生涯中继续从事着计算机领域的工作。
1970年,John Page加入了惠普公司。他在伦敦、日内瓦和欧洲其他地区为惠普做了4年多的技术支持工作。他1974年移居到惠普公司总部所在地——加利福尼亚州的库比蒂诺,负责管理HP 3000计算机的全球技术支持。后来,他转入软件研发领域并开发了Image数据库管理系统。在惠普工作期间,Page在斯坦福大学学习了人工智能专业,完成了计算机科学方面的研究生工作。1980年,Page离开惠普,和Fred Gibbons及Janelle Bedke联手创办了软件出版公司(Software Publishing Corporation,SPC)。Page在他的车库里开发了软件出版公司的第一款产品,即后来的PFS:FILE。现在PFS系列中的软件已经超过六种,涵盖了信息管理的各个方面。John Page是软件出版公司负责研发的副总裁。
John Page是一个身体修长、健康,稍有点孩子气的人。他目光柔和、笑容亲切、说话带点儿轻微的英国口音。我们见面时,他穿着一件未扣领扣的蓝色衬衫和一条灰色休闲裤。Page带我穿过软件出版公司那有着加州风格的舒适的红木梁柱办公室,进入一间很大的空会议室中。在那里,Page以一种放松的状态思考和分析了他在编程和管理软件公司上的做法和心得。
C. Wayne Ratliff
从1969年到1982年,C. Wayne Ratliff在Martin Marietta公司工作,担任了工程和管理方面的一系列职位。当“海盗”号空间飞行器于1976年在火星着陆时,他是NASA(美国国家航空航天局)“海盗”号飞行团队的一员,为“海盗”号的着陆支持软件编写了数据管理系统MFILE。
他在1978年开始编写名为Vulcan(火山)的程序,并在1979年到1980年期间自己进行推销。在1980年下半年,他和Ashton-Tate达成了市场推广协议,并把Vulcan产品重命名为dBASE II。在1983年年中,Ashton-Tate购买了dBASE II的技术和版权,Ratliff也加入Ashton-Tate成为新技术的副总裁。Ratliff是dBASE III的项目经理,同时兼任设计师和主程序员。
Ratliff生于俄亥俄州的特伦顿,在俄亥俄和德国的多个城镇长大。他现在住在洛杉矶地区。
Dan Bricklin
费城人Dan Bricklin出生于1951年7月16日。1973年,他从麻省理工学院(MIT)毕业并取得电气工程和计算机科学学士学位,毕业后先后供职于数字设备公司(DEC)和Fas Fax公司,从事编程工作,随后进入哈佛大学商学院。在哈佛期间,他根据同班同学和教授的专门知识和建议,设计了一款电子表格程序。
1978年,还在哈佛大学时,他跟MIT的老同学Bob Frankston合作,开发了这个程序的实用版本。这就是后来的VisiCalc。他们创办了一家名叫Software Arts的公司,该公司于1979年1月注册成立。同年4月,他们跟Personal Software签约,由该公司负责VisiCalc的市场运作。(Personal Software后来更名为VisiCorp。)关于VisiCalc的新闻很快铺天盖地。截止1981年5月,VisiCalc的销量超过10万套。1983年,累计销量突破50万套。Software Arts的成功一直持续到1984年,随后,为了争夺VisiCalc的相关权利,他们与VisiCorp陷入旷日持久的官司当中。
1985年5月,Dan Bricklin离开Software Arts,加入Lotus公司,做了很短一段时间的顾问。之后Dan Bricklin创办了Software Garden,这是他新开的公司,1985年11月正式注册成立。公司推出的第一款产品叫“Dan Bricklin的演示程序”。
Bob Frankston
36岁的Bob Frankston从事编程工作已经超过20年了。他在纽约的布鲁克林区长大。早在少年时期,他就对电子技术和计算机产生了浓厚的兴趣。在麻省理工学院上学时,他进一步加强了对这些领域的研究,他于1970年从麻省理工学院获得了两个学士学位,一个是数学学士,一个是电子工程和计算机科学学士。他于1974年又从麻省理工学院获得了另外两个学位,一个是工程学士学位,一个是电子工程和计算机科学硕士学位。当他在麻省理工上学时遇到了Dan Bricklin,两人成了朋友。
Bricklin在哈佛商学院的时候产生了电子报表的想法,于是请Bob Frankston帮助开发出一个可运行的版本。Bob Frankston不管白天黑夜,只要一有时间,就会在他的小阁楼里编程,最后开发出了一个以Bricklin的构想为原型的电子报表的软件版本。后来他们两人成立了软件艺术(Software Arts)公司,并肩工作,于1979年开发出他们的第一个产品——VisiCalc。1985年春天,软件艺术公司因为与 VisiCorp公司(以前的Personal Software公司,后来的Paladin公司)打了一场旷日持久的官司而解散,Frankston随即加入了莲花软件开发公司(Lotus Development Corporation),成为信息服务部门的首席科学家。
Jonathan Sachs
Jonathan Sachs出生于1947年,在美国东海岸的新英格兰地区长大。他获得了麻省理工学院的数学学士学位。Sachs在麻省理工学院一共学习和工作了14年。作为程序员,他的编程经验很广泛:他曾在空间研究中心、认知信息处理小组以及生物医学工程中心工作过。在为生物医学工程中心工作时,他开发了STOIC(面向堆栈的交互式编译器)编程语言。在70年代中期,Sachs离开麻省理工学院,来到Data General公司,负责管理一个操作系统的开发工作。接着他与人共同创办了Concentric Data Systems公司,一个以数据库产品而知名的公司。曾取得非凡成功的Lotus 1-2-3 电子报表软件的开发工作要归功于Jonathan Sachs。1981年,Sachs与Mitch Kapor一起开发并销售Sachs 的电子报表程序,在1982年4月,只有8名员工的Lotus软件开发公司成立了。1983年1月26日,Lotus开始交付用于IBM PC的Lotus 1-2-3软件。同年4月26日,Lotus 1-2-3软件首次在 Softsel畅销排行榜上跃居首位,并从此居高不下。它也是第一个取代VisiCalc的程序。1984年,Sachs 离开Lotus软件开发公司并成立了自己的公司。
Ray Ozzie
Ray Ozzie出生于1955年11月20日,在芝加哥近郊的帕克里奇(Park Ridge)长大。他大学就读于伊利诺伊大学香槟分校,学习计算机科学。在校期间,他开发过PLATO(Programmed Logic for Automatic Teaching Operation,指用于自动化教学的程序逻辑),那是一个与世界各地近1000个终端相连的计算机辅助教育系统。
1978年大学毕业后,Ozzie加入波士顿附近的一家小型计算机公司Data General,到Jonathan Sachs麾下工作,一起开发一个小型业务系统。离开Data General后,Ozzie进入VisiCalc缔造者Software Arts的微型计算机和软件世界。在Software Arts工作一年半后,Ozzie离职并加入Lotus,与Jonathan Sachs和Mitch Kapor共事。他在那里参与开发Symphony,并且后来成为这个项目的负责人。Symphony完工后,Ray Ozzie创办了自己的公司Iris Associates,与Lotus签订合约开发软件。
目前,Ray和妻子Dawna Bousquet以及他们的儿子Neil一起住在波士顿郊外的乡村。
Peter Roizen
作为一个加利福尼亚本地人,Peter Roizen就在帕罗奥多长大。他在加州大学伯克利分校就读,并于1967年获得数学专业的学士学位。他毕业后的第一份工作就是程序员,虽然在此之前他几乎没碰过编程。Roizen在离开伯克利后在蒙特利尔和多伦多待了两年,然后去了欧洲,在世界卫生组织干了七年程序员。他后来回到美国,在华盛顿特区为世界银行工作。1980年,Roizen创办了自己的公司,来推广和销售他的电子数据表程序,即T/Maker。这是当他就职于世界银行时,用业余时间开发出来的。1985年,Roizen把他的小公司从华盛顿哥伦比亚特区搬到了旧金山湾区。Roizen现年39岁,已婚,有一个五岁的儿子。他住在加利福尼亚的洛斯加托斯。
Bob Carr
作为Ashton-Tate公司的首席科学家,29岁的Robert Carr负责新产品和新技术的研究工作。作为集成化软件领域的开拓者之一,Carr是Framework软件及其后续产品Framework II软件的设计师和主要开发者。
在此之前,Carr曾担任Forefront公司的董事长。1983年7月,Carr与人合作成立了Forefront公司,为的是能完成他自己于15个月前就开始了的Framework软件的开发工作。Ashton-Tate公司同意以注资Forefront公司的方式来获得Framework软件的市场开发权。1985年7月,Ashton-Tate公司收购了Forefront公司。
在开发Framework软件并共同创建Forefront公司之前,Carr参加了最早的集成化软件包之一的Context MBA软件的开发工作,担任其程序开发顾问。在此之前,Carr曾在施乐公司的帕洛阿尔托研究中心从事施乐之星及Smalltalk前身产品的开发工作。他同时拥有斯坦福大学计算机科学的学士学位和硕士学位。
Jef Raskin
苹果电脑公司Macintosh项目发起人Jef Raskin多才多艺。他担任过旧金山小型歌剧团的指挥;持有包装设计、飞行器结构和电子学领域的多项专利。他还是个艺术家,作品在纽约现代艺术博物馆和洛杉矶美术馆展出过。他目前担任信息设备公司(Information Appliance Inc)的CEO。1943年,Raskin出生在纽约市,用他的话来说,差不多跟数字计算机同龄。
在纽约州立大学石溪分校,他主攻数学、物理、哲学和音乐,在校期间,他多次赢得奖学金,并获美国国家自然科学基金会(National Science Foundation)的资助。经过5年学习,他大学毕业并获得哲学学士学位。之后他又在宾夕法尼亚州立大学取得计算机科学硕士学位,后来成为加州大学圣地亚哥分校(UCSD)视觉艺术教授。他在加州大学圣地亚哥分校执教5年,同时还担任第三学院(Third College,参见http://en.wikipedia.org/wiki/ ThurgoodMarshallCollege)计算机中心主任。
他后来毅然决然地从圣地亚哥分校辞职了——关于为什么要离职,他并不想多说。随后,他成为一名职业音乐家,从事教学和指挥。当8080微处理器面世时,Raskin创办了Bannister & Crun公司来利用这项新技术。公司找到一块有利可图的细分市场,专门给Heath、苹果、美国国家半导体和其他公司编写手册和软件。
1978年,他加入苹果电脑公司,成为第31号员工,担任发行经理。后来他又担任高级系统的经理,组建了创造Macintosh的团队。1982年,他离开苹果公司,到丹麦数据处理学院(Dansk Datamatik Institute)任教,之后回到硅谷创办信息设备公司。
Andy Hertzfeld
Andy Hertzfeld出生于1953年4月6日,在费城西郊长大。Hertzfeld上高中时开始对计算机着迷,他当时写的程序有一个就是学校舞会的约会程序。高中毕业后,他进入布朗大学,学习物理、数学和计算机科学,并于1975年取得计算机科学学位。1979年,Hertzfeld获得加州大学伯克利分校计算机科学硕士学位。研究生毕业后,Hertzfeld加入苹果电脑公司,从事Silentype打印机 、Apple III操作系统及其他产品的开发。1981年2月,他作为第二名程序员加入Macintosh开发团队,参与项目开发,并成为Macintosh操作系统的主要开发人员。最近,Hertzfeld离开苹果公司,开始自己单干。他后来在Macintosh上开发了Switcher ,另外还有一款低成本、高分辨率的数字化仪,称为ThunderScan 。
Toru Iwatani
游戏设计师Iwatani1955年1月25日出生于日本东京目黒区。他在计算机、视觉艺术或平面设计方面全都是自学的,没接受过正规训练。1977年,22岁的Iwatani加入南梦宫(NAMCO LIMITED),东京一家制作电子游戏的计算机软件公司。进入公司之后,Iwatani最终找到了适合自己的职位,游戏设计。Iwatani与另外四人合作,从构思到成品,历时1年零5个月的开发,完成了Pac Man(《吃豆人》游戏)的制作。
游戏先在日本发售,大获成功。出口欧美后,同样俘获了大批玩家。完成Pac Man之后,Iwatani又设计了不少游戏,包括他自己最喜欢的Libble Rabble(《几何魔宝》)。近来,Iwatani开始更多地参与南梦宫的公司管理。
Scott Kim
Scott Kim是洛杉矶本地人,出生于1955年10月27日。他曾就读于斯坦福大学,学习数学、计算机科学和音乐,并于1977年获得音乐学士学位。 1975年,在学习了图形设计的课程后,Kim开始从事他的“倒置”(inversion)工作——Kim用“倒置”这个词表述他对文字艺术的演绎,文字可以从许多不同的方向看,类似于回文和字谜。1981年,Scott Kim出版了《Inversion》一书。很多计算机界的杰出人士对此书做出了贡献。前言是Douglas Hofstadter写的,他是Kim的教授,也是Kim的朋友。John Warnock帮忙对图像进行编程。Donald Knuth和David Fuchs帮助排版,Jef Raskin写了“后记”。Kim最近还开发了一个配合此节使用的“第四方软件”,在苹果Macintosh计算机上使用的“倒置”软件。该软件运行在MacPaint软件之上,包括用于创建“倒置”的许多练习、技巧和游戏。
Kim把他熟悉的图形设计和字体方面的知识应用到了他在计算机科学方面的工作上。目前,他正在研究一种全新的用户界面设计方法,这是他在斯坦福大学攻读博士学位的课题。早在读本科时,Kim就一边学习,一边在施乐公司的帕洛阿尔托研究中心作志愿顾问。他还在帕洛阿尔托从事过信息家电的工作。此外,他还有自己的公司——LOOK TWICE公司。
Jaron Lanier
费城人Dan Bricklin出生于1951年7月16日。1973年,他从麻省理工学院(MIT)毕业并取得电气工程和计算机科学学士学位,毕业后先后供职于数字设备公司(DEC)和Fas Fax公司,从事编程工作,随后进入哈佛大学商学院。在哈佛期间,他根据同班同学和教授的专门知识和建议,设计了一款电子表格程序。
1978年,还在哈佛大学时,他跟MIT的老同学Bob Frankston合作,开发了这个程序的实用版本。这就是后来的VisiCalc。他们创办了一家名叫Software Arts的公司,该公司于1979年1月注册成立。同年4月,他们跟Personal Software签约,由该公司负责VisiCalc的市场运作。(Personal Software后来更名为VisiCorp。)关于VisiCalc的新闻很快铺天盖地。截止1981年5月,VisiCalc的销量超过10万套。1983年,累计销量突破50万套。Software Arts的成功一直持续到1984年,随后,为了争夺VisiCalc的相关权利,他们与VisiCorp陷入旷日持久的官司当中。
1985年5月,Dan Bricklin离开Software Arts,加入Lotus公司,做了很短一段时间的顾问。之后Dan Bricklin创办了Software Garden,这是他新开的公司,1985年11月正式注册成立。公司推出的第一款产品叫“Dan Bricklin的演示程序”。
Michael Hawley
Droid Works(机器人工场)在卢卡斯影业公司旗下承担着把电影制作过程数字化这一意义重大的任务。作为其中的数字音频程序员,Michael Hawley参与了SoundDroid(音响机器人)的软件开发,这款软件可以看作一个装在盒子里的全数字化音响工作室,它可以对声音进行储存、录制、编辑和混合,当然也可以把声音当即播放出来。
Hawley现年24岁。他成长于纽约市郊区的新普罗维登斯,并在那里熟悉了计算机和编程。在整个高中和大学的时间里,他在附近默里山 的贝尔实验室里打工。当他在贝尔实验室培育着计算机方面的兴趣时,他同时也在耶鲁大学进行着音乐和钢琴的正规学习,并在1983年获得了音乐和计算机科学的双学位。毕业后不久,他作为贝尔实验室的访问研究员去了巴黎的IRCAM(声学/音乐协作研究院)。在巴黎时,他开发了计算机音乐应用程序的用户界面原型,同时又在IRCAM的音乐会系列中参加了一首为双钢琴和电子音乐所作的奏鸣曲的首场世界公演。离开IRCAM后,Hawley朝西搬迁,并加入了加利福尼亚马林县的Droid Works。
在我进入Droid Works办公室所在的大楼时,我看到灯光、摄影器材和音响器材的工作人员四处穿梭的身影。这首先就告诉我,Droid Works更多是属于电影娱乐行业而非传统的软件和计算机行业。