← 返回列表

追本之箭 — 世界是可编程的

2026-04-11 · 4 层下钻

追本之箭 — 世界是可编程的

2026-04-11 Sat 12:27


起点

"开窍的前提,是先认识到世界是可编程的。"

这句话像一份赋权书。隐含的承诺是:看见代码 → 拿到改写权 → 开窍 = 拿到 root。

把它翻过来:

"可编程"根本不是世界的属性

它是你和世界之间那段关系的属性——而这段关系,挂着一张口号替你藏起来的账单。

世界有一部分能改,这是废话(钱、法律、习俗,当然是人写的)。

真正的杠杆不在"能不能改",在改一次的代价 ÷ 世界的反推力——那个被口号抹掉的汇率

而账单的最深一栏,藏得更狠:

你能"写",不代表你能预测"写下去会发生什么"。

语法(syntax)和语义(semantics)是两回事。

这条缝,一直通到逻辑的底——通到"再多算力也算不出来"的地方。

所以问题不是"世界可不可编程",是:当你按下回车,谁来编译?要多久?能不能撤销?


第一层 · 接口

先问最朴素的:"编程 X"这个动作,预设了什么?

预设了 X 暴露一个稳定接口——同样的输入,可靠地给同样的输出。

没有稳定接口,你连"改哪一行"都说不出口。

钱、法律、语言、学历,之所以看起来可编程,正因为它们是世界上接口面积最大的那批东西:

你往里塞一个动作,它回你一个可预期的结果。所以工程能落地、合约能履行、协议能调用。

但接口为什么稳定?

接口稳定,不是因为它写死了,是因为偏离它要付代价

红灯停——不是物理定律,是"闯了会被撞/被罚/被鄙视"。

每一个看似中立的"程序"背后,都站着一台执行机制

于是"可编程"被悄悄换了概念:你以为在编辑一个配置文件,其实在和一台执行机不打照面地角力

裂缝:那台执行机是谁?谁在为"红灯停"买单——如果没有一个中央管理员盯着每个路口?

第二层 · 均衡

切到博弈论。地面在这里。

那些规则看着像可以随手替换的任意约定(arbitrary convention)。错。

它们大多是纳什均衡(Nash, 1950):

每个人遵守规则,是因为——在所有人都遵守的前提下,单独偏离的那个人,亏。

没有中央管理员。规则被所有人的最优反应同时托住

它是承重墙,不是装饰线。你以为在改一行配置,其实在做一件事:在一场 n 人重复博弈里,单方面叛变。

结果系统要么弹回去,要么惩罚你

这就是"看见了 ≠ 改得动"的真正机制——不是权限不够(那是表层),是你一个人动不了一个均衡

Schelling(《冲突的战略》, 1960)给了出路也给了天花板:均衡能移,但只能靠同时撬动所有人的预期(focal point / 共识跳变),不能靠你一个人把规则文本改掉。真正"给社会编程"= 工程一次协调转移,要的是对预期的杠杆,不是对规则的洞察。

证伪钥匙(per-rule,可当场测):

你单方面违反这条"规则"结果它其实是
没事,大家跟着改了无反推力任意约定(真能改)
你被罚/被孤立/被弹回强反推力均衡(承重,改不动)

摩擦,就是它是均衡而非约定的证据。试试单方面"废除货币"——那股推不动的力,就是答案。

裂缝:好,均衡原则上能移——只要我攒够协调力、能撬动所有人的预期。那是不是只要权力够大,就什么都能编程?有没有一种墙,跟权力一点关系都没有?

第三层 · 不可压缩

有。而且它和权力无关。再切一层,到信息论与计算。

就算给你无限协调力,你仍撞一堵墙。

因为"编程一个结果"(不是设个初值),你得先能指定那个结果——把它压缩成一条比结果本身更短的指令。

Kolmogorov:绝大多数状态是不可压缩的——除了"把它整个念一遍",没有更短的描述。

Wolfram 的计算不可约性(computational irreducibility,《A New Kind of Science》, 2002):

对很多系统,根本没有捷径——想知道它走到哪一步,唯一办法是一步步把它跑完

对这种系统,"我要编程那个结果"是一句不通的话:

你能设初始条件、能按下运行,但你无法作者式地写定结局——因为"写定结局"等于"已经把它算完了"。

市场、生态、文化、人脑——全是计算不可约的

你能扰动它,给不了它轨迹。撒一把种子可以,指定每片叶子的形状,不行。

这才是第一性的硬根: 一个控制器,只能编程那些相对它的模型可压缩的系统。可压缩 = 有结构可抄近道;不可约 = 近道不存在。

Bear case(必须正面接): "等 AI、等算力,不可压缩的迟早被压缩。"

——不。计算不可约不是算力不足,是一条关于"捷径不存在"的定理。更多算力让你跑得更快,不让你跳过步骤

(诚实边界:世界里确实有可约的口袋——那正是机器学习吃得到的地方;本层说的是那个不可约的余项,它不随算力消失。)

裂缝:那我退一步——不作者式写定结局,我设好初值、跑起来、在旁边看着、随时干预。这总算一种控制?也就是说,只要我能预测它要去哪,我就还有权力。问题是:我总能预测吗?

第四层 · 不可判定

不能。这是最硬的地面——纯逻辑,不需要一丝物理

Rice 定理(1953): 程序的任何非平凡语义属性,都是不可判定的。

不存在一个通用算法,光看一段程序的代码,就告诉你它最终会做什么

停机问题(Turing, 1936)只是它的一个特例。

把这句话砸到"世界是可编程的"上,火花是致命的:

就算只盯着世界里那部分"确实是程序"的东西,你也无法从代码判定它的行为——除非把它跑一遍

读代码是可判定的(语法);预测行为是不可判定的(语义)。

这一刀,削掉了口号最值钱的承诺。

"看见代码"——原来买不到它许诺的东西。因为看见 ≠ 判定。你能读懂每一行,依然算不出它会把你带到哪。

唯一能完整模拟现实的模拟器,就是现实本身——以 1× 速度,跑一遍,不能快进

(Borges 那张 1:1 的地图:精确到和疆域一样大,于是毫无用处。模型一旦复杂到能预测系统,它就和系统一样复杂、一样慢了。)

诚实边界(否则就是过度主张): 不可判定是最坏情况 + 要求精确的结论。现实里你常常只需要有限时窗、概率性的预测——而这恰恰是结论的实践版:既然精确预测不可得,你只能靠经验去采样,不能靠推演去作者


终点 · 只有现实能编译

箭到底了。

不是落在意识上(那是另一支箭的底)。这一支落在更冷的地方:

世界,语法上可写,语义上不可知。

规则(语法)改起来很便宜。

但这些改动会产生什么意思(语义)——你永远无法在脑子里先算出来,只能把现实跑一遍、活过去,才知道

于是"开窍"的定义,被整个换掉:

不是 "我能重写世界"

"我能写;但我没法在脑内编译。只有现实能编译——一次,向前,不能撤销。"

这正面撞上不可逆:唯一的 debugger 是时间,而它只朝一个方向跑。

最反直觉的推论,在这里:

拿 root 的人,不是更会"预测"的人。(语义不可判定,没人能预测。)

他们只是买得起更多次便宜的试运行——更多 compile cycle、更多次对着那个不可约系统开枪。

资本与权力,买的不是先见,是次数

所以"世界是可编程的"对了一大半,错就错在它教你用错的姿势:

它让你坐在椅子上设计那个完美的重写——而那是不可能的(你算不出它的语义)。

正确的姿势是反过来的:小步改 → 让现实编译 → 读报错 → 再改。

编程世界,从来不是扶手椅上的作者,是经验上的迭代者

四道闸:动手"重写 X"之前,把 X 推下去

若答案是那么
一 · 接口X 是稳定接口还是流变?流变没有接口可调,别假装在编程
二 · 均衡这条规则是任意约定还是承重均衡?(单方面违反→被弹回?)均衡你需要预期杠杆(撬动所有人),不是洞察
三 · 压缩可压缩还是计算不可约?(有没有比"跑一遍"更短的预测?)不可约你只能设初值,作者不了结局
四 · 判定不跑它,你能判定结果吗?几乎永远不能把每次 edit 当不可逆:小、便宜、可回滚

触发器(下面任一出现 = 你正在误用这句口号)

三个姿态

先认 X 的类型,再决定编不编——四道闸跑一遍,大多数"世界"卡在第二、三闸。

用试运行换先见——既然语义算不出,就多开枪、每枪便宜、可回滚;root = 更多次数,不是更准。

把不可逆当默认——唯一的编译器是现实,唯一的 debugger 是时间,没有 undo;所以先小注,再加注

最后一句

开窍不是"看见世界是可编程的"。

是看见:世界的语法可写,语义不可判定;

唯一能编译它的,是以 1× 速度向前跑、且不能撤销的现实本身。

所以别再问"我看懂这套程序了吗"。

问:我按下这次回车,要等多久才知道结果,而我撤得回来吗?

看懂代码的人,以为自己拿到了 root。

真正开窍的人知道:root 只给写权限,从不给预测权限——剩下的,得交给时间去跑。


(箭到底了。)


世界是可编程的 漫画卡
点击查看大图

💬 评论