`
ender
  • 浏览: 42801 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

茶余饭后:聊一聊那些神一样的程序员们 (1)

阅读更多

中午吃饭回来, 路上和同事偶尔聊起了IT界的一些牛人们, 他们做出的那些常人难以企及的开创性的工作,常常让我们是叹而观止,仅仅用“牛”来形容已经不够了, 得用“神一样的超级程序员” 才能表达敬仰之情,这里总结一下,可以作为大家茶余饭后的谈资 :-)

 

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

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

 

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

 

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

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

 

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

 

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

 

来一张标准照
唐纳德
再来一张获奖照 , 哪个是高纳德?
 
-------------------------------------------------------------------------------------------------------------------------------
再来谈谈另外两 个大牛 肯·汤普逊(Kenneth Lane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie), Unix 和C 语言之父 , 1983年ACM 图灵奖的获得者。理由是他们“研究发展了通用的操作系统理论,尤其是实现了UNIX操作系统”.

 

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

 

但是两位老兄竟然自己卷起袖子,带头编写了一个千古流芳的操作系统(Unix 的重要性和影响力这里就不用啰嗦了),我们看看第一版是怎么出炉的:
1968年 ,两人被贝尔实验室派到MIT去参加一个ARPA出资的项目,开发一个分时的操作系统MULTICS (支持多任务并发运行,这在当时可是很稀罕的), 在项目完成前不久,贝尔因为开发费用太大,而开发成功希望不大而把他们调回贝尔,两人深感沮丧。

 

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

 

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

 

他们以极大的热情和极高的效率投入工作,使用汇编语言, 开发基本上以每个月一个模块(内核,文件系统,内存管理,I/O。。。) 的速度推进
请注意关键字,1. 汇编语言,2. 每月一个模块。
每次我看到这里,都不由的倒吸一口凉气。

 

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

 

可是这两位老兄竟然用汇编实现了操作系统, 并且一个月就能搞定内核,再用一个月就能搞定文件系统,你能想象的到他们到底有多牛吗?
有人可能要问了,为什么不用C 语言呢? 答案很简单,C语言这时候还没有被他们俩发明。

 

 Unix 在PDP-11上实现以后,两人很快就发现移植性很差, 这是当然,汇编语言嘛,高度依赖硬件。
他们试图用一个高级语言来重写,先选择了BCPL(简称B 语言) ,然后又尝试PASCAL ,发现都不行,它们都不太贴近硬件操作。 于是两个人(主要是Dennis Ritchie)决定自己开发一套新的语言:这就是大名鼎鼎的 C 语言。

 

C 语法简洁,对计算机模型做了良好的抽象,能够直接对内存操作,并且保持了很好的移植性。
C的语法风格深 深地影响到了他的那些著名的后辈们 C++, Java , C# ...... 都采用了大括号作为方法体的开始和结束,都使用分号来分开statement , 至于if .. else , while , switch 等基本控制语句几乎一样, 甚至连注释的风格都差不多。  由此可见C 的影响力和历史地位。

 

Dennis Ritchie 用C 语言重写了Unix , "重写"说起来简单,实际上并不是简单的汇编到C语言的翻译, 这里边包含了很多的发明和创造。
重写过的Unix 很快就流行起来,40 多年过去了,虽然出现了很多的类Unix 系统,例如Linux,  但是他们都继承了Unix 中的基本思想, 并且发扬光大。

 

对于Unix 有个很有趣的故事,传说KenThompson在贝尔实验室,大摇大摆的走到任何一台Unix机器前,输入自己的用户名和密码,就能以root的方式登 录! 贝尔实验室人才济济,另外一些大牛发誓要把这个漏洞找出来,他们通读了Unix的C源码,终于找到了登录的后门, 清理后门以后编译Unix , 运行, 可是Thompson 还是能够登录进去。
有人觉得可能是编译器中有问题,在编译Unix的时候植入了后门, 于是他们又用C语言重新写了一个编译器,用新的编译器再次编译了Unix, 这下总算天下太平了吧。
可是仍然不管用, Thompson 依然可以用root登录,真是让人崩溃 !

 

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

 

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

 

来一张获奖照吧,两个大胡子,经常分不清谁是谁,右边那位大家肯定都认得,克林顿同学给他们颁发国家技术奖章
 --------------------------------------------------------------------------------------------------------------------------------
安德斯·海尔斯伯格(Anders Hejlsberg )没有获得过图灵奖, 在名气上比不上前面几位,但也是另外一个传奇。
有时间再写......
分享到:
评论
1 楼 Yeungeek 2013-05-10  
lz,不错
这些资料你都是从哪里得到呢

相关推荐

    茶余饭后聊聊Vue3.0响应式数据那些事儿

    “别再更新了,实在是学不动了”这句话道出了多少前端开发者的心声,”不幸”的是 Vue 的作者在国庆区间发布了 Vue3.0 的 pre-Aplha ...今天咱就聊聊重构后的响应式数据。 尝鲜 重构后的 Vue3.0 和之前在写法上有很

    Java程序员,上班那点事儿(完整版)

    茶余饭后值得你去阅读的一本休闲技术书,作者以独到的观察向你阐述了作为一名java开发人员应该具有哪些东西,而且是完整版哦!!

    新手帖关于PWM逆变器从论坛上DOWN了一个逆变器模型-PWM_Discrete.mdl

    新手帖关于PWM逆变器从论坛上DOWN了一个逆变器模型-PWM_Discrete.mdl 从网上DOWN了一个简单的逆变器模型,附件见下,我得PWM序列生产一个是用连续的,一个是用离散的,模型中...请高手们茶余饭后帮忙解答!小弟谢过!

    新手帖关于PWM逆变器从论坛上DOWN了一个逆变器模型-PWM_continue.mdl

    新手帖关于PWM逆变器从论坛上DOWN了一个逆变器模型-PWM_continue.mdl 从网上DOWN了一个简单的逆变器模型,附件见下,我得PWM序列生产一个是用连续的,一个是用离散的,模型中...请高手们茶余饭后帮忙解答!小弟谢过!

    leetcode答案-Dalao:某群大佬茶余饭后的消遣

    每日一题(也称大佬带我装逼带我飞) 1. 这家前后端关系肯定好不到哪里去 出题人 B大 这段php代码 可能输出一个 JSON 也可能输出空 const foo = { bar: <?php> } 输出json时示例如下 const foo = { bar: {} } ...

    人工智能 Java 调用百度AI、腾讯AI、腾讯优图、.rar

    况且你还是一名产品经理,技能之一就是八面玲珑又要有求知的欲望,不断的学习和吸收新的知识。 人工智能的文章和各类分享很多,看了很多,电脑里也下载了很多资料和视频,可是我知道这都是知识的幻觉。 因为看的越...

    【日记】初二除夕之夜日记五篇.doc

    1. 除夕的重要性:除夕是中国传统节日中最重要的日子之一,象征着辞旧迎新,家庭团聚。在这一天,人们会举行各种庆祝活动,以表达对新一年的期待和对家庭和睦的珍视。 2. 团圆饭的意义:除夕团圆饭是华人家庭的重头...

    普通话考试最后一题自由式话题(范文全).doc

    普通话考试最后一题自由式话题(范文全) 本文档是一个普通话考试的最后一题自由式话题的范文,全文分为三个部分:我的愿望、我的学习生活和我最尊敬的人。 我的愿望 人是要有愿望(梦想)的。人没了愿望(梦想)...

    疯人院 v1.0.4

    同时还有脑残对话制作器,让疯友们可以拍下身边的疯人疯事,制作脑残对话。 我们发布内容的原则是有疯点、有笑点、有内涵,并且是和谐社会允许的内容(你懂的)。 作为疯友,您可以“顶”您觉得好的内容,还可以将...

    少主可盐可甜

    从标题和描述中可以看出,本篇文章的内容是围绕一位名为江家少主的角色及其相关的故事展开的。文中主要讲述了江家少主与一名神秘女子之间的...同时,通过主角们的互动和经历,传达了一种关于人性、情感与道德的价值观。

    央视春晚观后心得通用范文6篇.docx

    魔术师们通过精湛的技艺展示各种不可思议的现象,为观众带来视觉盛宴的同时,也激发了人们的好奇心和探索欲。 ### 春晚对个人情感的影响 - **情感共鸣**:春晚节目中不乏能够触动人心弦的作品,如《父子》这一节目...

    大数据时代的利及弊.doc

    有三个案例比拟有意思,一是福特的名言,"如果当年去问顾客他们想要什么,他们肯定 会告诉我:一匹更快的马。〞 乔布斯多年来持续不断地改善Mac笔记本依赖的可能是行业分析,但是他发行的iPod、i Phone和iPad靠的...

    啊哈C!思考快你一步

    这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述...

    啊哈C!思考快你一步-用编程轻松提升逻辑力.pdf

    这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述...

    啊哈c语言pdf

    这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述...

    啊哈C!思考快你一步——用编程轻松提升逻辑力(带书签)

    这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述...

    android游戏像素鸟

    它的开发过程展示了Android平台上游戏开发的基本流程和技术要点,对于想学习Android游戏开发的程序员来说,像素鸟是一个很好的学习案例。通过深入研究这个游戏,我们可以了解到Android应用开发的基本技能,包括Java...

    精品-九型人格培训PPT课件模板.pptx

    1. 九型人格学的定义:九型人格学是一种古老的学问,它按照人们习惯性的思维模式、情绪反应和行为习惯等性格特质,将人的性格分为九种。 2. 九型人格的九种类型: * 第一型:完美型 * 第二型:助人型 * 第三型:...

    数学家的故事,使你更深刻地了解数学的美丽

    4. 四色定理:这是一个困扰数学家许久的难题,数学家们在尝试证明这个定理的过程中展现了坚韧不拔的精神。Minkowski的自信尝试虽然未果,却也反映了数学探索过程中的挫折与挑战。 这些故事不仅是数学历史的一部分,...

Global site tag (gtag.js) - Google Analytics