警惕合成谬误
合成谬误是指你假设对一个人成立的事情也对所有人成立。
一个简单的例子是这样的:如果有人在足球比赛中站起来,就能看得更清楚。这种谬误会得出这样的结论:如果每个人都站起来,他们都能看得更清楚。
在每一门宏观经济学入门课程中,这都是节俭悖论的普遍形式(经济衰退时,你应该增加储蓄以保住财务,但如果每个人都增加储蓄,反而会加剧衰退)。但并非每个人都学习经济学,也并非每个经济学学生都能深入理解到:这与其说是经济学原理,不如说是常识。
题外话:没错,常识应该在学校里教,别来杠我!
编程语言
开发者们可能更熟悉著名学者比雅尼·斯特劳斯特鲁普关于管理 C++ 增长的著作:
“单独来看,许多(甚至大多数?)提案都有道理。但它们放在一起却荒谬至极,甚至危及 C++ 的未来。”
如果你喜欢 Guy Steele 关于“发展一门语言”的演讲(我的笔记在此),那么这段话听起来可能很熟悉。Java 已经有了数字类型,但人们也合理地要求添加其他重要的数字类型:复数、有理数、区间、向量、矩阵等等。他总结道:
“我可能对每个问题都说‘是’,但很显然,我必须对它们全部说‘不’!”
它无处不在
合成谬误并非仅限于语言设计:
- 当你把线性直觉应用于指数增长时,你就犯了错误。
- 当你将“5个为什么”等过于还原论的技术应用于复杂系统时,你就犯了这样的错误,未能理解必要但只有共同充分的因果依赖关系。
- 当你发现一个局部性能优化方案,并要求将其应用到整个应用程序的语言或框架级别时,你就提交了该方案。
- 当你根据产品获得的初步市场反响就扩大规模,结果却发现行不通时,你就犯了错误。
- 当你推出一个糟糕的最小可行产品(MVP)并因此放弃一个好想法时,你犯的错误恰恰相反。
顺便说一句,很多TED演讲都是这么运作的——先讲个个人轶事,然后把它类比到你想解决的问题上,接着引入一些勉强说得通的研究来支撑你的故事,最后掌声响起。TED演讲简直是在大规模地炮制各种“合成谬误”。如果这些谬误全都成立,我们早就达到涅槃境界了。
类似语录:
“数学需要的不是天才,而是想象力的自由,而这种自由如果过量,就会变成疯狂。”——安格斯·罗杰斯,引自ThreeBlue1Brown的格兰特·桑德森
前几天我随口跟朋友乔说,最近独立开发者小组挑战赛(比如他组织的)这种风潮可能会适得其反。他当时没明白我的意思,所以我才写了这篇文章。我觉得,如果你仔细审视一下自己相信的事情以及建议别人做的事情,你会发现很多很多“合成谬误”的例子。
文章来源:https://dev.to/swyx/beware-the-fallacy-of-composition-2fmn
