人们感知的软件质量下降往往是视角问题。在个人计算的早期时代,软件按照现代标准衡量往往是“糟糕”的,其特点是极度的不稳定。其中的一个主要因素是物理分发强加的“质量底线”。由于软件是通过软盘或 CD 发送的,公司只有一次机会来确保产品能够“开箱即用”。这与现代持续部署形成了鲜明对比,在现代部署中,软件可以无限期地更新和修补。尽管存在这种分发限制,早期的系统如 Windows 仍经常遭受“蓝屏死机”的困扰——这些内核恐慌通常由有缺陷的设备驱动程序触发,或者是操作系统未能从已结束的程序中回收资源导致的。
除了系统范围内的崩溃,用户体验还受到数据丢失带来的创伤的影响。早期的应用程序往往缺乏可靠的自动保存功能,或者未能刷新缓冲写入,这意味着一次崩溃就可能抹除数小时的工作。这种可靠性的缺失在用户中造成了一种持久的心理习惯;即使在 Google Docs 等自动保存已成为标准的现代环境中,许多用户仍会出于对丢失进度的深层恐惧而反射性地按下“Ctrl+S”。此外,软件还受到硬件的严重限制。有限的内存和 CPU 速度导致了特定的编程缺陷,例如如果单位数量超过 255,游戏就会崩溃。为了管理这些限制,一些硬件甚至包含一个“TURBO”按钮,用于手动减慢处理器速度,以便较旧的、依赖于时序的应用程序可以在不崩溃的情况下运行。
现代软件面临着另一套挑战:臃肿、极高的复杂性和增加的延迟。虽然软件的“微观层面”——即单个代码行和库——已经变得更加可靠且更容易测试,但“宏观层面”的架构已经发生了转变。许多现代应用程序现在作为复杂的基于 Web 的庞然大物运行,这可能会在用户交互中引入明显的延迟。这种转变代表了一种权衡:我们用过去的脆弱性和硬件特定怪癖,换取了一个更稳定但显著更复杂且高度抽象的计算环境。主要来源指出,虽然现代软件由于“厨师太多”而往往更慢且更复杂,但它在本质上仍比 1990 年代的系统更稳定。
