MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and
why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy,
前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作
者。当然,Csh Programming Considered Harmful
是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix,
也就是BSD的前身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DAR
PA让BBN在Berkley
Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN
TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封喉,
很快就写出了高性能的伯克利版TCP/IP。当时BBN和DARPA签了巨额合同开发TCP/IP
Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿个T-shir
t出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你怎么写出来
的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯伯硕士毕业
后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把Sparc设计出
来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill
Joy的同事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B
伯伯发言,直切要害,提出 漂亮的构想,让同事们彻底崩溃。对了,他还是Java
Spec和JINI的主要作者之一。
John Carmack,ID Software的founder和Lead
Programmer。上个月和一个搞图形的师兄聊天,他竟然不知道John Carmack,
也让偶大大地晕了一把。不过也许搞研究的和搞实战的多少有些隔吧。想必喜欢第一人称射
击游戏的都知道J哥哥。90年代初只要能在PC上搞个小动画都能让人惊叹一番的时候,J哥哥
就推出了石破天惊的Castle Wolfstein, 然后再接再励,doom, doomII,
Quake...每次都把3-D技术推到极
限。J哥哥的简历上说自己的专长是"Exhaust 3-D
technology",真是牛人之言不我欺的说。做J哥哥这样的人是很幸福的,因为各大图形卡厂
家一有了新产品就要向他“进贡”
,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听取
他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以上,
也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过呢,谁要
用这个例子来为自己学习不好辩护,就大错特错了。那Leonardo Da
Vinci还是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实
偶们叫“达分奇”是相当不对的,因为Vinci是地名,而Da
Vinci就是从Vinci来的人的意思。换句话说,Leonardo Da
Vinci就是“从Vinci来的Leonardo”的意思。叫别人“Da
Vinci”就不知所谓乐。嗯,扯远了,打住。
David Cutler,VMS和Windows
NT的首席设计师,去微软前号称硅谷最牛的kernel开发员。当初他和他的手下在微软一周内
把一个具备基本功能的bootable kernel写出来,然后说:“who can't write an OS in a
week?",也是牛气冲天的说。顺便说一句,D爷爷到NT3.5时,管理1500名开发员,自己还兼
做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。
日常交谈F-word不离口。他面试秘书时必问:"what do you think of the word 'fuck'?"
,让无数美女刹羽而归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's
my favorite word"。于是她被录取乐,为D爷爷工作到NT3.5发布。
Don
Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,学数学
的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到Anders
Hejlsberg,或者学Linux不知道Linus Torvalds一样,不可原谅啊。
为了让文章完整,就再罗唆几句吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪
的编译器挣外快了。他卖给别人时收一两千美元,那些公司拿了code,加工一下卖出去就是
上万上十万。不过也没见高爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写
编译器写多了,顺带就搞出了个Attribute
Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比赛(有Alan
Kay得众多高高手参加)总是第一,写的Tex到86年就code
freeze,还附带2^n美分奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics
写的前言可谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,
而且没有学究气,不失轻快跳脱。记得几年前读Concrete
Mathemathics,时不时开怀大笑,让老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢
,子非鱼,安知鱼之乐,更不知那完全是高爷爷的功劳。说到写作高手,不能不提Stephen
A.
Cook。他的文章当年就被我们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发
,身材颀长,总是面带谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard
Stallman那样八方奔走,但他捐献了好多作品,都可以在网上看到,比如著名的Mathematic
al Writing,MMIXWare,The Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M.
Riche老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan
9的主要作者(另一个是大牛人Rob Pike,
前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是计算
机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山仰止的份
儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是他和DMR怒了
,在1969年到1970间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不知道,一场轰轰
烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重写,于是C在随后20年成
就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell
Lab里供大家日常使用。很快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell
Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX代
码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清净了”
的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只好继续郁
闷。谁知道这一郁闷,就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码里的确有后
门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器编译UNIX的代码
,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译器。
(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统
。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开发
Unix的猛人,UTF-8的设计人。他还在美国名嘴David Letterman的晚间节目上露了一小脸
,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银
牌得主。他还是个颇为厉害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞
机上。他还是两本经典,The Unix Programming Environment 和 The Practice of
Programming
的作者之一。如果初学者想在编程方面精益求精,实在该好好读读这两本书。它们都有中文
版的说。罗伯伯还写出了Unix下第一个基于位图的窗口系统,并且是著名的blit
终端的作者。当然了,罗伯伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的
是,Plan9并没有引起多少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems
Software Research is
Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯含忿
出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越来越大,
用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的革新越来越少
。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不遗余
力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道了。具有超
强容错和负载平衡能力的分布式文件系统GFS
(现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统也不
多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的说),更
不用说处理海量并行计算的各式google服务了。Rob在System Software Research is
Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到他错了,应为goog
le关心。google网络了大批功成总是试图吸取系统研究的最新成果。想必Rob
Pike在google很幸福。愿他做出更棒的系统。