发布宇宙:事后复盘
Source: Dev.to
最初发表于 Medium
试着想象没有时间
不是冻结的,也不是暂停的。
字面上没有“之前”,没有“之后”。没有任何你可以等待的瞬间。
甚至“静止”这个概念也暗含一种顺序——一种可能会改变的东西。去掉它,就没有可供诉诸的序列。没有向前,也没有向后。
这并不是想象力的局限,而是一种信号。
时间并不是在设置时额外加入的东西。它在系统出现必须排序的区分时瞬间出现。当后果存在——当选择 X 而不是 Y 限制了还能成立的其他可能时——一种顺序随之产生。我们把这种顺序称为时间。
下面是一位产品经理和一位故意拗口的开发者,一次一次构建中如何发现这一点的过程。
构建 0 — 仅空间
PM: 需要一个宇宙。保持最小。没有物质,没有能量——只有空间。
Dev: 除了“存在”还有其他要求吗?
PM: 有。它必须有物质。
Dev: 你说“没有物质”!
PM: 约束。后果。如果一种可能性排除另一种,系统应当体现这一点。
Dev: 交付无限空间。完美均匀。里面什么都没有。
PM: 宇宙处于什么状态?
Dev: …是的
PM: 那不是一种状态……
Dev: …它是
一个完美均匀的宇宙没有内部对比。没有备选项。没有区别。它技术上是存在的,但它只能产生对自身的单一描述。
PM: 它有时间吗?
Dev: 没有。你并没有要求“时间”。它是完美的。唯一的状态,什么也不变。
时间首先不存在,以允许变化。变化——以可区分的备选项的形式——是时间得以存在的前提。
Build 1 — Stuff That Bumps
PM: 添加粒子。让它们相互作用。使相互作用具有破坏性。
Dev: 完成。粒子碰撞。结果不同。有些配置会阻止其他配置。
PM: 发货。
Dev: 不行!为了定义碰撞,我必须假设一个背景。系统现在有了时间,因为我伪造了它。
经典物理在时空内部创建关系,但它假设时空已经存在。
PM: 如果秩序是从数据中出现的呢?
Dev: 像副作用一样?
PM: 像副作用!
Dev: 什么?!… 这很奇怪,听起来不可能,而且我讨厌这可能会成功。
构建 2 — 使关系成为基础
Dev: 新的思路。不是在空间中放置粒子,而是直接定义关系。
PM: 但为什么顺序只能往一个方向?
Dev: 因为“undo”并不是被禁止的——它只是极其罕见。所以我们称之为“future”的方向,是信息从过去向我们不跟踪的细节中散布的方向。
空间和时间不是输入;它们是由约束及其更新所强加的记账手段。
PM: 完全没有关系会怎样?
Dev: 你会得到没有相互约束的孤立事实。没有任何东西阻止矛盾。没有任何东西对可能性进行排序。
没有关系,就没有结构。没有结构,就没有排序。没有排序,就没有时间。
当时间不再是魔法
PM: 构建 1 有时间。现在有什么不同?
Dev: 那时有时间是因为我们把它当作一种成分放进去的。现在时间是从关系中产生的。我们不再假设有时钟——宇宙会自行生成。
PM: 所以只要有变化,时间就一直存在。但现在我们知道它为什么会存在。
Dev: 正是如此。以前,时间是魔法。现在它是会计。结构产生关系,关系产生排序,排序就是时间。
PM: 发布!
什么是“后果”暗中要求的
我们一直失败,直到我们拥有了所有的要求:
- Distinction 提供多重描述
- Relations 创建约束
- Change 产生序列
- Consistency 使序列可组合
- Accumulation 让模式变得重要
- Irreversibility 在低熵情况下,使顺序只能单向流动
这些不是偏好。它们是失败模式。
宇宙并不是从时间开始的。
时间在宇宙不再毫无意义时才开始。
作者在此——乐于讨论该框架何处会崩溃,或哪些其他“显而易见”的依赖实际上是涌现的!