找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2630|回复: 0
打印 上一主题 下一主题
收起左侧

图灵的光环

[复制链接]
跳转到指定楼层
楼主
ID:94097 发表于 2015-10-30 14:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
个人认为,王垠对图灵的评价很中肯,希望大家有耐心看完。类似的,还可以举出很多人物和事例,如诸葛亮的军事才能并不突出(可谓识治之良才,管、萧之亚匹矣。然连年动众,未能成功,盖应变将略,非其所长欤!)康熙(武功是没问题的,文治有争议)袁崇焕(打仗是没问题的,但没有力挽狂澜的能力)及linux(NB是吹出来的),转载这篇文章是希望大家明白,要敢于质疑。

全世界的人都知道,图灵(Alan Turing)是个天才,是他创造了计算机科学,是他破解了德国的Enigma密码,是他拯救了全人类。然而根据一些最近解密的二战历史资料,以及自己一直以来对图灵机等计算模型的看法,我发现图灵所受到的崇拜,相对于他本人的实际成就,其实相差甚远。
由于二战以来各国对于当时谍报工作的保密措施造成的事实混淆,再加上图灵的不幸生世所引来的同情,图灵这个名字似乎拥有了一种扑朔迷离的光环。人们把很多本来不是图灵作出的贡献归结在他身上,也把本来平平常常的贡献任意地夸大。图灵的光环,掩盖了许多对这些领域做出过更加重要贡献的人。
在图灵诞辰一百周年的时候,人们风风火火的召开各种大会,纪念这位“计算机之父”。各大媒体也展开宣传,大力鼓吹图灵的丰功伟绩。甚至有人乘机写了一本图灵的传记,叫做《Alan Turing: The Enigma》。此书肆意的歪曲和贬低其他人,说别人都在偷窃图灵的研究成果,都在欺负他,云云。添油加醋地抬高图灵的功劳,把他吹捧为天才,把他的工作全都叫做史无前例的,开天辟地的发明。如果你不想花钱买书,可以看看此书作者写的一个图灵简要生平,足以显示其谬误和夸大之处。
由于这个原因,我想根据自己对一些专业知识和历史资料的了解,把自己对于图灵这个人的看法澄清一下。
密码学
很多人提到二战Enigma密码的故事,都会把功劳一股脑地归到图灵头上,以至于只字不提其他人。然而纸终究是包不住火的,最近解密的资料说明,图灵的工作其实大部分属于对以往工作的“改进”,而不是独创的发明。当年好些人对破解Enigma密码的贡献比图灵大很多,然而却很少有人听说过他们的名字。这是不公平的。
最近的多国间谍首脑会议,对一些二战历史资料进行了解密。你可以从这些信息发现,破解Enigma密码的大部分初创性工作,其实不是英国人,而是波兰人完成的。波兰人不但俘获并且复制了德国人的Enigma机器,而且发现了其中微妙的漏洞,制造了一种用于解密的机器叫做BOMBA)。英国的密码工作还没开始,波兰科学家们早已经可以破解德国陆军和空军的Enigma密码。
英国人的工作,其实是把波兰人送给他们的核心技术扩展到可以破解德国海军的密码。海军的密码比起陆军和空军的,其实大同小异。如果波兰没有被攻陷,海军的密码一样会被他们破掉。关于Enigma密码机器是如何工作,有什么特点和漏洞,民用和军用Enigma机器的区别,海军的Enigma机器有什么不同,你可以参考这两个技术性的视频:[视频1][视频2]。
所以英国人(图灵是其中之一)所做的工作,其实是建立在波兰科学家的“初创性”工作之上,属于一种“改进”或者“优化”。波兰人其实没有遇到技术困难,但由于被德国侵略,波兰情报局决定把Enigma密码的关键技术送给英国和法国,希望得到他们的帮助。虽然最后是英国的密码工作使二战得到了转机,但这并不应该掩盖波兰科学家做出了初创性工作,波兰人给了英国人最关键的技术这一事实。
计算机科学
图灵被堂而皇之地称为“计算机之父”,计算机科学界的最高荣誉也被叫做“图灵奖”(Turing Award)。然而如果你深入的理解了计算理论和程序语言理论,就会发现其实图灵对于计算机科学也没有很多初创性的贡献。
绝大部分计算机专业的人提到图灵,就只知道图灵机(Turing Machine)。稍微有点研究的人,可能知道图灵机与lambda calculus的等价性。Lambda calculus很容易理解,然而对于这图灵机,人们却看不透它其中的奥妙,觉得高深莫测。虽然大家实际编程用的语言基本是lambda calculus衍生来的,跟图灵机八帽子远,可总觉得“图灵机”这名字显得高大上一些,所以总喜欢在research paper里用图灵机作为模型。
在我看来,其实计算理论这个领域,恰恰是被图灵机给无端的复杂化了。图灵机充其量算个理论模型,完全不能实用。而就算是作为理论模型,它也是丑陋而复杂的。其实图灵机诞生好多年以前,就已经存在一个更好更简单的模型—lambda calculus,它是由图灵的PhD导师Alonzo Church发明的。图灵没能理解lambda calculus的精髓,他偏执的认为,自己设计的图灵机才是划时代的创新。所以他跟Church以及师兄们都合不来,自己把自己孤立起来。
现在看来,图灵机比起lambda calculus来说,其实算是一个历史的倒退。Lambda calculus比图灵机早好多年诞生,能够描述图灵机所能描述的一切理论,却比图灵机还简单好多,以至于很多人都搞不明白,图灵机除了让一些理论显得高深莫测,还有什么存在的意义。然而图灵的名气真是莫名其妙的大呀,轻松地压倒了Church,以至于很多计算机行业的人一大把年纪了,还不知道Church是谁,他做了什么。
然而由于图灵离奇的生世,他在死后忽然有了许多的拥鳖。这些人喜欢图灵机,因为它能让自己的理论显得高深莫测,晦涩难懂。普通的计算理论课本,往往用图灵机作为它的计算模型,用很苦逼的办法推导各种可计算性(computability)和复杂性(complexity)理论。特别是像Sipser那本经典教材,含混晦涩,语言混淆不堪,有时候让我怀疑作者自己有没有搞懂那些东西。
后来我发现,其实图灵机所能表达的理论,全都可以用更加简单的lambda calculus(或者任何一种现在流行的程序语言)来表示。图灵机的每一个状态,不过对应了lambda calculus(或者某种程序语言)的一个“AST节点”,然而用lambda calculus来表示那些计算理论,却可以比图灵机清晰和容易很多。在Indiana大学做计算理论课程助教的时候,我把这种思维方式悄悄地讲述给了上课的学生们,他们普遍表示我的这种思维方式容易理解很多,而且更加贴近实际的编程。
我曾经以为自己是唯一知道这个秘密的人,直到有一天我把这个秘密告诉了我的PhD导师,Amr Sabry。他对我说:“哈哈!其实我早就知道这个,你可以参考一下Neil Jones写的一本书,叫做《Computability and Complexity: From a Programming Perspective》。(这本书现在已经可以免费下载
此书作者用一种很简单的程序语言,阐述了一般人用图灵机来描述的那些理论(可计算性理论,复杂性理论)。他发现用程序语言来描述计算理论,不但简单直接,清晰明了,而且在某些方面可以更加精确地描述图灵机无法描述的定理。得到这本书,让我觉得如获至宝,原来世界上有跟我看法如此相似,对事物洞察力如此之高的人!
在一次会议上,我有幸地遇到了Neil Jones,跟他切磋思想。当提到这本书的模型与图灵理论的关系,老教授谦虚的对我说:“图灵的模型还是有它的价值的……” 可是到最后他也没能说清楚这价值何在。我心里很清楚,他只是为了避免引起宗教冲突,或者避免显得狂妄自大,而委婉其词。眼前的这位教授,虽然从来没有得过图灵奖,他对于计算本质的理解,却比图灵本人还要高出很多。
电子计算机
很多计算机科学家喜欢说,大家现在用的电子计算机,“只不过”是一个Universal Turing Machine。那么现在让我们来看看图灵本人真正对电子计算机的发展起过多大作用吧。如果一个人对一个行业起过重大的作用,那我们可以说“没有他不行”。然而事实却是,即使没有了图灵,电子计算机照样像今天一样发展,不会受到任何影响。这是为什么呢?
根据老一辈工程师的叙述,图灵的工作和理论,对于他们当年设计和制造实际可以用的电子计算机,其实几乎没有任何作用。很多工程师当时根本不知道图灵是谁,图灵机是什么,他们只是根据自己对于“计算”的理解,设计和制造了那些计算机电路。这就是为什么我们今天看到的电子计算机,跟图灵机几乎完全不搭边。
世界上最早的两台电子计算机,ENIAC和EDVAC,都是美国人设计制造的(其中,冯诺依曼起了重要作用)。在EDVAC诞生几个月之后,图灵才被英国国家物理实验室(NPL)安排到一个独立的项目,他们看见美国的计算机技术发展,着急了,所以想让他帮忙山寨一个EDVAC的“英国特色版本”。
图灵设计的机器叫做ACE(Automatic Computing Engine)。它在操作细节上跟EDVAC几乎没有区别,只不过图灵的ACE报告东拉西扯,也不想想拿这机器来做点立竿见影立马可以用的项目,结果最后异想天开扯上了“思考机器”(thinking machine)。最后图灵只打了个草稿,就在头脑秀逗中休年假去了。
估计所谓“图灵测试”(Turing Test)就是那时候提出来的。当然了,因为他扯到了“thinking machine”,后来就有人把他捧成人工智能(AI)的鼻祖。其实呢,图灵测试根本就不能说明一个机器具有了智能,它只是在测试一些肤浅的表象。扯远了,总之图灵的报告没有在设计“计算机器”这个角度进行任何创新,倒是提出了一些不切实际的“应用”。
最后,ACE的工程在没有图灵的情况下展开了。到1950年的时候,ACE运行了它的第一个程序。ACE最后的设计,其实跟图灵的报告已经没有半点干系。等图灵放完假回来,直到他去世的那天,都在设想一些更秀逗,更不实际的工作:他想用那机器来模拟和研究胚胎的发育过程。至此,图灵成为了ACE计算机的“用户”,而不再是它的“设计者”。不过呢,后人不但坚持的认为他发明了计算机,而且还说他开创了一个新的领域,叫做“ Morphogenesis”…… 你说怪不怪。
所以你看到了,图灵并不是一个实干家,他并没有造出任何一台有用的计算机,他对计算机的工程设计几乎没有任何实际的影响。在ACE的项目中,他最多算个“architect”。不过他恐怕是那种不切实际,一行代码不写,喜欢异想天开瞎指挥,让真正动手做事的工程师发疯,最后却拿走所有credit的那种architect。
可惜的是,总有些人喜欢把真正的实干家们千辛万苦造出来,真正可以用的机器和语言,牵强附会地归功于某些不搭边的理论家,仿佛那是理论家的功劳似的。这也许就是为什么图灵被他们称为“计算机之父”吧。
总结
我说这些是为了什么呢?我当然不是想否认图灵所做出的贡献。他的工作当然是有意义的,然而那种意义并不像很多人所吹嘘的那么伟大,它们甚至不包含伟大的创新。
我觉得很多后人给图灵带上的光环,掩盖了太多其它值得我们学习和尊敬的人。计算机科学不是图灵一个人造出来的,图灵并不是计算机科学的鼻祖,他甚至不是在破解Enigma密码和电子计算机诞生过程中起最重要作用的人。
许许多多的计算机科学家和电子工程师们,是他们造就了今天的计算科学。他们的聪明才智和贡献,不应该被图灵的光环所掩盖,他们应该受到像跟图灵一样的尊敬。
希望大家不要再神化图灵,不要再神化任何人。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表