10月14日
那位端出 Node.js 的廚師,把整間廚房交給了另一家店
Node.js 之父 Ryan Dahl 帶著 Deno 團隊加入 Cloudflare 的消息,被翻譯成一間廚房裡把爐火交棒、把老食譜留下的滋味故事。
10 月 9 日,Ryan Dahl 在 Deno 官方部落格發了一篇標題很短的公告:Deno 團隊加入 Cloudflare。同期 Cloudflare 也刊出由 Dahl 與 Kenton Varda 署名的文章。用一間餐廳來說,這就像那位當年發明了一整套出菜流程的總廚,帶著原班人馬,把圍裙掛到別家店的牆上了。
先說清楚這樁交棒的實際內容。整個 Deno 團隊過去 Cloudflare,Dahl 與共同創辦人 Bert Belder 會領頭推一個新項目。Deno 運行時還能再用一年,官方持續提供每月更新、修 bug 與安全補丁,一年後停止開發,代碼維持開源。Deno Deploy 服務六個月後關閉,付費客戶會獲得遷移到 Cloudflare Workers 的協助。JSR 套件註冊中心繼續營運,底層搬到 Cloudflare 的機器上。公告裡沒有公布交易金額,兩邊用的字都是「加入」。
這件事讓人想起你家廚房裡最熟悉的那口鍋。Node.js 在 2009 年問世,把 JavaScript 從瀏覽器裡撈出來,端上了伺服器的餐桌,後來長成前端後端都繞不開的基礎設施。我們先前聊過一個人開夥時那口燉什麼都順的萬用鍋,那份順手,源頭正是當年 Dahl 端出來的這套東西。
一道菜的食譜,留在原來的店裡
Deno 這間「店」開得不算長,但菜色講究。回頭看它的年表:2018 年 Dahl 在同一個場合做了續集演講,題目是「關於 Node 的 10 件讓我後悔的事」,Deno 就在這份反省裡出生。2020 年 5 月 Deno 1.0 上線,第一天就吸引大量目光。2021 年公司成立,2022 年 6 月拿到紅杉資本領投的兩千一百萬美元 A 輪,累計融資兩千六百萬美元。2023 年推出 KV 儲存並認真相容 npm 生態,2024 年 10 月 Deno 2.0 發布。
就算即將停更,它留下的幾道手藝已經被後來的廚房學走了。像預設安全:跑一個腳本前,你可以指定它只能碰哪些資料夾、連哪些網址,不加權限參數它什麼都做不了,這就像切完辣椒的刀單獨洗、單獨放,不跟切水果的那把混。TypeScript 直接就能跑,不用另設一堆組態。fetch、WebSocket、Streams 這些網頁標準拿來就用,代碼在瀏覽器和伺服器之間搬移,成本低得像把同一鍋滷汁從瓦斯爐換到電陶爐。格式化、lint、測試、打包一條命令全包,等於爐臺、水槽、砧板都在同一個檯面上。這些設計後來被 Node.js 與 Bun 大量借用;Dahl 最得意的權限模型,Node.js 在 2023 年也補上了。
食譜會留下來。廚師換了地方,菜的精神還在別家的爐子上繼續燒。
新東家看上的是那一鍋老滷
Cloudflare 看上的,其實是一個叫 celld 的項目。Cloudflare 自家的開源運行時 workerd 支援 Durable Objects,但只能跑單一實例,本機測試夠用,要跨機器擴展就撐不住。Deno 團隊在 8 月用 Rust 寫出 celld,外部依賴只有物件儲存,能提供分布式運算、持久化狀態與即時通信。Kenton Varda 說得直白,當 Deno 團隊發布 celld 時,他們非常高興。接下來兩邊要把 celld 的代碼與思路合回 workerd,目標是讓同一套開發模型既能跑在 Cloudflare 的網路上,也能跑在開發者自己的伺服器裡。
這像極了一鍋養了多年的老滷。店要收了,但那鍋滷汁被原班人馬小心地搬去新店面,繼續滷新的東西。我們之前寫過只抽成不開店的老滷邏輯,老味道換個地方發酵,往往比從頭再熬一鍋更值錢。
為什麼要走
在 Hacker News 的討論串裡,Dahl 寫了一段坦率的解釋。他說這是共同決定,他本人同意。他對 Deno 投入最多,也最希望它成功,但他不再認為這裡是能做最重要工作的地方。原話大意是,Deno 裡有一些好想法,工程上也做得很好,但它最終沒能解決足夠大的問題。
廚房裏這種事也常見。一家小店菜做得乾淨漂亮,回頭客也穩,但老闆心裡清楚,真正想端出去的那桌大菜,這個爐子燒不出來。於是把招牌菜譜留下,帶著團隊去更大的後場。
對每天寫代碼的人來說,接下來一年是緩衝期:Deno 還能用、還會修,之後代碼開放,社羣想接手也接得住。這大概是最體面的收店方式,爐火慢慢降溫,鍋子刷乾淨,食譜留在桌上,誰想學,就學。