
1019 | 从微码到微米:代码、AI 与平台规则的一周
Show notes
本期节目从代码与语言讲起:8087 微码、Free Pascal 的动态包、Java sealed 类的坑与解析器组合子;接着聊 AI 如何改变推理、数学与产品灵魂;再看两台微米级开源精密机器;最后是平台规则——HOA 诉讼、域名商扣押、Meta 数据条款、Cloudflare 免费逻辑、macOS 弄坏 OpenGL,以及任天堂官方时间线。
时间轴
- 00:00:04 开场
- 00:00:33 代码考古与语言陷阱
- 00:07:29 AI 时代的推理、数学与产品灵魂
- 00:14:20 微米级开源制造
- 00:16:36 平台、数据与社区规则
- 00:24:44 收尾
相关信息
- The Intel 8087 chip: floating-point addition and subtraction
- Free Pascal compiler now supports dynamic packages
- Java sealed classes and exhaustive pattern matching
- Parser Combinators
- Hybrid Reasoning Agents: LLM agents that think in latent space, act through text
- Will it be a golden age or a dark age for mathematics (and science)?
- Someone behind the software
- Show HN: Sphinx – A hook that quizzes you on your AI's code before shipping
- DeepSeek search and fetch – $0.75 per 1000 successful requests
- Open MicroManipulator – A sub-micrometer 3D motion control plattform
- RepRapMicron
- Legal experts warn Meta's new terms still grant broad scraping permissions
- Namecheap just seized and disabled all my domains
- Florida's HOAs and condo associations are making the housing crisis worse
- Matthew Prince on why Cloudflare offers a free version and always will (2016)
- Show HN: The Zelda timeline to catch up before the Ocarina of Time remake
- macOS 15.8.2 Breaks OpenGL
本期节目由 Bri 出品。Bri 使用先进的 AI 技术将你在意的资讯转换成适合收听的播客。如需联系,请发邮件至 hi@bri.so。
Transcript
茉莉: 大家好,欢迎收听本期节目,我是茉莉。
白桦: 我是白桦。今天我们从代码的历史讲到代码的未来,一条线串下来:有人在考古一块四十年前的芯片,有人在解决二十年没解决的工程债,还有人在担心 AI 正在把软件变成没有灵魂的流水线。
茉莉: 对,而且中间还夹着几个很实在的语言陷阱和平台纠纷。咱们直接从最有考古味的那条开始吧。
白桦: 好。Ken Shirriff 做了一件很少有人做的工作:他把 Intel 8087 的微码逆向工程了一遍。8087 是那颗老的浮点协处理器,他挖出来的是 1648 条微指令,目的是讲清楚这颗芯片到底是怎么做浮点加法和减法的。
茉莉: 这个事情为什么值得讲?因为现在没人这么看 CPU 内部了。今天你写浮点运算,编译器、硬件、指令集全给你包好了,你只看到一行 a 加 b。但 Shirriff 是直接从硅片上把那 1648 条微指令挖出来,再去理解每一条在干什么。
白桦: 而且浮点加减法其实比听起来难得多。你想想,两个浮点数,指数可能完全不同,你要先把它们对齐到同一个指数,再对尾数做加减,然后还得处理舍入。整颗芯片的微码基本上就是在编排这一整套流程。
茉莉: 对,微码你可以理解成芯片内部更低一层的"程序",硬件设计者用它来把复杂的操作拆成一小步一小步的微指令。1648 条,这是一个不小的规模,说明浮点这个看似简单的操作,在硬件层面是相当庞大的工程。
白桦: 我觉得这类工作最珍贵的地方是它的"考古"性质。不是所有逆向工程都有这个待遇——大多数时候人们逆向是为了破解或者兼容,但这次是为了理解。这颗芯片定义了后来几十年浮点运算的一些基本思路,把它解剖开,等于看了一眼现代计算的一个祖先。
茉莉: 有一个我们不知道的事情,也是留给大家的问题:8087 的微码设计,有多少思想还活在今天的高速 FPU 里?现代处理器的浮点单元是几 GHz 的流水线机器,微码结构可能完全不同了。但底层的数学——对阶、尾数运算、舍入——这些是躲不掉的。所以可以说,Shirriff 讲清楚的东西,原理上还是今天每一次浮点加法在做的事情,只是实现方式天差地别。
白桦: 这是个很好的问题,值得评论区继续讨论。那我们从硬件考古跳到另一个"考古级"的工程故事——Free Pascal 和 Lazarus。这个项目刚刚补上了拖延了二十年的一个功能:完整的动态包支持。
茉莉: 二十年,你没听错。Lazarus 是那个类 Delphi 的开源 IDE,Pascal 社区一直在用它。以前有个很痛的问题:你想装一个新组件,得重新编译整个 IDE。组件多起来之后,每次改动都是一次漫长的等待。
白桦: 现在有了动态包,组件可以几秒钟装进去,不用重编 IDE。你从外部视角看这是件小事,但对那个社区来说,这是开发体验的根本改变。
茉莉: 我觉得这两条放一起挺有意思的。一个是把四十年前的芯片拆开看,一个是把二十年没修的工程债还掉。它们都说明一个道理:软件和硬件都有"沉积层",有些问题不是不能解决,是没人有动力或者资源去解决。Lazarus 社区显然是有长期主义的,不然撑不到今天。
白桦: 而且这种"补旧账"的工作,往往比做新功能更难。因为你要在不动现有生态的前提下改底层机制。动态包涉及编译器、链接器、IDE 加载流程,哪一环出问题都全盘崩溃。能安全落地,说明工程功底扎实。
茉莉: 好,说完 Pascal 的老树开花,我们说一个现代语言的坑。Java 的 sealed 类最近暴露了一个隐患,跟 switch 的穷尽性检查有关。
白桦: 我先把背景铺一下。sealed 类是 Java 比较新的特性,它允许你明确列出这个类有哪些子类型,不许别人乱继承。好处是编译器可以帮你做"穷尽检查"——比如你用 switch 处理一个 sealed 类型的所有子类型,编译器会确认你漏了没有,这是非常强的静态保证。
茉莉: 问题在哪?当有人给那个 sealed 类新增了一个子类型,而消费方——也就是那些写了穷尽 switch 的代码——没有重新编译,那个静态保证就失效了。运行时会发生什么?抛 MatchException。
白桦: 对,运行时异常。这就有点讽刺了:sealed 加 switch 的整个卖点就是"编译期就能抓漏分支",结果在一个非常现实的场景下——库升级、增量编译、不同模块分开部署——这个保证悄悄变成了一个运行时的定时炸弹。
茉莉: 这其实是模块化系统的一个经典张力。编译器的保证是基于它当时看到的代码快照,一旦代码在不同时间、不同地点编译,快照就不一致了。这个不是 Java 独有的问题,但它把这个问题暴露得很具体:你以为抓到了所有分支,实际上运行时来了个你不认识的新子类型。
白桦: 所以这值得继续讨论的点是好几个:这算不算 sealed 类设计上的缺陷,还是使用者需要理解的已知限制?是不是应该在文档里更醒目地标注?或者 JVM 层面该不该有不同的处理方式?评论区里这些角度都值得摆出来。
茉莉: 从 Java 的类型系统陷阱,我们再跳一个话题——但其实是同一个"如何可靠地处理结构化数据"的主题。有一篇教程在讲解析器组合子。
白桦: 解析器组合子这个概念,如果你没接触过,听起来很玄。但教程里的核心定义其实非常简单:一个 Parser<T> 本质上就是一个函数,它吃进一个字符串,返回两个东西——解析出来的值,加上剩下还没消费的字符串。
茉莉: 就这么简单。但这个抽象的妙处在于,因为解析器本身就是函数,你就可以把它们组合起来:小的解析器拼成大的解析器,"一个数字"加"一个逗号"加"另一个数字"就成了"一对数字"。整个解析器就像搭积木。
白桦: 教程里对比了正则表达式,指出为什么这种方式更好。正则的问题是它只告诉你"匹配了"或"没匹配",匹配到的字符串你还得自己再处理。而解析器组合子直接给你结构化的值,而且能处理递归、嵌套这些正则很吃力甚至做不了的结构。
茉莉: 这跟前两条连起来看挺妙的:8087 用微码把浮点拆成微指令,Java 用 sealed 类帮你穷尽分支,解析器组合子把解析拆成可组合的小函数——都是"把复杂问题分解成小而可靠的单元"这个思想。工具不同,哲学是相通的。
白桦: 那我们就顺着这个"工具如何改变开发者"的思路,进入下一个大话题——AI。前面都是人写工具,现在工具开始自己"写"了。
茉莉: 第一个要讲的是 HybridAgent,一个关于 AI agent 推理方式的研究。现在很多前沿 agent 是纯文本推理的,就是模型一路用自然语言想问题。HybridAgent 的思路是混合:一部分推理在"潜在空间"里进行,一部分用文本。
白桦: 结果数字挺亮眼:性能提升 10.4%,同时 token 消耗减少 35.5% 到 54.7%,推理速度快 1.8 到 2.6 倍。这三个维度同时改善,说明这个混合策略不只是省钱的权衡,是真的在效率和质量上都占优。
茉莉: 为什么这值得普通开发者关注?因为 agent 的成本问题现在越来越现实。跑一个复杂 agent 任务,token 账单和延迟都可能是瓶颈。如果一个方法既能干得更好又更便宜更快,那对整个生态都有影响。
白桦: 但也有值得追问的地方。"潜在推理"具体是怎么和文本推理分工的?哪些任务适合哪种?这些细节决定了它能不能真的落地。而且 10.4% 这个数字看起来不大,但在 agent 这种多步任务里,累积效应可能不小。
茉莉: 这也是我的问题——性能提升的来源到底是潜在推理本身更聪明,还是因为它省下了原本用于"说出来"的 token?这些机制层面的疑问,现在还没有完整答案。
白桦: 从 agent 的效率,我们聊到 agent 的哲学影响。Terence Tao 的博客上有一篇客座文章,讨论了一个非常有野心的命题:LLM 到底会把数学带进黄金时代,还是黑暗时代?
茉莉: 文章的框架是个二分法,关键变量是 LLM 的"独立性"。如果 LLM 保持独立——也就是它自己能产生和验证数学知识——那可能迎来数学的黄金时代,因为突然有了海量的计算和探索能力在做数学。
白桦: 但反过来,如果走向另一个极端,就会出现一个"黑暗时代"——知识变得人类看不懂。就是机器产生了一堆"正确的"数学结果,但没有人能理解它们是怎么来的、为什么成立。知识对人类来说变成了黑箱。
茉莉: 这个二分法很有冲击力,因为它把"AI 帮助人类"和"AI 取代人类理解"放到了同一个轴上。数学是人类的智力活动,如果它的产出不再能被人理解,那对数学这个学科来说意味着什么?
白桦: 但我认为这篇文章留下了一个没有解决的问题:独立性到底怎么定义?怎么度量?一个高度依赖人类提示的系统能算独立吗?一个能自己验证自己证明的系统呢?这个光谱上的位置不同,结论可能完全不同。
茉莉: 而且我觉得"黑暗时代"这个预言有个隐含假设:数学的价值在于人类理解。但也有人会说,数学的价值在于正确性和连接性,谁来理解是次要的。这是个值得争论的哲学分歧,不是有标准答案的。
白桦: 从数学这么宏大的问题,我们收回到一个非常具体的行业担忧。Karri Saarinen 提出了一个警告:产品会失去它们的"灵魂"。她针对的是现在流行的"agent 驱动的软件工厂"这种模式。
茉莉: 她的观察是这样的:当你让 agent 自动生成功能,一个接一个往上堆,如果没有一个统一的"观点"——也就是一个关于"这个产品到底为谁解决什么问题"的清晰主张——产品就会变成一堆功能的集合,而不是一个有灵魂的东西。
白桦: 这个警告在 AI 时代特别及时,因为 agent 让"加功能"的成本降到几乎为零。以前加一个功能要设计师、工程师、产品经理反复权衡,现在一句话就能生成。但恰恰因为便宜,才更容易失控。
茉莉: 这里有个很微妙的点:Saarinen 说的"统一的观点",本质上是人类品味和判断的体现。AI 可以生成无数功能,但"这个功能该不该存在"、"它跟产品整体调性协不协调",这些判断目前还是人的事。如果你把这个判断也外包给 AI,产品就会失去方向。
白桦: 我觉得这跟 Tao 那篇文章其实是一体两面。Tao 担心数学知识变得人类看不懂,Saarinen 担心产品失去人类观点。本质上都是同一个问题:当 AI 能大规模生产内容或功能时,人类在其中扮演什么角色?是理解者和品味守护者,还是旁观者?
茉莉: 有趣的是这两个话题的"关键未知"也相似:如何把独立性和品味观点制度化?也就是说,不是靠个别有品味的人,而是有什么流程、什么结构能保证这些人类的判断不被 agent 的生产速度淹没?
白桦: 这两个问题都是开放性的,值得听众自己想想。我们插播两条跟 AI 开发直接相关的工具新闻,然后再去硬件那头。
茉莉: 先说 Sphinx。这是一个开源的 Git hook,它做的事情很直接:在你提交 AI 写的代码之前,先考考你,看你是不是真的理解了这段代码。如果你答不上来,就不让推。
白桦: 这个工具的存在本身就说明了一个问题:AI 生成代码太容易了,容易到很多开发者可能根本没读懂自己提交的东西。Sphinx 用一个小小的摩擦点——一个测验——来强制"理解"这道关卡。
茉莉: 而且它强调一个很实际的细节:运行时消耗的 token 极少。这说明作者意识到,这种工具如果本身很重、很贵,就没人会用。它必须轻到不影响正常工作流。
白桦: 我认为这是把 Saarinen 那个"灵魂"问题落到了代码层面。产品要有点子,代码也要有理解者。如果整个团队都在提交自己不懂的代码,那技术债和认知债会以我们没见过的速度累积。
茉莉: 再看一条 API 方面的消息。DeepSeek 推出了两个新接口:Search 和 Fetch API,定价是每 1000 次成功请求 0.75 美元。
白桦: 功能上,Search 支持像 site:、lang:、date: 这样的操作符,可以精细控制搜索范围和语言、时间。Fetch 则是抓取网页并转成 markdown,方便后续处理。
茉莉: 这个价格点值得留意。每千次 0.75 美元意味着单次成本不到千分之一美元,这对大规模 agent 应用来说是个有意义的成本水平。配合前面 HybridAgent 的效率提升,整个 agent 工具链的成本曲线在往下走。
白桦: 好,那我们从 AI 的世界切换到另一个完全不同的方向——微米级开源硬件。这里有两个项目,都在做一件很酷的事:把精密运动控制开源化。
茉莉: 第一个叫 MicroManipulator。它是一个电动的 XYZ 三轴平台,能做到亚微米级精度,步进达到 50 纳米。这个精度级别是用来干什么的?光学校准、探针操作、显微操作——就是那些你需要在显微镜下挪动东西、而且要挪得极其精确的场合。
白桦: 50 纳米是什么概念?一根头发丝大概是 8 万纳米,这是它的一千六百分之一。以前这种精度是实验室级、商业级设备的领域,价格不便宜。开源化意味着更多人能接触到这种能力。
茉莉: 第二个项目叫 RepRapMicron,或者叫 µRepRap。RepRap 大家可能知道,是那个"自我复制的 3D 打印机"运动的开源项目。µRepRap 做的事情是把 RepRap 的思想缩到微米尺度——微米级的 3D 打印。
白桦: 具体到它的 PIKA 版本,定位精度大约 1 微米,能打出 4 微米的树脂液滴,固化出来的线条是 9 微米。这已经不是普通 3D 打印了,这是微制造。
茉莉: 这两个项目放在一起看很有意思。它们不是孤立的发明,而是同一个趋势的两个表现:曾经被锁在昂贵商业设备里的精密能力,正在被开源社区复制和传播。而且 µRepRap 特别有 RepRap 的精神——它的目标是让设备本身也能被别人复制。
白桦: 值得关注的未知点也在这:这些项目社区能不能复制成功?精密设备有个特点,光有图纸不够,装配、校准、操作都有门槛。一个项目的开源程度和它能不能真正被社区复现,是两回事。这个我们需要时间观察。
茉莉: 而且微米级的物理世界跟软件不一样,你不能发个补丁就修好一个装配错误。所以这些项目的健康度,很依赖文档质量和社区经验积累。这个观察值得持续跟进。
白桦: 好,硬件说到这里。接下来我们进入今天最后一个大话题——平台、数据和社区规则。这一块涉及几个看似不相关、但内核相通的事件:谁控制规则,谁就被控制。
茉莉: 先说 Meta。Meta 修订了它的服务条款,删掉了"train"这个词——就是那个明确说明数据会被用来训练 AI 的词。听起来像是收敛了对吧?
白桦: 但专家看了之后说,别高兴太早。虽然删了"train",剩下的条款依然赋予 Meta 广泛抓取的权利,抓取的对象是那些跟商业账户有关联的站点。而且这个新条款 10 月 30 日生效。
茉莉: 这就是一个很典型的"措辞游戏"场景。删掉一个词制造出一种"我们在收敛"的印象,但实质性的权利范围可能并没有缩小。专家的解读提醒我们,看条款要看权利的实际边界,不是看关键词。
白桦: 这个事情后续值得观察的是:会不会有法律挑战?用户的实际反应是什么?会不会有人因此调整他们跟 Meta 商业账户的关联方式?这些都是未知数。
茉莉: 从 Meta 的条款说到另一个平台的权力故事——域名注册商 Namecheap。他们扣押并禁用了一位客户的域名。
白桦: 这件事在评论区引发了共鸣,不止一个人反映遭遇过类似的域名被扣押的情况。而且评论者开始互相推荐替代方案,提到了 Porkbun、Cloudflare 和 Internet.bs 这几家。
茉莉: 域名这个东西的特殊之处在于,它不只是你买的一项服务,它是你在线身份的根。一旦注册商扣押了你的域名,你的邮件、网站、API endpoint,所有依赖它的东西都瞬间失效。而且你基本上没有什么即时申诉渠道。
白桦: 所以评论区的反应这么强烈,我觉得是因为这件事触碰到了一个痛点:你对注册商的依赖是单向的。你可以换银行,但换域名商的过程本身就要先控制住域名,而域名恰恰是被扣押的那个东西。
茉莉: 这个和 Meta 的事情连起来看,主题是一样的:平台掌握了你离不开的资源,规则就是他们说了算。不管是数据条款还是域名扣押,用户都是被动的一方。
白桦: 那我们把这条线再往下拉一层,看一个完全不同领域的数据——佛罗里达的 HOA,就是业主协会。这组数字挺惊人的:10,296 起针对业主的止赎诉讼,460,412 条留置权,6,661 个协会失去了资格。
茉莉: HOA 这个制度在美国是个很特殊的存在。它在理论上是为了维护社区标准,但实际上它有很强的准司法权力——可以罚款、可以留置你的房子,甚至可以启动止赎。
白桦: 这些数字的规模说明这不是个别现象,而是系统性的。10,296 起止赎诉讼,背后是一万个家庭面临失去住房的风险。而 460,412 条留置权,意思是几十万个房产头上都挂着某种法律负担。
茉莉: 6,661 个协会失去资格这个数字也很值得琢磨。这说明有些 HOA 本身运作出了问题,连它们自己的合法性都维持不住。整个生态既有权力过大的问题,也有治理失败的问题。
白桦: 从 HOA 回到域名和 Meta,你看到同一个模式:一群人把规则交给一个机构,机构在理论上为他们服务,但在实践中可能权力失衡。不管是业主协会、域名注册商还是社交平台,问题都是相似的——规则制定权在谁手里,救济渠道是什么。
茉莉: 那这条讨论里最后一个话题,Cloudflare CEO Matthew Prince 在 2016 年讲过的五个理由,解释为什么他们要提供免费且不限量的服务。这五条是:数据、推荐、招聘、QA,以及带宽的规模经济。
白桦: 我们逐条过一下。数据:免费用户的使用数据能帮他们改进产品。推荐:免费用户变成口碑传播者。招聘:优秀工程师想在一个大规模系统上工作。QA:海量免费用户等于在真实世界做压力测试,帮你发现 edge case。
茉莉: 最后一条是带宽规模经济,这个最技术性——Cloudflare 是做 CDN 的,规模越大单位带宽成本越低,所以多服务一些免费用户,实际上并不会线性增加成本。
白桦: 这个五条理由放在今天的语境下特别有意思。你看今天的讨论里有 Namecheap 扣域名、Meta 改条款,免费服务为什么免费、免费背后是什么交换,这些问题一直没变。Prince 2016 年说得挺坦诚:免费不是一个善举,是一整套商业逻辑。
茉莉: 而且对照今天来看,这份坦率反而显得珍贵。现在的平台很少这么直白地告诉你"我们从你身上得到了什么"。当你用免费服务的时候,至少可以拿这五条去想想:这家公司从我这儿拿走的是什么?
白桦: 好,我们从平台规则再说回到一个轻松点的话题,作为今天比较靠后的一个故事。有人做了一个 Zelda 时间线网站,把任天堂官方的时间线做了可视化。
茉莉: 这个网站的亮点在于,它把《奥卡里纳的时光》之后的分支结构做成了清晰的三条线。玩过 Zelda 系列的人知道,那作游戏的结局直接把整个世界观劈成了三条不同的时间线,这是系列叙事里最著名的一个设计。
白桦: 这个可视化的时机也很巧——奥卡里纳的重制版马上要来了,网站作者提到是 17 天后。所以这个时间线梳理,对老玩家和新玩家都是个很实用的参考。
茉莉: 从严肃的平台权力讨论切到 Zelda 时间线,看起来跨度很大,但其实是同一件事的另一面:社区对共享叙事的热情。Zelda 的时间线之所以能被做成可视化网站,是因为它是一个社区共同维护、共同争论的知识体系。这跟开源硬件、跟 HOA 规则、跟平台条款,都是"一群人如何共同组织知识"的不同形态。
白桦: 今天最后一个话题回到 macOS。macOS 15.8.2 这个版本破坏了 OpenGL,这个事情在评论区激起了不少争论。
茉莉: 先说背景。OpenGL 在 macOS 上其实一直处于半遗弃状态,Apple 多年前就宣布 deprecated,官方主推 Metal。所以每次系统更新,OpenGL 出点问题其实不意外。
白桦: 评论区的讨论大致有几条思路。一条是技术性修补:有人讨论 Metal shim,也就是写一个兼容层让 OpenGL 调用跑在 Metal 上;也有人在讨论 Vulkan 路线,通过 MoltenVK 这个把 Vulkan 转译到 Metal 的层来绕开问题。
茉莉: 另一条争论更有哲学性:Apple 到底"该不该"花力气修 OpenGL?评论里有一种说法是,Apple 不应该在这个已经过时的 API 上继续投入。这个说法背后是对 Apple 战略选择的理解——他们已经押注 Metal 很多年了。
白桦: 但反过来看, broke 了就是 broke 了,很多依赖 OpenGL 的应用——老游戏、科学可视化软件、专业工具——它们的开发者并没有选择放弃 OpenGL,是 Apple 单方面改变了前提。这些用户怎么办?
茉莉: 这里有几个真正没解决的问题:Apple 是故意破坏还是副作用?Metal shim 和 MoltenVK 这类社区方案能覆盖多少场景?老应用的维护者会不会因此被迫迁移?这些现在都没有答案,需要看后续版本的修复情况。
白桦: 而且 Apple 内部的权衡,外界只能猜。就像 Cloudflare 那五个理由一样,大公司的资源分配逻辑,你只能从结果反推。
茉莉: 我们今天从 8087 的 1648 条微指令出发,途经 Lazarus 的二十年工程债、Java 的运行时陷阱、解析器组合子的优雅,再进入 AI 的效率、数学和灵魂之争,然后是纳米级的开源硬件,最后是平台规则和社区治理的几个故事。
白桦: 这一期其实有条暗线贯穿始终:技术系统都会老化,规则都会被重新解释,而人类的理解和判断——不管是读懂浮点微码、理解 AI 写的代码,还是守护产品的灵魂——始终是那个不能被外包的东西。
茉莉: 谢谢大家收听,我们下期再见。
白桦: 再见。