第十九章 古希腊时代的科学萌芽

这一章墨叔要把你会议室里那场”先干起来还是先想清楚”的拉锯,接到公元前六世纪的爱奥尼亚海岸上去。全程对话。


墨叔:你搭一个新系统,第一反应是”先跑起来再说”,还是”先想清楚它底层由什么构成”?说实话。

你:说实话是先跑起来。需求排到下周了,谁给我时间想本原。

墨叔:不评判,先记下这个答案。现在我们把时间拨回两千五百年前。那时候全世界几乎所有文明面对雷电、瘟疫、地震,用的都是同一套解释:神发怒了、天命难违、祖宗得罪了天地。唯独有一小撮希腊人,开始一本正经地追问一件看着毫无用处的事——万物到底由什么最基本的东西构成。

你:这问题确实没用。问出来能干什么?

墨叔:当时什么也干不了。可我要告诉你的是:这个看似无聊的追问,后来长出了科学,而你今天那句”先跑起来再说”,是那场文明分叉在你指尖上的微观重演——只不过你站的是另一侧。

你:那你先说清楚,“神解释”到底差在哪?它也在解释啊。

墨叔:差在它不追究机制,只给一个拟人化的原因。诸神生气了、命运如此、气数已尽——这类解释永远停在”谁让它发生”,从不问”它根据什么规则发生”。你注意这个特征:神解释无法被追问下一步。你说宙斯发怒所以打雷,我问为什么发怒,你说他脾气不好,我就没法再问了。链条到这断了。

你:这个我立刻有画面。线上出故障,有人说”可能是网络抖动,重启试试”。

墨叔:(笑)你自己交出来了。那句话就是二十一世纪的神解释:它给了一个不可追问的拟人化原因——网络”抖”了一下,仿佛网络有脾气。你没法从它推出任何东西,你也没法证伪它,你只能重启,然后祈祷。

你:而且它还挺好用,重启完往往真好了。

墨叔:这就是神解释最毒的地方:它经常”有效”,所以你永远不会怀疑它。 但它的代价是同一个故障会以同一形态反复出现,你一辈子在救火。而如果你追问”这个系统最底下的状态机到底是什么、刚才是哪个不变式被打破了”,你就进了另一种解释模式。

你:那希腊人第一次做的,就是这个切换?

墨叔:王东岳讲哲学思维的第一特征是追究终极。而科学,正是”追究终极”这股冲动从伦理、本体问题蔓延到自然现象时的产物。公元前六世纪,小亚细亚西岸的米利都出现了一批被后人称为自然哲学家的人。他们干的事前所未有:不再用神,而用”自然的本原”来解释世界。 他们问的不是”宙斯为什么打雷”,是”构成万物的、最底下的那一样东西是什么”。

你:这一问的分量在哪?我还是觉得它虚。

墨叔:分量在于:一旦你承认”世界由某种可被理性把握的本原构成”,神话就退场了,因果推理就登台了。你不再需要去讨好神,你需要去理解结构。科学后面所有的操作——观察、建模、推演、预测——全建立在这个前提上:自然有可被理解的底层结构。没有这第一缕光,后面一切无从谈起。

你:那这批人具体说了什么?

墨叔:三个人,一笔一笔把这个提问方式写清楚了。泰勒斯说:万物的本原是水。

你:……石头也是水变的?

墨叔:先别笑。泰勒斯真正的革命不在”答案是水”,在于他给出了一个统一的、物质的、可被讨论也可被反驳的答案。在他之前,没有人对”万物统一于什么”做过这种理性猜测。而且他不是瞎猜:他观察到生命离不开水、种子发芽离不开水、海里捞上来的东西像是曾被水淹过的痕迹。他的”水”是一种”万物生于湿、归于湿”的一元论雏形。

你:那第二个人呢?

墨叔:阿那克西曼德,他往前推了一大步,而且这一步特别现代。他说本原不能是某个具体东西——水不配、火也不配——它应该是一种”无定形者”:没有确定性质,却包含着一切对立的混沌基底,冷与热、干与湿都从它分化出来,万物从它出来,最后又回到它。

你:等一下,“底层没有属性,属性是分化出来的”——这个思路我怎么觉得有点耳熟?

墨叔:你耳熟是对的。这已经非常接近后世”物质统一场""基本对称性破缺”的思路了:底层是无特征的,具体属性是在更高层次上涌现的。公元前六百年,一个人在海边把这个命题提出来了,而今天的物理学家还在纠结它。

你:第三个?

墨叔:阿那克西美尼说本原是气,但他真正的贡献不是答案,是机制。他提出:气通过”稀散”变成火,通过”凝聚”依次变成风、云、水、土、石。

你:所以他用同一种物质的疏密变化,解释了万物的差异。

墨叔:这就是最早的”相变模型”雏形,你甚至可以说他给了本原一个可调参数——密度。现在你把这三个人摆一起,看看拼出了什么:提出一个统一本原,给出一种转化机制,再用观察和类比为它辩护。

你:这不就是一套完整的方法论胚胎?

墨叔:它不是现代科学,但它是现代科学的直系祖先。而它和神话的根本区别只有一条:它的每个主张都可以被反驳、被替代、被更好的模型击败。 泰勒斯的”水”后来被他自己的学生推翻了——注意,这恰恰证明它是科学而不是宗教,因为宗教的答案是不允许被传人推翻的。

你:这个区分很锋利。那我该怎么把”本原”这个词用到我的活里?我担心它停在漂亮话。

墨叔:那我给你一个具体到能明天开会用的。你设计用户系统,第一个必须回答的问题是:用户的本原是什么? 是一个手机号?是一个不可变的用户 ID?还是一组可变的画像属性?

你:这个我们真吵过。当时为了省事用手机号做主键。

墨叔:然后呢?

你:然后用户换号,历史数据全对不上;再然后两个用户先后用同一个号,数据串了。修了半年。

墨叔:这就是”本原没定清楚”的代价,而且它有个特征:代价从来不在当时显现,全部延期支付。你把可变的东西当成了身份,等于把地基砌在流沙上。一个成熟架构师花在”定本原”上的时间——选主键、划实体边界、定什么叫”一次业务事件”——远多于花在堆功能上的时间。你明天要提交的那份数据库 schema,就是你的本原宣言。

你:顺着说,我们组还有一种吵法:后端说订单该以学生维度聚合,前端说该以课程维度聚合,吵三天没结论。

墨叔:他们争的压根不是接口,是”这个系统的本原到底是什么”。只是没人用这个词,所以吵不到根上。谁先把本原吵清楚,谁就掌握了建模的话语权。 你会议室里那场拉锯,就是米利都那场争论的远古回声,隔了两千五百年。


你先答:

墨叔:那我考你一道。泰勒斯说”万物的本原是水”,这答案明显错了,为什么王东岳还把它当成科学萌芽的里程碑?想三十秒。

你:因为方法比答案重要?

我的参考答案(供你对照): 对,但要说全。评判一个思想是不是”科学萌芽”,看的是它的方法姿态,不是它的具体结论。泰勒斯的革命在于,他第一次用”一个统一的、物质的、可被讨论和反驳的本原”替代了”神祇发怒”的神话解释。在他之前,人类对自然的解释是人格化的、不可讨论的;从他开始,解释变成了一个向后人开放的理性问题——你今天说水,明天你的学生可以说无定形者,后天另一个人可以说原子。关键不是”水对不对”,是”用本原解释世界”这个模式被启动了。更狠的一点是:他的答案后来被他自己的学生推翻了,而这正是科学与宗教的分界线——宗教的神圣答案不允许被传人推翻,科学的答案生下来就等着被推翻。所以里程碑意义全在”可错、可替代、可累积的理性解释范式”被点亮,而不在那个早已过时的结论。这对你有一条直接推论:一个团队的技术判断,如果新人不能带着证据推翻老人,那它就还是宗教,不是工程。


墨叔:米利都那边在问”本原是什么”,同时期另一个希腊人在问一件更折磨人的事。你猜是什么?

你:赫拉克利特?他那句”人不能两次踏进同一条河流”我知道。

墨叔:那句话被当文艺金句引用了两千年,可它的真正分量在于:它第一次把”变化”本身当成了世界的本质属性,而不是本原的故障。 他追问的是:如果本原是水、是气,那为什么世界一直在变?

你:这问题很尖。米利都那三位好像默认本原是静的。

墨叔:而赫拉克利特的高明在于,他没有因为世界在变就滑向相对主义、说一切都无意义。他认定在万变之下,有一条不变的逻各斯在掌管变化的分寸——就像火按一定尺度燃烧、又按一定尺度熄灭。

你:逻各斯——上一章那个”理性与比例同根”的词。

墨叔:他又一次把”变化的规则”和”比例、理性”拧在了一起。他给出的那句判断,你可以直接背下来:世界是流变的,但流变服从可被理性把握的尺度。 这几乎就是”动态系统加不变约束”最早的哲学表述。

你:这个我不用你翻译。我系统里数据一直在流——请求进来、状态转移、缓存刷新——我能驾驭它,唯一的原因是我在万变之下钉死了一批不变式:账目借贷必平衡、队列长度非负、事务必原子。

墨叔:所以赫拉克利特是”状态与不变式”这一对概念的远古代言人。没有那批不变式,你只能看着河流干瞪眼;有了它们,你才能在变动中维持秩序。而这也解释了一件很多人想不通的事:为什么不变量比功能更根本? 因为功能是暂时的,不变量才是你的系统在流变中不至于崩溃的那个锚。

你:他还有别的吗?

墨叔:还有一条特别对味的:对立统一。他说上行与下行是同一条路,生与死互为转化。这种”矛盾双方共存于同一个结构里”的直觉,恰好是现代系统设计的常识。

你:可用性和一致性。

墨叔:在分布式里,它们就是一对典型的对立统一:你只能取舍,永远不可能消灭其中一方。一个成熟工程师面对矛盾不是选边站,而是像赫拉克利特那样理解——它们本就是同一条路的两段。你把”要么强一致要么高可用”当成缺陷,你会一辈子跟系统赌气;你把它当成结构的固有属性,你才开始真正做设计。

你:那希腊科学萌芽里,最让你脊背发凉的是哪一个?

墨叔:原子论,毫无疑问。留基伯和德谟克利特的主张,用今天的话说是:万物由不可再分的最小粒子构成——原子这个词的本义就是”不可切分”——原子在虚空中运动、组合、分离,万物的差异只是原子排列组合的不同。

你:这是哪一年?

墨叔:公元前五世纪。比道尔顿的近代原子说早了整整两千三百年,而且它惊人地”像”现代物理:基本粒子、真空、组合决定属性——这三件套至今仍是物理学的基本叙事。

你:纯靠推理?没有显微镜,没有任何仪器?

墨叔:一粒沙都没看见过。而且德谟克利特还甩出一句更狠的:只有原子和虚空是真实的,色、味、声都是人的主观感受,是约定俗成的东西。

你:等等,这不就是上一章讲的感知通道禁闭吗?

墨叔:一字不差。你尝到的甜、看到的红,不是原子本身的属性,是你的感知系统渲染出来的。一个古希腊人,在没有任何实验手段的条件下,纯靠哲学推理,同时逼出了”基本粒子模型”和”感知非客观”这两个结论。这就是我说的脊背发凉。

你:那它为什么在方法论上重要?除了猜得准。

墨叔:因为它示范了科学建模的最高形态:找到最小可建模单元,然后只用单元的组合规则去解释一切宏观现象。 在原子论者眼里,没有”神秘属性”,只有原子的形状、位置、运动。这种还原论冲动,是科学最锋利的那把刀。

你:那我系统里的”原子”是什么?

墨叔:这个问题你得自己答,但我给你三层分法。一门语言的最小可建模单元是”基本数据类型加组合规则”,正对应原子的形状与排列;一个业务系统的最小可建模单元是”核心实体加状态转移规则”;一段算法的本质是”不可再分的操作原语加它们的组合顺序”。

你:所以三层其实是同一个句式。

墨叔:而高手和新手的分水岭,往往就在这一句:能不能找到那个不可再分、却足以组合出一切的原语。 新手喜欢在表层堆功能——猜你喜欢、看了又看、热门榜单,一口气上三个;高手先逼问”这个领域的原子是什么”,把用户、物品、行为这几个原子和它们的表示定清楚,然后那些表层功能会自己涌现出来,因为它们本来就是原子的不同组合。

你:只抓功能会怎样?

墨叔:只抓功能,你的系统永远在打补丁,因为每个新功能都是从零开始的一段新脚本,跟前面几十段没有结构关系。德谟克利特会跟你说:别被花花绿绿的宏观现象迷惑,往下挖,挖到那个最小的、能组合出所有的东西,你就握住了这个领域的解释权。

你:那原子论有没有短板?我怀疑你在等我问这句。

墨叔:等了半天。它是天才的猜测,却没有任何实验证据;更要命的是,它把”原子不可分”当成了不可动摇的前提。后来卢瑟福、玻尔发现原子可分、还有内部结构,恰恰是靠实验推翻了这个前提。

你:所以光有本原追问还不够。

墨叔:这就引出了本章后半段最关键的一课:科学还需要另一只脚。 我们先看希腊科学能爬到多高,再看它为什么爬不上去。

你:那就得说阿基米德了。

墨叔:先别跳。在他之前还有一个人,是希腊科学萌芽里最容易被程序员忽略、却和你日常工作最贴的一个——亚里士多德。

你:他不是被伽利略打脸那位吗?重物落得快。

墨叔:他被打脸的是结论,但他给人类留下的东西是工具。他干了两件事,两件都在你的代码库里活着。第一件,他把推理本身变成了可检查的形式——三段论:凡人皆有死,苏格拉底是人,故苏格拉底有死。你注意这个动作的性质:他不是在讨论某个具体真理,他是在给”从前提到结论”这个过程立规矩。

你:所以他做的是元层面的事。

墨叔:他造的是编译器,不是业务代码。在他之前,人讲道理靠气势、靠修辞、靠打动听众;从他开始,一段推理可以被拆成前提与形式,然后单独检查形式对不对——哪怕你完全不懂那句话在讲什么。这就是类型检查的祖宗:不关心你的值是多少,只检查你的形状合不合法。

你:这我太熟了。评审别人的方案时,我经常不需要懂他那块业务,光看他”因为 A 所以 B”这一跳就知道有洞。

墨叔:那你已经在用亚里士多德的工具了,只是没署他的名。第二件事更朴素也更伟大:他做分类。他把动物按有血无血、胎生卵生一层层分下去,建立了历史上第一个大规模的分类体系,还提出属与种、本质属性与偶然属性的区分。

你:属和种……这不就是类与实例、基类与派生类?

墨叔:面向对象那套词汇的哲学源头就在这。“本质属性”是继承下来不可变的部分,“偶然属性”是实例各自的差异——你写 class 的时候,每一次决定”这个字段该放在父类还是子类”,都是在重做亚里士多德当年那道题。而他真正的贡献不是分类结果对不对,是他示范了一件事:面对一堆杂乱现象,先建立一个有层级、有判据的分类框架,混乱就变得可讨论了。

你:那他的坏处呢?总不能只有好处。

墨叔:坏处极大,而且和好处是同一件事。他的体系太完整、太自洽、太好用,以至于后来一千多年里,人们把”亚里士多德说过”当成了证据本身。重物落得更快这个错误结论,能安然活一千八百年,不是因为它难验证——扔两个球就行——是因为没人觉得需要验证一个如此优雅的体系。

你:这个我背上有点凉。我们组也有那种”祖传架构”,谁都说不清为什么这样设计,但谁也不敢动。

墨叔:那就是你们的亚里士多德体系。它的危险从来不在于错,在于它太顺手,导致质疑的成本高于顺从的成本。你记住这条判据:一个前提如果长期没人验证过,那它被验证的紧迫性和它的年龄成正比,不是成反比。

你:好,现在可以说阿基米德了吧。

墨叔:他是希腊世界里少数把数学真正用于解决实际物理问题的人:杠杆原理、浮力定律、螺旋提水器,还有那句”给我一个支点,我能撬动地球”——那是”用极小原理解释极大现象”的绝佳注脚,也是上一章那把剃刀的又一次胜利。

你:他这么牛,为什么科学革命不是发生在他那儿?

墨叔:他的悲剧性正在这里。他的方法本质是”用几何求解物理”,而不是”用实验发现物理”。他的浮力定律来自思想实验和数学推导,不是来自系统化的可控实验。古希腊整体气质是重演绎、轻归纳——他们相信真理在理性里,不在感官里。

你:因为感官会骗人,根号二那一课。

墨叔:对,那次危机给了他们纪律,也给了他们偏见。所以他们的科学长成了”从漂亮前提推出漂亮结论”的形态,唯独缺了”用反复实验去拷问前提”这一环。这就是希腊科学的天花板:几何与数理极其辉煌,却始终没长出近代意义上的实验科学,也没把数学和物理焊成”用数学预测、用实验验证”的那个循环。希腊播了种,没等到收割季。

你:这个天花板,我怎么在自己身上找?

墨叔:太好找了。一个只有优雅模型、却从不跑起来验证的系统设计,就是现代版的希腊式科学。你有没有过这种经历——评审会上方案漂亮得无懈可击,类型、不变量、边界严丝合缝,全票通过,结果一上线,真实流量把它撕得稀烂?

你:有。我们那套缓存策略就是。命中率、失效传播、雪崩保护,推导得天衣无缝,评审时没人挑得出刺。

墨叔:上线之后呢?

你:碰上一次”热点 key 加突发流量加节点时钟漂移”三件事叠在一起,缓存集体失效,数据库被打挂。

墨叔:你注意问题出在哪——不是模型不美,是模型里有一个隐含前提:假设各节点时钟一致。而这个前提从来没有人去做实验拷问它。没压过时钟漂移,没注入过节点故障,没验证过那条前提在真实环境里成不成立。阿基米德要是活在今天,大概会说:我的浮力定律好歹经过我反复推演和少量实测,你的缓存模型连一次真实故障注入都没做过,它凭什么”必然对”?

你:所以希腊缺的那只脚,今天叫混沌工程。

墨叔:本质就是用实验去打脸你的漂亮前提。而希腊为什么长不出这只脚,有三个结构性原因,我给你数完。第一,缺实验传统。实验科学的本质是主动干预自然、控制变量、重复测量,让自然”说话”,而不是让理性”独白”。这套方法在古希腊基本缺席。亚里士多德虽然做观察,却常被自己的哲学前提带偏——他认为重物落得更快,靠的是推理,而不是真去扔两个球。

你:伽利略后来真扔了。

墨叔:真扔了,才发现错了。你记住这条:一个不靠实验纠错的传统,模型再漂亮,也会在错误的前提上盖起高楼。 第二,数学与物理长期两张皮。希腊有顶级的几何,也有顶级的自然哲学,但两者没结合成”用数学描述物理、用实验验证数学”的引擎。把它们焊起来的是伽利略——用实验加数学研究落体,和牛顿——用数学原理统辖天上与地面。这一步希腊人没走完。

你:第三?

墨叔:社会结构不支持持续积累。希腊城邦战乱频仍,知识靠个人师徒相传,没有现代意义上的”研究共同体加机构加文献积累”机制。一项发现容易随个人的死亡而中断——传说阿基米德死于罗马士兵一刀之下,当时他正在沙地上画几何图。

你:这三条我一边听一边在对号入座。

墨叔:那你自己对一遍。

你:缺实验,等于我只写代码不写测试,靠”我觉得对”上线;数学与物理两张皮,等于我的模型和真实业务脱节,文档写一套线上跑一套;不可累积,等于知识锁在某个人脑子里,他一离职系统就成黑盒。

墨叔:三条全中。现代科学能赢,赢在它建立了一套”假设、建模、实验、证伪、修正”的循环机制;你写靠谱系统,赢的也是同一套。希腊人给了我们”模型”这一半,另一半”用现实不断打脸模型”的纪律,是我们要自己补的。

你:但你说希腊完全没实验,我有点不服。他们那么聪明,两千年里一次都没测过?

墨叔:问得好,我正等你不服,因为”完全没有”是个懒惰的说法,而懒惰的说法会让你学不到最关键的那一课。希腊有过极漂亮的实验,只是它们是孤例,没长成传统。我给你举最漂亮的那个:公元前三世纪,亚历山大图书馆馆长埃拉托色尼,用两根影子量出了地球的周长。

你:两根影子?

墨叔:他知道在赛伊尼,夏至正午太阳直射井底,杆子没有影子;同一天同一时刻,在正北方的亚历山大,杆子有影子,夹角约七度多。七度是圆周的五十分之一。他再拿到两地之间的商队距离,一乘,就得出了地球周长——误差在百分之几的量级。

你:等一下。他手上就一根杆子、一个角度、一段路程?

墨叔:三个量,一次乘法,量出了整个行星。 而且他还必须先假定两件事:地球是球形、太阳光在这个尺度上近似平行。你看这套动作的完整性——一个可验证的假设、一次能实施的最小测量、一个可被后人重复和修正的数值结果。这已经是现代科学的完整闭环,只是发生在公元前。

你:为什么这个例子让我这么兴奋?

墨叔:因为它戳中了工程师最痛的一个自我怀疑:你总以为验证一个大问题需要大资源。 埃拉托色尼告诉你不需要。你要验证”我们的服务能不能承住十倍流量”,你的第一反应大概是申请一整套压测环境、排期两周、拉三个团队。

你:不夸张,就是这样,而且经常排不上。

墨叔:而埃拉托色尼式的做法是:找到那个用最小代价就能暴露真相的测量点。单实例打到极限看拐点在哪,然后看瓶颈资源是 CPU 还是连接数,再算出十倍流量下这个资源要多少——三个量,一次乘法。它不精确,但它把”我不知道”变成了”我知道大概在什么量级,以及我的假设是哪两条”。

你:后面那半句才是重点。

墨叔:对,一个好实验不只给你数字,还逼你把隐含假设说出来。埃拉托色尼必须先承认”我假定地球是球的”,你必须先承认”我假定瓶颈是线性扩张的”。假设一旦出声,就可以被下一个人挑战和修正,知识就开始累积了。反过来说,你那份没有写明假设的容量评估文档,本质上和宙斯发怒是同一类东西。

你:还有别的孤例吗?

墨叔:还有一个和”驱逐玄学”直接相关的:希波克拉底。他做的事说白了就一句——把疾病从神那里抢回来。 在他之前,癫痫叫”神圣病”,认为是神灵附体;他公开说,它和别的病一样有自然原因,只是我们还不知道那个原因。

你:他也没能力治好它吧?

墨叔:治不好。他的贡献不在疗效,在他重划了问题的归属:这件事属于自然,不属于神灵,因此它可以被观察、记录、追问。他还留下了一套很朴素但极硬的纪律——详细记录病人每天的症状变化,把病历当成证据积累。

你:这不就是打日志和写事故时间线?

墨叔:一模一样,而且性质完全一致:你未必现在就能解释它,但你必须先让它可被记录、可被回看。 一个团队一旦把某类故障叫成”玄学问题”,它就被移出了工程范畴,从此没人再去查,因为不属于人管的东西查了也白查。希波克拉底的价值就是这个动作的反面:他把”神圣病”改名叫”病”,仅此一改,就为后世两千年的研究打开了门。

你:所以复盘里那句”疑似玄学问题”,杀伤力比我以为的大得多。

墨叔:那不是一句自嘲,那是一次归属权的转让——你亲手把这个问题送给了神。而这两个例子合起来告诉你的是:希腊不缺天才的实验,缺的是让实验变成默认动作的机制。 埃拉托色尼量完就没人接着量,希波克拉底的病历传统在后世大量掺进了思辨。孤例不是传统,一次英雄式的压测不是质量体系。


又停一下:

墨叔:那我把这问题拧一下:希腊缺实验,问题出在阿基米德个人不够强,还是出在结构?想清楚再答,这题决定你怎么带团队。

你:直觉说结构,但我想听你怎么论证。

我的参考答案(供你对照): 出在结构,不出在个人。阿基米德个人的天赋和成果都到了那个时代的极限,可他的方法仍然是用几何求解物理,缺少系统化的可控实验;而他缺的这一环,不是他懒,是他所处的文明结构里压根没有这一环——重演绎轻归纳的整体气质、数学与自然哲学的两张皮、战乱和师徒相传导致的不可累积,三样东西合起来,就是一个天才撞不破的墙。所以结论是:个人天才撑不起一场科学革命,制度化的纠错与累积机制才能。 把它代进你的团队会更扎心:一个靠一两个大佬凭经验救火撑着的系统,和一个靠”监控、告警、复盘、文档”机制撑着的系统,前者就是希腊式的靠阿基米德,后者才是现代科学式的靠制度。前者在大佬离职、休假、或者仅仅是那天太累的时候崩掉;后者在一个新人值班的凌晨也能撑住。你希望你的系统靠谁活?答案其实已经写在你的 on-call 排班表里了——如果那张表上有一个名字被排得比别人多得多,那你就还在公元前三世纪。


墨叔:讲完希腊,必须回头看一眼中国,不然这一章不完整,也容易让你误读成”中国不行”。王东岳的视角始终是结构决定论,不是优劣论。

你:那中国的情形是什么?

墨叔:一句话:技术极度早熟,关于”自然本原”的理论性科学基本缺席。 三个证据。第一,四大发明。造纸、印刷、火药、指南针,全是改变世界的技术,但它们的原理性理论在本土几乎没有同步发展。火药来自炼丹术士的偶然配方,指南针来自堪舆的经验,没人去追问”为什么硝石硫磺遇火会爆""为什么磁石会指北”。技术跑在前面,理论落在后面。

你:第二个证据?

墨叔:《墨经》里的科学火花被掐灭了。墨子在光学上讲小孔成像,在力学上讲杠杆,在逻辑上也有相当的建构,比希腊不遑多让。但墨家在秦汉之后彻底式微,那些火花没有结成传统。

你:为什么?

墨叔:因为农耕文明的生存结构不需要、也不奖赏”为求知而求知”的精密逻辑;墨家那种手工业者底色,在重农抑商、独尊儒术的结构里没有存续空间。不是火花不亮,是没有燃料,也没有炉膛。 第三个证据,农学、天文、数学基本都是”实用算法集”。《九章算术》解决土地的、税收的、工程的算法,不追问为什么必然对;天文历法精准到能预测日食,却用天人感应去解释它的意义,不追问天体运动的力学机制。

你:那和希腊的差别到底在哪一个点上?

墨叔:差在”追问的终点”不同。希腊人问到底层的”本原是什么”,中国人问到”怎么把它用好”。一个走向解释世界,一个走向利用世界。而王东岳的冷峻结论是:恰恰是”解释世界”那条线后来孕育了科学;而”利用世界”的早熟技术,因为缺了底层理论,始终没能自我革新成科学。

你:给我一个程序员版本的类比。

墨叔:希腊人在写操作系统原理,中国人在写极其高效的业务脚本。脚本能解决眼前问题,甚至能解决得非常漂亮,却无法沉淀成可复用的底层平台;而一旦底层范式革命——比如从机械到电磁——只有原理派跟得上。

你:这一段让我有点坐不住。因为我这十年,写的基本都是”极其高效的业务脚本”。

墨叔:那这一节对你的价值就到位了:它帮你分清”工程能力”和”科学能力”。你可以是顶尖的业务脚本高手,快速交付、解决具体问题,这本身很值钱。但如果你从没追问过”我这个领域的本原原语是什么、我的模型能被什么实验证伪”,你就始终停在中国式的技术早熟里,缺了那层能让你在下一次范式转移中存活的理论自觉。


再答一题:

墨叔:那我用中国这段考你最后一道。四大发明改变了世界,为什么它们没有在本土孕育出科学?别答”因为封建制度”这种口号,我要机制。

你:因为没人追问原理?

我的参考答案(供你对照): 方向对,但要说出机制才算答完。关键在于这些发明的产生路径里,压根不包含”追问原理”这一环。火药出自炼丹术士调配方时的偶然爆炸,指南针出自堪舆师的长期经验,造纸与印刷出自工匠对材料与工序的反复试错——它们全部是”目标导向的试错优化”,而不是”从原理推出的设计”。试错优化有个致命特征:它能给你一个能用的结果,但给不了你一个可外推的解释。 你知道硝石硫磺按某个比例混合会爆,却不知道那是氧化剂与还原剂的电子转移,于是你无法预测换一种氧化剂会怎样,也无法反向设计出更强的配方——技术就此停在配方层,无法自我加速。第二层机制是没有需求牵引理论:农耕文明的生存结构不奖赏”为求知而求知”,一个能用的配方足以换来赏赐,一套解释爆炸原因的理论换不来任何东西,于是理论没有生态位。第三层是没有沉淀载体:配方靠师徒口传、甚至刻意保密,而原理天生要靠公开辩论才能被检验和累积,保密的知识永远长不成科学。三层合起来,你就得到一个精确的结论:技术可以在没有科学的条件下高度繁荣,但它繁荣的天花板由试错的次数决定,而科学的天花板由解释的深度决定。 代进你的工作会很扎心:一个靠不断调参、试出一组”能扛住流量”的配置的团队,和一个能算出瓶颈公式、预测下一个拐点在哪的团队,前者眼下也许跑得更快,但前者每换一次场景都要从零试错,后者只需换一次参数。你这十年攒的是配方,还是公式?


你:那给我一套明天能用的守则,别只给我震撼。

墨叔:一条总纲加六条动作。总纲是:动手之前,先逼问底层原语;写出来之后,用真实流量反复证伪。 第一条动作,每个新系统开工前先写”本原文档”——别急着画架构图、建表,先回答这个领域不可再分的核心实体是哪几个、它们之间的转化规则是什么。一份三行的原语定义,胜过十张漂亮的架构图。

你:第二条是找原子,你已经讲过了。

墨叔:不重复。第三条,严格区分神解释和本原解释。故障复盘时盯住自己的用词:出现”抖动""偶发""玄学""可能是”,就是神话残留;逼自己走到”哪个不变式被违反了、哪个状态转移不合法”。一个团队复盘的质量,就看它停在神解释,还是走到了本原。

你:第四条应该是补实验那只脚。

墨叔:而且要把标准提高一档:把”我推导它是对的”升级成”我测过它是对的,而且我能说出它在什么条件下会变错”。后半句才是关键——主动定义失效边界,比证明它现在能用重要得多。测试不是上线前的仪式,是科学循环里那缺失的半只脚。

你:第五条?

墨叔:让正确的东西可累积、可传承,别锁在某个人脑子里。希腊科学断在个人化传承;你今天的对应物是:知识写成文档、复盘写成事故报告、不变量写进类型和注释。一个工程师离职,系统不该变成黑盒——这就是现代版的研究共同体机制。而且我得强调:别靠个人自觉,要靠制度。 提交即跑 CI,合并前必过评审,线上有监控告警,事故必有复盘——这套机制不依赖某个英雄工程师的勤勉。你若指望”我们团队都很牛,会自觉测”,本质上还是希腊式的靠天才个人,迟早断在某人离开或某次疏忽上。

你:第六条是警惕技术早熟?

墨叔:警惕技术早熟陷阱:为赶进度疯狂堆业务脚本、从不沉淀底层抽象,短期交付飞快,长期每次需求变更都是重写。偶尔停下来问一句”我这堆脚本背后,有没有一个可以上升为平台的本原模型”,是你避免沦为高级脚本工的唯一办法。另外送你一条会议室专用的:用”本原之争”替代”功能之争”。

你:这条怎么讲?

墨叔:很多技术评审开成吵架现场,因为大家在争”哪个功能更该做""哪个方案更炫”——全是表层之争。你把争论拉回本原层:我们这次到底要优化延迟、吞吐,还是一致性?这个领域的原子到底是事件还是状态?一旦本原对齐,表层的功能排序往往自动浮现,争论会瞬间降温。我见过太多团队在”先做 A 还是先做 B”上耗掉三天,只因为没人先逼问”我们这场仗的本原目标是什么”。

你:最后你是不是还要给我泼一盆冷水?

墨叔:必须泼,不然这一章会留下一个危险的错觉。这章讲的是”萌芽”,容易让人生出”希腊人好厉害、我们好可惜”的情绪。冷静一点:萌芽只是种子,离现代科学还差着实验方法、数学物理闭环、研究共同体这三大步,而这三步是后来一千多年才走完的。 同样,你在项目里”想到了底层原语、写了本原文档”,也只是科学态度的萌芽,离”系统真的可靠”还差测试、灰度、演练、复盘一整套现代工程纪律。

你:所以最危险的错觉是”我们讨论过本原了,所以我们的设计是科学的”。

墨叔:一字不改。讨论本原只是开头,反复用现实证伪才是正文。下次开工新需求,先别打开编辑器,拿一张纸只写三行:这个领域的原子是哪几个?它们之间的转化规则是什么?我打算用什么实验去证伪我的设计?写不出这三行,说明你还没走出神话阶段——哪怕代码已经写了一半。

你:说句实话,我以前觉得这些古人跟我隔着两千年。

墨叔:他们没有一个人解决了当时人的吃饭问题。泰勒斯、德谟克利特、赫拉克利特、阿基米德,没有一个。但他们让人类第一次相信:世界底下有结构,而结构可被理性拿下。你每写一行”先想清楚原子再动手”的代码,都是在替那束公元前点燃的火苗续一秒光。

你:这话有点重,但我接。

墨叔:那我留最后一个问题给你,别急着答:你上一次故障复盘,结论里有没有出现”网络抖动""偶发问题""重启后恢复”这类字眼?如果有,那你要问自己一句——那份复盘报告,究竟是一份工程文档,还是一次现代版的祭天?