ESI那30行伪代码乍一看像是“复古考古”,但真看懂的人会意识到它干的是一件更狠的事:把现代计算栈里那些隐蔽的时间耦合全撕了。
其实我们平时讨论软件 preservation,总在说格式迁移、模拟器兼容、硬件考古。但问题其实不在于8086跑不起来,而在于你的代码默认依赖了数不清的“此时此刻”——系统时钟、随机种子、浮点舍入顺序,甚至某个库的隐式行为。这些变量在十年后会把同一段代码变成两个程序。ESI的解法很偏执:既然控制不了环境,那就把环境从语义里彻底剔除。
这有点像把棋盘状态抽象到最小可验证的单元,不是模拟人类直觉,而是让输入和输出永远等价。它的指令集是“零熵”的:千年后的结果和今天等价,不需要追问当时跑在什么系统上。
这种设计的代价当然大,它排斥了现代软件的许多便利。但它提醒我们,真正杀死软件的从来不是技术过时,而是我们写下的那些“现在”太多。