著名法则

沃斯定律——软件变慢的速度快过硬件变快的速度

沃斯定律——软件变慢的速度快过硬件变快的速度

大家好,我是 Senko。 本文将解读戳中科技之讽刺的“沃斯定律”

电脑和手机几乎年年都出高性能新品,里面的半导体正如本站摩尔定律里所见,进化势头猛烈。可你有没有过这种感受:“新买的,怎么没想象中快”“用了几年,好像变卡了”?把这份不可思议说中的就是沃斯定律:“软件变重的速度,快过硬件变快的速度。”这条经验法则听着颇为扎心,方向恰好与摩尔定律相反。本文来把它挖一挖。

图解

什么是沃斯定律

沃斯定律(英文 Wirth’s law)是这样一条经验法则:“软件变慢的速度,快过硬件变快的速度。”

它由以开发编程语言 Pascal 而闻名的瑞士计算机科学家尼克劳斯·沃斯在 1995 年的一篇论文中提出。他在那篇论文里对软件越来越重、越来越臃肿的风气敲响警钟,呼吁重视“没有赘肉、结实精干的软件”。

它的意思是这样:硬件(半导体)按摩尔定律稳步变快,可跑在它上面的软件,以超出性能提升的速度变重。结果就是硬件好不容易变快了,体感速度却一点没提,甚至反而更慢。如果说摩尔定律是“进步的明面”,那沃斯定律犀利戳中的就是它的“暗面”

明明变快了,却快不起来

要体会这条定律并不难。把稍早的电脑与如今的电脑一比,部件的性能应该已经翻了好几倍。可开机所需的时间、应用启动前的等待,与几年前相比没差多少。这种经历,很多人都有过吧。

为什么会这样?简单说,就是硬件挣来的那点“余裕”,被软件原封不动地用光了。处理能力翻了一倍,可软件要求的活儿变成两倍以上,等待时间就缩不短。性能提上去多少,软件就奢侈多少

这多少像“把路拓宽了,车也变多了,堵车照旧”那个现象:好不容易空出来的地方,很快被新的需求填满。硬件进步这条“拓宽的路”,被日益臃肿的软件这些“变多的车”塞满——这就是沃斯定律的真身。进步的果实,迟迟送不到我们体感的速度上。我觉得这条定律的讽刺就浓缩在这里。

类似的事在身边也常发生。刚换新电脑那阵子还觉得“到底是快”,可过上几年,随着应用更新、适配新服务,不知不觉又卡回了原样。硬件什么毛病都没有,只是跑在上面的软件变重了多少,速度就被削掉多少。我们感到“明明是新机器,怎么没想象中舒服”时,背后多半就有沃斯定律在静静地起作用。

软件为什么会越来越重

那么软件放着不管为什么会变重呢?并不是有谁怀着恶意,而是几条极自然的理由叠在了一起。

其一是功能的堆砌。软件每出一个新版本,就会加进新功能与装饰。一个个看都挺方便,可堆起来整体就越来越沉。把“也不知道会不会用的功能”也一并抱进来,软件就这么胖了。

其二是为了好做而不断叠加的“层”。当代软件为了让开发省事,会把现成的部件与框架叠上好几层。这一边提高了开发效率,一边却让完成一次处理要多绕好几道弯,动作也就慢了。

其三是优化容易被偷懒。硬件足够快时,“效率差点也没事,反正硬件快”这种判断就容易冒头。比起细致地削掉浪费,先快点做出来推向市场更被优先。于是软件就仿佛倚着硬件的进步松弛下来。沃斯所呼吁的“结实精干的软件”之所以流失,背后就是这些情况。

与摩尔定律的拉锯

理解沃斯定律最有意思的方式,是把它与摩尔定律对照着看。这两条正是一场拔河。

摩尔定律表示的是硬件带来的进步:半导体两年翻一倍,把速度上的余裕送给我们。而沃斯定律表示的是软件把这份进步吃掉:硬件给出来的,被软件夺走。这层关系有时被通俗地说成“硬件快出来的那点,被软件慢回去了”。

正因如此,我们的体感速度提不到硬件进步那么多。摩尔定律这股向上的力,与沃斯定律这股向下的力互相拉扯,其差额就成了我们每天感到的“快”。把技术进步的明面(摩尔)与暗面(沃斯)合起来看,与科技相处的方式也就立体多了。

这场拔河还常被换个说法讲述。有名的是业界那句带讽刺的话:“安迪给的,被比尔拿走了。”这里的“安迪”指半导体厂商、“比尔”指软件公司当时各自的经营者。造硬件的一方把性能提上去,造软件的一方就把它用光。这个格局被冠上代表两个行业之二人的名字流传下来,也说明这个现象在科技界被普遍体会到了。

关于沃斯定律常见的疑问

软件变重是因为开发者偷懒吗

不能一概这么说。正如前面所见,软件变重的背后有对新功能的需求、让开发提效的机制、有限时间内的开发等各自站得住脚的情况。正如本站在汉隆剃刀里讲的,比起用“恶意或懒惰”打发,去看“为何会变成这样的苦衷”更准确。沃斯定律追问的与其说是个人的懒,不如说是“反正硬件快,浪费一点也无妨”这份全行业的松弛。便利与精干之间怎么取平衡,才是真正的论点。

这条定律对如今的手机与 AI 也适用吗

基本格局如今仍然活着。手机应用年年更高功能,所需的性能也跟着水涨船高。几年前的机器跑最新应用觉得卡,就是这条定律的一种表现。不过近年为了省电与续航,也出现了重新审视软件效率的动向,未必只是一味变重。话虽如此,在生成式 AI 这类要求庞大计算的新技术接连登场的今天,“软件的需求追着硬件的进步跑”这层关系反而有增强的一面。

作为用户,我们能做点什么

有几件。首先,整理掉用不上的功能与常驻应用,体感速度就会有变化。这是一种不照单全收软件之臃肿、而是按自己的用法把它减轻的思路。其次,挑工具时把“轻、简单”放进评价标准也有效。功能越多未必越好,够用且轻快的东西,最后往往最舒服。沃斯呼吁的“结实精干的软件”那份精神,不只对造东西的人,对挑工具的我们同样适用。

相关的定律

以下是关于半导体指数级进步的“摩尔定律”、加人也快不起来的“布鲁克斯法则”,以及别把无能错当恶意的“汉隆剃刀”

结语

本文解读了“沃斯定律”。

软件变重的速度,快过硬件变快的速度。半导体进步得那么猛,电脑与手机的体感速度却提不上去,原因就在这条定律。功能的堆砌、为好做而叠加的层、优化上的偷懒——软件仿佛倚着硬件的进步松弛下来、胖起来。

有意思的是,它与摩尔定律的方向恰好相反:硬件给出的进步,被软件吃掉,这场拔河的差额就成了我们感到的“快”。把技术的明面与暗面合在一起看,挑工具时也珍惜一点“轻与简单”。沃斯定律不只让我们天真地为进步高兴,还让我们去想该怎么用它——我觉得这是一条很有启发的经验法则。

想返回定律列表的读者请点击下方链接。

我们下一篇文章见。

著名法则大全——墨菲定律、帕金森定律等 24 个有趣法则zh.senkohome.com/law-list/