这是Bjarne Stroustrup应MIT技术评论的John Pontin的邀请,所作的访谈:程序设计的问题和更多的程序设计问题。这种温和的访问在slashdot和artima(更多在artima)网站上导致了激烈的论战。2006年12月。

程序设计的问题

给BJARNE STROUSTRUP的采访问题(来自MIT技术评论的Jason Pontin):

问:为什么大多数软件这么糟糕?或者,如果你喜欢这样说:为什么软件没有比它应该是的更好?或者,甚至:为什么软件不像它应该是的那样好?

答:呣,一些软件用任何标准来看,真的相当好——想一想火星探测器、Google,和人体基因工程。这是高质量的软件!(不可否认由一些给人印象非常深刻的硬件支持)。很多人——尤其是专家们——在十五年前可能会认为,这些例子中每一个都不可能。我们的科技文明严重依赖软件,所以如果软件像它被认为的那样糟糕,我们中大部分人在今天可能已经死了。

另一方面,看看“平均”水平的代码会让我哭。结构令人惊骇,程序员们显然没有更深入地考虑正确性、算法、数据结构、和可维护性。然而,大部分人真的不阅读代码,他们只看见IE“僵住了”,用他们的手机打一个电话,阅读最新的报纸上关于病毒的故事,并害怕得发抖。

唯一看起来比硬件性能增长得更快的是人的期望。硬件简单地跟不上了,越来越多的任务被推给了软件。同时,人类用计算机做更多事情。产生的这个结果严重超出了生产软件的个人和公司的能力。我认为真正的问题是“我们”(即是,软件开发者)处于永久的紧急状态,抓着让我们完成工作的救命稻草。我们经历考验和错误、过渡耗费精力、太多和不足的测试,做出了许多小奇迹,但是——噢如此多——它并不够。

“我们”在从不可靠部分中,建造合理可靠系统的艰难艺术上已经变得熟练。有时阻碍是“合理可靠”不是足够好,我们常常并不确切知道我们要如何去做——一个系统仅仅是一些最小可接受事物的“一种演化”。我个人更希望知道一个系统什么时候运行,以及它为什么会。

问:我们如何处理我们所置身其中的混乱?

答:


(This Chinese translation isn't confirmed by the authors, and it isn't for profits.)

Translator : jhlicc@gmai1.c0m
Origin : http://www.research.att.com/~bs/MIT-TR-original.pdf