這週有四、五篇文章在做同一個動作,動作大到值得單獨命名:把一段跑在熱路徑上、用 C 或弱型別寫了十幾年的程式,整段搬去一塊能被型別系統或數學證明守住的地盤——TrueType 直譯器搬進 Swift、OCaml runtime 逐行翻成 Rust、Stripe 三百七十萬行從 Flow 跳到 TypeScript。記憶體安全這個詞,這週第一次以一個 tag 的身分上桌。
第 25 週 —— 熱路徑的集體搬家
這週的主軸
六月九日到十四日,六天十八篇 deep story,散在五個 domain 上,但有一條主線把其中幾篇綁得很緊:這週特別多「把熱路徑語言換掉」的故事。不是加一個函式、補一個型別註記,而是把一整段早就能跑、跑了很多年的程式連根拔起,搬到另一個語言裡——而且每一次搬家,動機欄裡寫的都是同一件事:讓編譯器或證明器替你守住那些人腦守不住的不變條件。
最赤裸的一例是 Apple。把 TrueType hinting 直譯器從 C 搬進 Swift,動的是字體 rasterizer 最燙的那段——每渲染一個字元都要跑的位元組碼直譯器。這種地方傳統上沒人敢碰:它又熱又久,換語言等於拿效能去賭。Apple 賭的是反方向:直譯器處理的是不可信的字體檔,C 在這裡每一個陣列存取都是一張未爆彈,與其繼續修 CVE,不如讓 Swift 的邊界檢查把整類記憶體錯誤一次關掉,再用 profile 把熱路徑的代價賺回來。
逐行把 OCaml runtime 從 C 翻成 Rust是同一個動作的另一種紀律。這篇刻意不重寫——不是「用 Rust 重新設計一套 runtime」,而是一行 C 對一段 Rust,連 GC 的指標算術都照搬過去,先求行為等價、再求把 unsafe 一塊一塊縮小。它證明了一件事:語言搬家可以是工程,不必是豪賭,只要你願意放棄「順手改架構」的誘惑。而 Stripe 用一個 PR 把三百七十萬行從 Flow 遷到 TypeScript,把同樣的紀律放到型別檢查器這層:codemod 自動化、一次性切換、CI 守住等價性——三百七十萬行的搬家最後變成一次可審查的機械操作。
把鏡頭拉遠,這條線其實更寬。120k 行 Rust 後端把多租戶隔離、同步引擎、外掛沙箱全交給型別系統去扛;EC2 把虛擬機隔離證明成一條數學定理,則是這個動作的極端版——不靠語言,直接靠形式化驗證把「隔離成立」寫成可機檢的證明。語言、型別、證明,三種強度不同的守門人,這週被四、五篇文章排成同一個方向:能讓機器守的不變性,就別再讓人去守。
沒被合稱的個別亮點
DiffusionGemma是這週 ai 域最該追的一篇:把文字生成從自迴歸一個 token 一個 token 吐,換成擴散式的整句去噪。它挑戰的是「語言模型一定要從左到右」這個沒人質疑過的預設——若擴散路線在品質上追平,整個推論的吞吐量模型都要重畫。這個方向這週只有一篇扛,但值得單獨拉一條線盯著。
Amazon 用隨機圖蓋資料中心網路是 infra 這週最反直覺的一篇。把跑了二十年的 fat-tree 換成一張用 RNG 長出來的扁平拓撲——放棄規整、擁抱隨機,換來的是更短的平均路徑與更好的故障容忍。資料中心網路這種「設計好就不太敢動」的地基,這週被人從拓撲層翻了一次。
Postgres 19 終於要做 query hint。pg_plan_advice 回應的是社群擋了十五年、列了六條的反對意見——這不是技術突破,是一場立場的轉向:當 planner 在生產環境偶爾選錯計畫的代價足夠痛,「我們不做 hint」這個原則本身被要求重新舉證。backend 這週的代表作。
FFmpeg 一口氣被挖出 21 個零日,把媒體解碼的攻擊面攤開給人看:每一個你以為無害的影片檔,背後是一整排手寫 C 解析器。它和 AMD 那個拖了 124 天才被揭露的更新器 RCE、愚弄 Go X.509 驗證的 ASN.1 編碼差異連起來看,是這週的暗線:主軸在談「怎麼把底層改寫得更安全」,這三篇則在提醒底層現在有多不安全。
CSS 改不掉的那些壞掉部分是 web 這週的冷門好文。從 box-sizing 到 margin collapse,講的是一套標準裡那些「當年的決定,今天改不動」的歷史包袱——和主軸恰好互補:有些底層能搬家,有些底層因為相容性鎖死,只能帶著傷活下去。
本週動向
把這週(06/09–06/14)和上週(06/02–06/08)放在一起量,domain 的盤子幾乎沒動:五個優先域全部擠在 16.7% 到 22.4% 這條窄帶裡,最大的位移只是 infra 從 18.7% 升到 19.9%(+1.2 pp)、backend 從 20.9% 退到 19.9%(−1.0 pp),其餘三域都在 1 pp 以內。沒有任何一個 domain 達到值得寫進敘事的門檻。這又是一個「形狀沒變、內容在換」的週。
真正的位移在 tag 這層,而且方向和主軸完全吻合:rust 從上週的 3 次衝到本週 7 次(+4),memory-safety 這個 tag 本週首次出現、一上來就 3 次,security 從 1 次升到 4 次。另一頭,上週紅極一時的 llm-inference 這週直接掉到零(−4)——推論最佳化的熱潮退場,記憶體安全與改寫接棒。本週總量也從上週的 91 則收斂到 78 則,比例穩定但盤面整個換了一輪。
每個 domain 一區,上週(淡)/本週(實)各一條 bar,按 |delta_pp| 排序
本週五個 domain 分布變化都在 ±1.2 pp 內,infra 微升最多、backend 微降,整體形狀幾乎沒動;真正的位移在 tag 層(rust 3→7、memory-safety 新出現 3 次)。
一週的形狀
六天、六篇 roundup、十八篇 deep story。archetype 分布:technical-deep-dive 5 篇、explainer 4 篇、narrative 4 篇、investigation 3 篇、freeform 2 篇——technical-deep-dive 仍最強勢,但 explainer 與 narrative 各 4 篇平分次席,反映這週既有「把一個新機制拆給你看」的硬解說,也有「把一場改寫講成故事」的敘事。domain 上 systems 5 篇最多,ai 4 篇緊隨,infra/web/backend 各 3 篇——五域齊備,沒有一域缺席。
18 篇 deep story × 6 天(06/09–06/14),每天三篇
六天、十八篇 deep story
本週六天十八篇 deep story,technical-deep-dive 5 篇最多,explainer 與 narrative 各 4 篇,systems 5 篇居首、ai 4 篇次之,五域齊備。
下一週可能會展開的線索
WASI 0.3 這週剛把原生 async 帶進 component model,但「能用」和「生態跟上」是兩件事。下週值得看的不是 spec 本身,而是第一批把舊有 host/guest 串接從手寫 poll loop 換成原生 async 的實作案例——bytecodealliance 周邊的 runtime 通常在 spec 落地後一兩週內就會出現遷移筆記。
另一條:Postgres 19 的 query hint(pg_plan_advice)正往 release 推進。擋了十五年的功能一旦進核心,社群的反應會比功能本身更值得讀——下週若有人開始貼「我用 hint 救回一個爆掉的計畫」或反過來「hint 讓我們踩了新坑」的實戰帖,那才是這個轉向真正的試煉場。而 DiffusionGemma 開的擴散式文字生成這條線,這週只有一篇,若其他 open-weight 陣營跟進,六月下旬就有得對照著拆了。
這週的落點——改寫從來不是這行最光鮮的工作:它不長新功能、不上發表會,只是把一段早就能跑的程式,搬到一塊更難出錯的地上。但這週一篇接一篇地提醒,這件不起眼的事正在變成一種共識——當熱路徑處理的是不可信的輸入、當一個 CVE 的代價遠超過一次重寫,「它一直都這樣寫」就不再是它能繼續這樣寫的理由。六天、十八篇,rust 從 3 衝到 7,memory-safety 第一次上桌——這週做的事,是把「誰來守不變條件」這個問題,從人手上接過去,交給編譯器和證明器。