之前一直对这句话是一笑就过去的。但是最近发生了一堆事情让我觉得有必要好好思考一下这件事。
会繁殖的Bug
Bug 似乎会繁殖,不仅修不完,还越修越多。首先是我们家的墙。搬出学校之后就买了一个吸尘器来日常打扫,但是一直就靠在墙上,没有一个专门的位置放,经常一碰就碰倒了。养的小猫特别胆大,好奇心也强,经常去舔吸尘器。所以我就在想是否可以找个地方把架子粘上,然后把吸尘器挂在架子上,这样吸尘器不会倒,猫也舔不到。
问题随之而来。在我找准位置粘好挂钩,把吸尘器往上面一挂之后,挂钩连着墙皮一起掉了下来。我突然想起女朋友曾经的警告,说这个挂钩可能粘不住会掉下来。我其实有想过这个挂钩是否会粘不住,但是贴纸上面的“3M”标志告诉我绝对是可以粘得住的;但我绝对不会想到,这个贴纸会直接把整个墙皮粘下来,方方正正地粘了下来。好了,现在不止一个bug,多出来另一个修墙皮的bug。不仅第一个bug没解决,还需要另外的精力去处理第二个bug。
其次是一个创业未半而中道崩猝的“公司”。注册一个公司的念头是上了大学以来就一直存在着的。先是发现微信小程序发布需要公司,后面看到公众号开通各种功能也要公司绑定,再后来给网站备案又要法人主体。“公司”这个东西就一直反复地环绕在耳边。因此,我很早就开始向我爸咨询公司注册的事情,他不出意外地不断劝退我,也成功地激发了我的热情:他能有公司,我为什么不能有。于是乎,从名字申报到地址挂靠一切似乎都很顺利,直到开始注册流程之后。首先,公司的成立十分繁琐,即便你只是想成立一个小的不能再小的公司,实名认证与视频签名就卡了我很久很久,不是检测不到人,就是网络问题,即使是5G网络,也救不了这个认证的小程序。解决完这些之后,市监局又让我带着资料去实审。种种问题不断消磨我的热情,让我对这件事不再有任何兴趣。
综合来看,这两个事情都因为我的“折腾”心态,从一个bug变成了多个bug,修也修不完。而且这些事情并非不可避免,我在整个过程中也收到了很多建议,但我仅仅因为修最开始的那个“bug”的冲动,而使之繁殖又繁殖。但如果我一开始就冷静下来,或许就可以思考得更周全,给出更好的解决方案。但真会果然如此吗?
其安易持,其未兆易谋;其脆易泮,其微易散。为之于未有,治之于未乱——【春秋】《老子·第四十六章》
路线问题大于目标问题
的确,问题在最微小的时候是最容易解决的,但我并非拖延不去解决问题,即使我很积极地去解决,bug本身依然会繁殖。我的方法本身也没有问题,吸尘器的问题粘个架子就好了;公司的问题其实就是注册个公司就好了。这不就是所谓的看菜下碟,辨症施治吗?
在这两件事情中,我总想着用一个东西去弥补另一个东西,用B来弥补A,结果B的问题又出现了。亡羊补牢,但是用下一个羊圈补上一个羊圈的空隙,虽然一直在补,但是总是会有一个羊圈的空隙没有补上。意识到了吸尘器没有固定钩子的问题,却没有考虑贴纸与墙面,“拆东墙补西墙”,看似把吸尘器的“羊圈”补好了,但实际上破坏了墙的“羊圈”。
因此,其本质不在于我如何去解决这个“bug”,而在于我思考解决方式的思路。思路有误,轻则功倍事半,重则南辕北辙。看似十分具有针对性的方法,实则小题大做,没有真正考察实际。错误的思路本身并没有解决原本的问题,反而在解决问题的过程中产生了新的问题。
向内求索
那么,什么样的思路可能会更好呢?
爱人不亲,反其仁;治人不治,反其智;礼人不答, 反其敬——行有不得者皆反求诸己。——【战国】《孟子·离娄章句上》
《孟子》曰:“行有不得者皆反求诸己。”向「外」的探索往往在「内」得到解答,谜底就在谜面上,而这个「谜面上」的答案往往是最难发觉的。比如说下面这个脑筋急转弯:
问:如果有一辆车,小明坐在前排,小红和小亮坐在后排,那么车主是谁?
答:如果
估计很多小朋友在第一次见到这个谜题都会被谜面忽悠,然后在得知谜底后恍然大悟。很多事情亦是如此,问题向外解决未必屡试不爽,但向内求索,可以更好地从问题根本出发寻找解决问题。因之,比起将吸尘器与墙通过挂钩链接成一个新的系统,不如从吸尘器本身出发,比如脏就及时清理消毒,易倒就放在平时比较少经过的区域等等。
可能有些人会认为,这些方案只是简单地把大问题分解成小问题,然后解决了分解后的小问题,而似乎在逃避整个的大问题,不如加个钩子挂在墙上来的根本。挂上钩之后,猫舔不到了,人也碰不倒了。实则不然,如果挂在墙上就能解决,是不是又要去究“掉墙皮”这个问题的根本了?究完掉墙皮问题,是不是还会有新的“根本问题”出现呢?我不知道,但这和我上面所说的“亡羊补牢”有什么区别呢?用新的问题取代旧的问题并不是解决问题,这种看似“好”的方案并非根本,是在掩耳盗铃,是真正的在逃避问题。
另外,“一石二鸟”的“高效”方法并非等于“解决根本”的方法。猎鸟者只告诉你一石二鸟可以提高猎鸟的效率,却不说打鸟本身就赚的少,加上现在基本上已经不让打鸟这些关键因素。过度地追求高效,急于求成,会让自己的一意孤行奉为圭臬从而忽视一些根本问题。很多时候,艰难地想出一道数学题的解题方法并非意味着这道题能做对,对我来说,扣分往往在于一些很基础的地方,比如定义域的问题。我往往将此归类为粗心问题,想着下次多看两眼就行,但其实这种叙事并不根本,多看哪两眼?哪些多看两眼?……问题又分化出了更多的问题。
《流浪地球》(电影)中,MOSS最终选择了逃离地球,就是因为他太过于追求“根本问题”,有的人将其思路概括为:拯救人类的方法是毁灭人类。但是难道毁灭人类问题就解决了吗?并没有。但是MOSS认为自己是很有逻辑很“根本”的。解决不了问题,就解决问题本身,难道这是合理的吗?
够用/能用就行
实际上,一个问题的最满意解未必是一个问题的理论最优解,因此过于极端地追求根本不仅会陷入无底洞,而且每个“最优解”都无法让人最满意。伊壁鸠鲁学派将人的需求分为三类:自然且必要的,自然但非必要的,非自然也非必要的。该学派认为,幸福来自于第一类需求的满足,而痛苦源于第二、三类需求的无限扩张。
知足不辱,知止不殆,可以长久。——老子《道德经》
Bug的繁殖源于低层级需求侵入更高层级需求并使其无限扩张的过程。比如对于吸尘器问题,我真的需要把吸尘器用钩子挂在墙上吗?似乎不是。如果说使用吸尘器是第一类需求,那么最初产生的一系列问题是第二类需求,但是我不满足于此,想要将其挂在墙上,即属于第三类需求。就这样,我的需求在不知不觉中不断向高层次的需求入侵,新的问题也由此产生,无法完全消解。
因此,“够用就好”的人生哲学并非是一种保守消极的价值观,而是将幸福最大化的方法论;不被不合理的需求裹挟,才是真正有效的指向标。很多事情一开始都是十分美好的,但随着其发展,便开始被一些不合理的需求裹挟,最终走向凋亡。我们常说,物极必反,否极泰来;但美好的事物过了头,是否还会和之前一样不断让人满足而获得更多的幸福感呢?我认为未必。我们常说假期过后很快就患上了“电子阳痿”,就是在日复一日的耍手机之后,吃腻了电子榨菜的结果。我玩ipad最狠的时候都在初中和高中,因为那时每周只能周末回家玩一会儿;现在唾手可得,也没人管着,反而不怎么爱玩了。
结语
随着AI的浪潮掀起一个又一个浪花,Vibe Coding让很多代码基础不好的人(比如我)能够自己独立开发一个小应用。然而,每每出现一个bug之后,AI往往会陷入“拆东墙补西墙”的困境,问题越修越多,即使精密设计的系统,也会陷入矫枉过正的漩涡。回头看,Bug 并不会凭空繁殖。它们只是不断提醒我,我正在用一个过度完整的方案,去解决一个本该“够用就好”的问题。有时候,一个bug是bug,两个bug能work。
参考文献
本文内容受以下内容启发
Wittgenstein, L. (1953). Philosophical investigations(G. E. M. Anscombe, Ads.). Blackwell.
Heidegger, M. (1977). The question concerning technology and other essays(W. Lovitt, Trans.). Harper & Row.
怀,雝[Huai, Y]. (1962). 内因与外因[Neiyin yu waiyin, Internal and external causes]. 教学与研究[Jiaoxue yu yanjiu, Teaching and Research], (5), 18–19.
Kant, I. (1997). Critique of practical reason(M. Gregor, Trans.). Cambridge University Press.
Wittgenstein 在《哲学研究》(Philosophical investigations)中指出,许多问题并不是因为其缺乏解决方案,而是因为问题本身被错误地提出;当我们明确某个问题的实质和根本之后,一些问题会自行消解。怀雝在《内因和外因》中强调外因只能通过内因起作用,我们不能单纯依赖外在手段而忽视问题的内部条件。Heidegger 在《技术的追问》(The question concerning technology and other essays)中进一步指出,技术是一种塑造我们理解世界方式的框架,当我们仅仅讨论技术理性的同时,解决方案本身可能制造新的困境。Kant 在《实践理性批判》(Critique of practical reason)中则区分了“如何做到”和“是否应当如此”,为我们去评价解决方案的正当性提供了一种规范的判断标准。这些思想共同提示,与其不断叠加更复杂的解决方案,不如先反思问题是如何被理解和提出的。
若有兴趣,可以延伸阅读《哲学研究》节选导读。
留下评论