第8章

以永不过时作为ฦ目标也๣是一种避开时代风潮的影响的方แ法。“风潮”这个ฐ词,从字面上就可以看出,它就是一阵风似的,随着时间经常改变。如果一件东西长盛不衰,那么เ它的吸引力一定来自本身的魅力,而不是来自风潮的影响。

由á于孩子们接触到钱๥的方式就是这样的,他们往往会误解财富,把财富与钱๥混为ฦ一谈。他们认为ฦ财富的总量是不变的,某个权威负责分配财富所以理应平均分配,没有意识到财富是创造出来而且创น造得不太均等。

‘eb怀特eb9hite,1899—198๖5,美国当代着名作家、散文家,常年担任《纽约客》杂志的主ว要撰稿人,以优美的语体风格着称于世。——译者注’

我们的大多数竞争者使用cນ和cນ+ใ+,这使得他们的软件明显不如我们,因为不考虑其他原因他们无法解决cນgi脚本不能识别ี用户状态的问题。如果用户想要修改表单的部分内容,你不得不把表单的所有内容都放在同一个ฐ页面上,然后在最下面放一个“更新”按钮。正如我将在第12章中ณ解释的,通过使用lisp这种许多人眼中ณ的教学语言,我们使得via9eb编辑器更接近桌面软件带给用户的体验。

为了在全社ุ会制ๆ造出一个禁忌,负责实施的团体必定既ຂ不是特别强大也๣不是特别ี弱小。如果一个ฐ团体强大到เ无比自信,它根本不会在乎ๆ别ี人的抨击。美国人或者英国人对外国媒体的诋毁就毫不在意。但是,如果一个团体太弱小,就会无຀力推行禁忌。有一种行为ฦ怪癖叫做“嗜粪症”cນoprophila,它的患者人数以及影响势力眼下似乎就不太强大,无法把自己的观点推广给其他人。

有时,黑客做的事情被称为ฦ“软件工程”soft9areengineering,但是这个ฐ词也是误导的。与其说优秀的软件设计师๲是工程师,还不如说是建筑师๲

。建筑学和工程学之间的区别并不是很严格的,但就是存在区别ี。这表现在“做什么”和“怎么เ做”:建筑师๲决定做什么,工程师想出怎么做。

想要把握这个ฐ时代,就必须理解计算机。理解计算机的关键,则是要理解计算机背后的人。表面上这是一个ฐ机器的时代,但是实际上机器的设计者决定了我们的时代。程序员的审美决定了你看到的软件界ศ面,程序员的爱好决定了你有什么เ样的软件可以使用。

但是,真正的问题在于,并行计算到เ底能ม达到哪个ฐ抽象层次?一百年后它就会影响到开应用软件的程序员吗?或者,它还只是编译器作者需要考虑的事情,在应用软件的代码中ณ根本就无处寻觅?

一种可能是,大多数可以用到เ并行计算的场合,人们都会放弃使用并行计算。虽然我总的预ไ测是未来的软件会挥霍掉大部ຖ分新า增的硬件性能ม,但是并行计算是一个特例。我估计随着硬件性能得到เ惊人的提升,如果你明确地说想要并行计算,那么肯定可以得到它,但是通常情况下你不会用到เ它。这意味着,除了一些特殊的应用程序,一百年后的并行计算不会是那种大规模的并行计算maທssiveparallelism。我预ไ料é,对于普通程序员来说,一切更像对进程进行分叉,然后让多个ฐ进程在后台并行运行。

这是编程进行到很后期才要做的事情,属于对程序的优化,类似于你想开一种特定的数据结构来取代现有的数据结构。程序的第一个版本通常会忽略๓并行计算的各种好处,就好像编程开始时会忽略某种特定的数据结构给你带来的好处一样。

除了某些特定的应用软件,一百年后,并行计算不会很流行。如果应用软件真的大量使用并行计算,这就属于过早优化了。

一百年后会有多少种编程语言?从最近来看,出现了大量的新语言。硬件性能提高是一个原因,这就允许程序员根据使用目的在运行度和编程便利ำ性之间做出不同的取舍。如果这就是未来的趋势,那么一百年后强大的硬件只会使得语言数目变得更多。

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

因为这段差距正在变得越来越大,所以性能分析器profiler将变得越来越重要。目前,性能ม分析并没有受到重视。许多人好像仍然相信,程序运行度提升的关键在于开出能够生成更快代码的编译器。代码效率与机器性能的差距正在不断ษ加大,我们将会越来越清楚地看到เ,应用软件运行度提升的关键在于有一个ฐ好的性能分析器帮助指导程序开。

我说将来可能只有很少几种常用语言,但没有把用于特定领ๆ域的“小众语言”little浪ฐuaທge算进去。我觉得,这些嵌入式语言的想法很不错,一定会蓬勃展。但是我判断ษ这些“小众语言”会被设计成相