时间:2016-12-28来源:本站原创作者:佚名

来自:码农翻身()

作者:IBM刘欣

已获转载授权

有这样一批IT界的牛人们,他们做出的那些常人难以企及的开创性工作,常常让我们叹而观止,仅仅用“牛”来形容已经不够了,得用“神一样的超级程序员”才能表达敬仰之情,这里总结一下,可以作为大家茶余饭后的谈资:-)D.EKnuth(高纳德.克努特)

他最为人知的工作就是经典巨著《计算机程序设计的艺术》,这本书第一卷《基本算法》于年推出,可真正能读完并且真正读懂的人并不多,比尔.盖茨在年接受一次采访时说,“如果你认为你是一名真正优秀的程序员,就去读第一卷,......如果你能读懂整套书的话,请给我发一份你的简历。”

我在大学时从图书馆借了这本书,试图啃下来,结果开了个头就看不下去了,惭愧!

年,这部刚出到第三卷的书(计划写七卷)已被计算机界视为“神作”,年美国计算机学会就“迫不及待”的把计算机界的最高奖图灵奖授予克努特-此时高纳德仅仅36岁!只靠一套还没有完成的书就获得ACM图灵奖,不但是前无古人,估计也后无来者了。

然而令人大跌眼镜的是,拿到图灵奖以后,高纳德宣布暂停写作,理由竟然是现有的计算机排版系统太差,破坏了书的美感!然后单枪匹马开发出了革命性的排版系统TEX,TEX至今仍是全球学术排版的不二之选。

TEX功能强大,几乎无懈可击,其版本号也很有意思,不是数字(3.0,3.1,3.2....)也不是年份(Windows95,98,...),而是不断逼近的圆周率(3....),这从侧面反映了软件几近完美,不需要做改进了。

(最新消息:高德纳曾表示“最后一次升级是(于我过世后)将版本数改为π,那时任何余下的漏洞将被看作程序的功能!)

有趣的是高纳德为此还设置了奖金,谁能从TEX发现第一个Bug,奖励2.56美元,第二个5.12美元,第三个10.24美元,作为算法的大师,不可能不知道指数增长的可怕性,但至今为止他也没有为此付了多少钱。那些找到Bug的人收到高纳德签名的支票以后也不去兑换,而是作为珍品收藏了:-)

《计算机程序设计的艺术》展示了高纳德深厚的理论功底和高超的数学知识,TEX则体现了一个超级程序员的能力,在计算机的历史上,极少有人能把超强理论和超一流的实践能力集于一身,实在是令人叹而观止。

感谢上帝,给我们送来了高纳德。

来一张标准照

再来一张获奖照,哪个是高纳德?

Unix和C语言之父KnThompson和DnnisRitchi

两个大牛肯·汤普逊(KnnthLanThompson)、丹尼斯·里奇(DnnisMacAlistairRitchi),Unix和C语言之父,年ACM图灵奖的获得者。理由是他们“研究发展了通用的操作系统理论,尤其是实现了UNIX操作系统”.

注意后半句,搞计算机的多少都会有一点OS情节,总是梦想是自己也能做一个OS,我也是这样。可对大多数人来说,这是梦想而已,因为现代的操作系统太复杂,太庞大,你即使精通理论,实现的工作量远远超出了一个人的能力范围。

但是两位老兄竟然自己卷起袖子,带头编写了一个千古流芳的操作系统(Unix的重要性和影响力这里就不用啰嗦了,反正它和它的变种们已经统治了服务器端和手机端),我们看看第一版是怎么出炉的:

年,两人被贝尔实验室派到MIT去参加一个ARPA出资的项目,开发一个分时的操作系统MULTICS(支持多任务并发运行,这在60年代可是很稀罕的),在项目完成前不久,贝尔因为开发费用太大,而开发成功希望不大而把他们调回贝尔,两人深感沮丧。

回到贝尔以后,面对实验室落后的仍以批处理工作的计算机环境,他们非常怀念MULTICS,决定自己动手改造,创造一个“舒适的,愉快的工作环境”。但是贝尔实验室因为退出了MULTICS,更不会出钱来支持他们。

年万般无奈的Thomason在库房里发现了一个弃之不用的PDP-7,大喜过望,立刻开始实施他们的计划。但是PDP-7实在是老掉牙了,Thomason又借口帮助公司开发一个字处理系统来处理专利申请书,冠冕堂皇的申请到一个新的,设备完善的PDP-11,这才使开发工作顺利开展。

他们以极大的热情和极高的效率投入工作,使用汇编语言, 开发基本上以每个月一个模块(内核,文件系统,内存管理,I/O。。。)的速度推进!

请注意关键字,1.汇编语言,2.每月一个模块。

每次我看到这里,不由的倒吸一口凉气,这实在是一个细思极恐的事情。

学过汇编的都知道,汇编只不过是二进制语言的一些助记符而已,连最基本的函数封装都没有,想做个循环必须用goto,记得大学时学汇编,写个简单的读取键盘输入,在屏幕上回显都很费劲。

可是这两位老兄竟然用汇编实现了操作系统,并且一个月就能搞定内核,再用一个月就能搞定文件系统,你能想象得到他们到底有多牛吗?

有人可能要问了,为什么不用C语言呢? 答案很简单,C语言这时候还没有被他们俩发明。

Unix在PDP-11上实现以后,两人很快就发现移植性很差,这是当然,汇编语言嘛,高度依赖硬件。

他们试图用一个高级语言来重写,先选择了BCPL(简称B语言),然后又尝试PASCAL,发现都不行,它们都不太贴近硬件操作。于是两个人(主要是DnnisRitchi)决定自己开发一套新的语言:这就是大名鼎鼎的C语言。

C语法简洁,对计算机模型做了良好的抽象,能够直接对内存操作,并且保持了很好的移植性。

C的语法风格深深地影响到了他的那些著名的后辈们C++,Java,C#......都采用了大括号作为方法体的开始和结束,都使用分号来分开statmnt,至于if..ls,whil,switch等基本控制语句几乎一样,甚至连注释的风格都差不多。由此可见C的影响力和历史地位。

DnnisRitchi用C语言重写了Unix,重写说起来简单,实际上并不是简单的汇编到C语言的翻译,这里边包含了很多的发明和创造。

重写过的Unix很快就流行起来,40多年过去了,虽然出现了很多的类Unix系统,例如Linux,但是他们都继承了Unix中的基本思想,并且发扬光大。

关于Unix有个很有趣的故事,传说KnThompson在贝尔实验室,大摇大摆的走到任何一台Unix机器前,输入自己的用户名和密码,就能以root的方式登录!贝尔实验室人才济济,另外一些大牛发誓要把这个漏洞找出来,他们通读了Unix的C源码,终于找到了登录的后门,清理后门以后编译Unix,运行,可是Thompson还是能够登录进去。

有人觉得可能是编译器中有问题,在编译Unix的时候植入了后门,于是他们又用C语言重新写了一个编译器,用新的编译器再次编译了Unix,这下总算天下太平了吧。

可是仍然不管用,Thompson依然可以用root登录,真是让人崩溃!

后来Thompson本人解开了秘密,是第一个C语言编译器有问题,这个编译器在编译Unix源码的时候,当然会植入后门,这还不够,更牛的是,如果你用C语言写了一个新编译器,肯定也需要编译成二进制代码啊,

用什么来编译,只有用Thompson写的那第一个编译器来编译,好了,你写的这个编译器就会被污染了

你的编译器再去编译Unix,也会植入后门:-)

KnThompson和DnnisRitchi绝对是两位超级程序员,Thompson后来加入Googl,和RobPik(另外一个大牛)等人一起创造了Go语言,我在这里大胆的预测一下,Go语言将来在系统编程领域会替代C语言。DnnisRitchi年去世,享年70岁。

来一张获奖照吧,两个大胡子,经常分不清谁是谁,右边那位大家肯定都认得,克林顿同学给他们颁发国家技术奖

安德斯·海尔斯伯格(AndrsHjlsbrg)

其实安德斯还真的和图灵奖有那么一点点联系,故事需要从Pascal这门曾经大红大紫的语言说起。

凡是学过一点计算机知识的人大概都知道程序=数据机构+算法这一著名公式,提出这一公式的就是年的图灵奖获得者尼克罗斯.沃思(NiklausWirth)。沃思还提出了结构化程序设计概念,我们现在可能觉得是司空见惯了,但是在年“自顶向下,逐步求精“的方法的确改变了人们对程序设计的思维方式,在程序设计中引起了一场革命,成为程序开发的标准方法,尤其是在后来的软件工程中获得了广泛的应用。

当然我们这里提到沃思还是因为他是Pascal之父,上个世纪60年代沃思在苏黎世工学院任教(注意:这是一个牛校,他的毕业生和教授中诞生了21个诺贝尔奖获得者,包括大名鼎鼎的爱因斯坦)期间发明了Pascal,Pascal语言奠定了结构化程序设计中常用的数据结构和控制结构,为程序员提供了极大的方便和灵活性,在C诞生以前,是最受欢迎的语言。

有趣的是沃思发明Pascal最初只是想用来教学,并没有想到商业应用,他的一个学生PhillipKahn从苏黎世工学院毕业以后,在美国加州创建了一个后来大红大紫的公司:Borland,Borland创立之初,便注意到了AndrsHjlsbrg编写的一个Pascal编译器,很快雇佣了他,把编译器买了过来,更名为TurboPascal。

从此安德斯登上了软件开发的历史舞台。

Andrs出生于丹麦,作为北欧的一个小国,像丹麦,荷兰,芬兰,瑞典一样,虽然国土面积很小,人口很少,却在近现代的历史上展示了非凡的创造力,有时间专门写一篇文章:聊聊北欧的小国

Andrs大学也没有毕业,基本上是自学成才,可以这么说,他对编译器和开发语言的理解全世界没几个人能超越(李维语),他开发的TurboPascal在年一经推出,就以闪电般的编译速度震惊了世界,在全世界狂卖出了多万个Copy,不要小看多万这个数字,80年代初微机刚刚开始起步,年IBM才公布IBM兼容机的标准,当时的程序员非常少,多万个Copy几乎占据了绝大部分市场。

由于每个Copy定价49.95美金,PhilipKahn和Andrs都变成了百万富翁。

也许是我大学编译原理学的不好,觉得实现编译器是一件非常难的事情,所以对能写编译器的人总是心怀敬意。

安德斯竟然用汇编语言实现了编译器,并且能在一个极小的内存中以极快的速度执行,考虑到上个世纪80年代初的硬件,真是非常了不起。

上一张图吧,怀旧一下:-)我没有学过Pascal,只是在大学里学过C语言,TurboPascal和后来Borland开发的TurboC在UI上极其相似,连菜单项的次序Fil,Edit,Sarch,Run...都一样,看着这张DOS下的IDE,真是感慨啊。

历史的车轮滚滚向前,在IT界无论你曾经多么成功,如果不改变的话很快就会被抛在后面,TurboPascal也不例外。

随着面向对象和Window编程的兴起,TurboPascal也到了改变的时刻。

做为LadArchitct,安德斯带领团队开始从DOS转向Window平台,并且在编译器中开始支持ObjctPascal:一种Pascal的扩展,实现了面向对象的特性。

但是仅仅在Window平台上实现面向对象的Pascal是远远不够的,想让开发人员迅速的开发应用程序,还必须有一个可视化的应用程序框架和类库,这就是Borland的VCL.

终于在年,Borland推出了Window平台上的大名鼎鼎的开发工具:Dlphi.

“真正的程序员用VC,聪明的程序员用Dlphi”,这句话是对Dlphi最经典、最实在的描述。在我看来Dlphi之所以如此成功,成为VBKillr,主要有下面几个原因:

1.编译速度超快,生成的可执行文件效率很高:这当然是安德斯深厚功力的体现

2.VCL(VisualCompontLibrary)非常成功,设计紧凑,优雅,可扩展行很强,相对于复杂,难用的MFC不知道要高几个档次

3.在数据库方面的特长非常突出,他的BDE(BorlandDatabasEngin)可以和市面上的所有的数据库连接,对于C/S架构的应用程序开发来说是不二之选。

据说Dlphi这个名称有个很有趣的来历,当时市面上Oracl数据库最流行,Oracl的意思是神谕,先知(还记得黑客帝国中的那个先知吗)?

Dlphi意思是神庙,圣殿,Borland的工程师把产品叫做Dlphi,其实是想体现能和Oracl连接的想法:IfyouwanttotalktoOracl,plasgotoDlphi.

很多中国程序员都有Dlphi情结,也出现了很多Dlphi高手,比如写了《Dlphi源码分析》和《大道至简》的周爱民,还有现任







































北京治疗白癜风最好医院
宝宝白癜风能治好吗

转载请注明原文网址:http://www.helimiaopu.com/jsyy/4128.html

------分隔线----------------------------