第8章

好设计是永不过时的设计。只要没有错误,每一个数学证明都是永不过时的。所以,数学家哈代才会说:“丑陋的数学在世界上无法生存。”他的意思与飞机设计师๲凯利·约翰逊的观点是一样的:如果解决方法是丑陋的,那就肯定还有更好的解决方法,只是还没有现而已。

好设计是永不过时的设计。只要没有错误,每一个ฐ数学证明都是永不过时的。所以,数学家哈代才会说:“丑陋的数学在世界上无法生存。”他的意思与飞机设计师凯利·约翰逊的观点是一样的:如果解决方法是丑陋的,那ว就肯定还有更好的解决方法,只是还没有现而已。

为什么不尝试一下?

为ฦ什么เ不尝试一下?

流行的道德观念与其他普通的流行时尚的产生方式似乎是不一样的。一般来说,流行的时尚产生于某个有影响力的人物,他突奇想,接着其他人纷纷模仿。1้5世纪晚期,欧洲流行一种宽头鞋oaທd-toedshoe,原因是当时的法国皇帝查理八世长了六根脚趾。20世纪20年代,着名电影明星frank9๗k改成一个印第安纳州工业小镇的名字gaທry,以便突出自己粗犷硬朗的铁汉形象,结果导致这个名字风靡一时,很多父母都为儿子取名为gary。但是,流行的道德观念不是这样,它们往往不是偶然产生的,而是被刻意创造出来的。如果有些观点我们不能ม说出口,原因很可能是某些团体不允许我们说。

流行的道德观念与其他普通的流行时尚的产生方式似乎ๆ是不一样的。一般来说,流行的时尚产生于某个有影响力的人物,他突奇想,接着其他人纷纷模仿。15世纪晚期,欧洲流行一种宽头鞋oad-toedshoe,原因是当时的法国皇帝查理八世长了六根脚趾。20世纪2๐0年代,着名电影明星frank9k改成一个印第安纳州ะ工业小镇的名字gary,以便突出自己粗犷硬朗的铁ກ汉形象,结果导致这个名字风靡一时,很多父母都为儿子取名为ฦgary。但是,流行的道德观念不是这样,它们往往不是偶然产生的,而是被刻๑意创造出来的。如果有些观点我们不能说出口,原因很可能是某些团体不允许我们说。

电子技术的展,使得计算机日益成为人类社会必不可少的一部分。

电å子技术的展,使得计算机日຅益成为ฦ人类社ุ会必不可少的一部分。

但是,真正的问题在于,并行计算到底能达到哪个ฐ抽象层次?一百年后它就会影响到开应用软件的程序员吗?或者,它还只是编译器作者需要考虑的事情,在应用软件的代码中根本就无处寻觅?

一种可能是,大多数可以用到并行计算的场合,人们都会放弃使用并行计算。虽然我总的预测是未来的软件会挥霍掉大部分新增的硬件性能,但是并行计算是一个ฐ特例。我估计随着硬件性能得到惊人的提升,如果你明确地说想要并行计算,那么肯定可以得到它,但是通常情况下你不会用到它。这意味着,除了一些特殊的应用程序,一百年后的并行计算不会是那种大规模的并行计算massiveparallelism。我预料,对于普通程序员来说,一切更像对进程进行分叉,然后让多个进程在后台并行运行。

这是编程进行到很后期才要做的事情,属于对程序的优化,类似于你想开一种特定的数据结构来取代现有的数据结构。程序的第一个版本通常会忽略并行计算的各种好处,就好像编程开始时会忽略๓某种特定的数据结构给你带来的好处一样。

除了某些特定的应用软件,一百年后,并行计算不会很流行。如果应用软件真的大量使用并行计算,这就属于过早优化了。

一百年后会有多少种编程语言?从最近来看,出现了大量的新语言。硬件性能提高是一个原因,这就允许程序员根据使用目的在运行度和编程便利性之间做出不同的取舍。如果这就是未来的趋势,那么เ一百年后强大的硬件只会使得语言数目变得更多。

伹是,另一方แ面,一百年后的常用语言可能只有很少几种。部分原因是基于我的乐观主ว义,我相信在未来,如果你的作品确实很出色,你可能ม选择的是一种开起来很方便的语言。使用这种语言写出来的软件第一版的运行度很慢,只有对编译器进行优化设置后运行度才会提升。既然我抱有这种乐观主义,那么我还要做一个ฐ预言。有些语言可以达到เ机器的最高效率,另一些语言的效率则慢到เ刚刚ธ可以运行而已,两者之间存在巨大的差距。我预言一百年后,这段差距之间的各个点上都会有对应的编程语言存在。

因为这段差距正在变得越来越大,所以性能分析器profiler将变得越来越重要。目前,性能ม分析并没有受到重视。许多人好像仍然相信,程序运行度提升的关键在于开出能ม够生成更快代码的编译器。代码效率与机器性能ม的差距正在不断加大,我们将会越来越清楚地看到,应用软件运行度提升的关键在于有一个ฐ好的性能分析器帮助指导程序开。

我说将来可能只有很少几种常用语言,但没有把用于特定领域的“小众语言”little浪uaທge算进去。我觉得,这些嵌入式语言的想法很不错,一定会蓬ศ勃展。但是我判ศ断这些“小众语言”会被设计成相当薄的一