图灵奖得主Tony Hoare:我的错误造成了十亿美元损失

即将在伦敦召开的QCon可谓盛况空前,群贤必集。当然,其中最闪耀的明星,还得算图灵奖得主Tony Hoare(才发现Wikipedia中文居然没有他的条目,丢人啊)。说起图灵奖,一般的技术人员可能一方面高山仰止,但是一方面可能又会觉得跟自己没太大关系。Hoare同学可不一样,他是地道的程序员出身。发明的Quicksort,和日常开发仍然息息相关。此后从事研究工作,成果斐然,包括Algol、Occam语言,形式方法中的CSP语言和Hoare逻辑等。他从牛津大学退休后,在微软研究院工作,微软的网页上有一些不错的PPT,值得看看。

 

这个Infoq办的大会,有个很有意思的主题:Historically bad ideas。Tony Hoare的讲演就在这个主题里,名字居然叫"Null References: The Billion Dollar Mistake",讲演摘要中这样写的:

 

“我把Null引用称为自己的十亿美元错误。它的发明是在1965年,那时我用一个面向对象语言( ALGOL W )设计了第一个全面的引用类型系统。我的目的是确保所有引用的使用都是绝对安全的,编译器会自动进行检查。但是我未能抵御住诱惑,加入了Null引用,仅仅是因为实现起来非常容易。它导致了数不清的错误、漏洞和系统崩溃,可能在之后40年中造成了十亿美元的损失。近年来,大家开始使用各种程序分析程序,比如微软的PREfix和PREfast来检查引用,如果存在为非Null的风险时就提出警告。更新的程序设计语言比如Spec#已经引入了非Null引用的声明。这正是我在1965年拒绝的解决方案。”

 

完整的视频在这里

 

同一主题下,还有著名分布式专家Steve Vinoski讲RPC的根本性问题,Spring之父Rod Johnson谈JavaEE标准,Oracle开发副总裁Cameron Purdy(曾经是TheServerSide上最活跃的家伙,经济与政治学本科毕业,他的blog还在频繁更新)探讨多核、并行和虚拟化环境对传统开发模式的挑战,英国电信的专家Paul Downey(负责多个国际标准)谈标准化的弊病。

 

是啊,在计算机历史上,影响深远的错误决策还有多少?我们又能从中吸取什么教训呢?这可是一个值得好好思考问题。在这一点上,Hoare大师为我们做出了榜样。

 

【广告】QCon 4月份将移师北京,与大师面对面的机会,大家可不要错过啊。请访问QCon北京站主页

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页