世界需要新一代程序员

越来越快的处理器“导致”软件非常臃肿,但是物理的限制也许会强制让我们回到简洁代码的时代。

1960年代英特尔联合创始人戈登·摩尔(Gordon Moore)发现,硅芯片上可安装的晶体管数量每两年翻一番。由于晶体管数量与处理能力有关,这也意味着计算机的计算能力实际上也每两年翻一番,摩尔定律由此诞生了。对于大多数从事计算机行业的人,或者至少40岁以下的年轻人来说,摩尔定律为牛顿运动定律为计算机工程师所做的贡献奠定了基石。

但是,有一个区别。摩尔定律只是在历史的特定时期内观察到的经验相关性的陈述,我们正在达到其应用的极限。在2010年,摩尔本人曾预测物理定律将阻止指数增长。他说:“就晶体管的尺寸而言,您可以看到我们正在接近原子的尺寸,这是一个基本的障碍,但是要达到这一水平,需要两到三代人的时间,但这就远远超过我们所能看到的,在达到基本极限之前,我们还有10至20年的时间。”

我们已经到了2020年,可以肯定的是,我们将始终拥有足够强大的计算硬件来满足不断增长的需求。由于这种情况几十年来对于业内人士来说是显而易见的,因此已经进行了许多研究,以巧妙的方式将更多的计算能力打包到机器中。例如,使用多核体系结构,其中CPU具有两个或多个独立的处理单元,称为“核”。–希望推迟硅芯片最终用尽的糟糕日子。(例如,新的Apple Mac Pro已经由28核Intel Xeon处理器提供支持)当然,对于量子计算也有很多疯狂的研究,从理论上讲,这可能是一个划时代的发展。

但是计算涉及硬件和软件的组合,摩尔定律的可预见后果之一是它使程序员变得懒惰。编写软件是一种技巧,有一些人比其他人更擅长。他们编写的代码更优雅,更重要的是更精简,因此执行速度更快。在早期的硬件还比较原始的时候,工艺确实很重要。例如,比尔·盖茨还是个小伙子时,他为最早的微型计算机之一TRS-80编写了Basic解释器。由于该机器只有一个很小的只读内存,因此盖茨必须将其调整为仅16 KB。他用汇编语言编写它,以提高效率并节省空间。有个传说就是多年以后他甚至还可以背诵出这个程序。

在计算机发展初期,就有成千上万个这样的故事。但是随着摩尔定律的确立,编写精简的简约代码的需求逐渐消失,激励机制也随之改变。编程被工业化为“软件工程”。庞大的软件生态系统(如操作系统和商业应用程序)的构建需要庞大的开发团队;然后,这些产生了与项目经理和管理相关的职位。大型软件项目演变成一种行尸走肉,在弗雷德·布鲁克斯(Fred Brooks)着名的《神话人月》(The Mythical Man-Month)一书中令人难忘,这本书记载了死亡的征兆,其很好的理由是它仍然具有现实意义。在此过程中,软件变得日渐臃肿且效率低下。

但这都无关紧要,因为硬件始终可以提供隐藏“膨胀软件”问题的计算能力。认真的程序员经常对此感到恼火。其中一位写道:“我看到的强大硬件的唯一结果是,程序员在上面编写了越来越多的肿软件。他们变得懒惰,因为硬件速度很快,他们既不尝试学习算法也不优化其代码……这太疯狂了!”

1997年的一次演讲中,曾任比尔·盖茨首席技术官的内森·迈尔沃尔德(Nathan Myhrvold)提出了软件四定律, 1:软件就像气体一样-它会扩展以填充其容器; 2:软件不断发展直至受到摩尔定律的限制; 3:软件的增长使摩尔定律成为可能–人们购买新硬件是因为软件需要它;最后,第四点:软件仅受人类的野心和期望的限制。

当摩尔定律达到其统治的尽头时,迈尔沃尔德定律建议我们基本上只有两种选择,要么节制我们的野心,要么回去编写更精简,更高效的代码。换句话说,回到未来。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月9日
下一篇 2020年1月9日

相关推荐