Bug 的合理性

理想的国与现实的退化或衰落的世界,展现的是原型和理念与现实的对比。正如抽象接口之于实现对象。

前者是一种理想化的抽象设计,而后者属于真正的现实。经过设计的抽象概念存在完美的可能,但实际中的不同实例之间对同一功能的不同实现以及互动——即软件的多态与接口——会导致柏拉图所说的衰落或退化,即软件漏洞。

我们不能说有漏洞的系统是完美的,但也并非所有的漏洞都需要被修复。随着系统复杂度的提高,修复某一漏洞的影响可能是无法预测甚至有害的。因此我们需要评估漏洞——即非理想国的顽疾、或是一座大厦的缺陷——的可修复程度。

因此,留下漏洞并非妥协,而是建成一所大厦的不可或缺的原料。致力于消灭所有漏洞,要么大厦会倾倒,要么延迟交付甚至烂尾。因此我们并不需要致力于建立一个完美的理想原型,而是关注漏洞产生的原因,避免产生类似的错误,抑或是用第一性原则对潜在的影响和应用可能展开想象。

浪漫的角度上来说,我们允许漏洞的存在是一种对于真实性的允许、包容、接纳,展现了对大厦坚固的信心或面对大厦将倾的勇气,就像驯服野兽的勇士不去杀掉野兽,而是选择与野兽同行。实际效用的角度上看,允许一座大厦先存在,再去修补、装饰其漏洞(非设计缺陷),将其转化为参考、经验、甚至是榜样而存在,是设计者和建造者的责任性体现。

这是我所理解的「局部为了整体而存在,而非整体为了局部而存在。」