這裡記錄每週值得分享的科技內容,週五發佈。
本雜誌開源,歡迎投稿。另有《誰在招人》服務,發佈程序員招聘信息。合作請郵件聯繫([email protected])。
封面圖

重慶涪陵某景區架設了世界首座"巨石索橋",橋面就是一塊塊巨石,一不小心就會踏空。(via)
測試是新的護城河
Next.js 是目前排名第一的 JS 框架。平時遇到的 JS 全棧應用,我估計,一半用它開發。

兩週前,這個框架被一則新聞顛覆了。
一個 Cloudflare 工程師宣佈,他只用一個星期就用 AI 重新實現了 Next.js,起名為 vinext。

事實上,一天就生成產品原型了,後面幾天只是在完善。
"真正動手是2月13日,當天晚上,基本功能已經實現。第二天下午,11個路由器做好了10個。第三天,已經部署到我們的服務器,實現了完整的客戶端水合。
接下來的幾天,主要進行安全加固:修復極端情況,擴展測試套件,提升 API 覆蓋率至 94%。"
這個新的實現,比原版 Next.js 性能更好。
"早期基準測試中,構建速度提升了4倍,客戶端軟件包的體積縮小了57%,生產環境的 Next.js 應用已經直接跑在上面了。"
這個 vinext 的代碼已經放出來了。

我覺得,這件事對 Next.js 的打擊非常大。
Next.js 是 Vercel 公司的產品,背後有一個大型開發團隊,每年都是鉅額投入,已經整整做了10年。雖然是開源軟件,但是企業版、雲服務、插件、皮膚都要收費,去年的年收入達到2億美元。
這種看似難以逾越的護城河,在 AI 面前不堪一擊。一個工程師用了一個星期,就復刻了大團隊十年的工作成果,現有的網頁應用不改一行代碼,放上去就能跑,原版的每個功能都支持。
你知道花了多少錢?Token 費用僅僅為 1100 美元!
這叫 Vercel 怎麼再向 Next.js 的開發投錢,客戶又怎麼願意再為某個功能付出高昂的使用費。
推而廣之,所有的商業軟件都受到了重創。代碼的護城河不存在了,只要投入一小筆金錢,AI 就能復刻出大型軟件。
那麼,為了保護自己,軟件公司下一步肯定要防止 AI 復刻。
怎麼防呢?關鍵就是測試用例。
Cloudflare 工程師這一次能夠復刻成功,主要原因是 Next.js 有完備的文檔、龐大的社區文章、以及完整的測試用例。AI 模擬的每一個 API,只要能夠通過原有的接口測試,就能確認百分百兼容。
如果拿不到測試用例,誰知道代碼行為是否一致,誰敢放到生產環境運行。
可以想象,為了防止復刻,大型軟件項目一定會保護自己的測試用例。測試才是新的護城河。

世界最流行的數據庫 SQLite,本身代碼15.6萬行,但是測試用例9205萬行,足足大了590倍!
其中,最核心的測試套件 TH3 是閉源的,不公開,主要測試航空、醫療等關鍵行業的極端情況和邊緣案例,屬於核心技術資產。正是這些保密用例,才讓 SQLite 難以復刻。
無獨有偶,就在前兩天,另一個開源項目 tldraw 也準備將測試用例閉源。

說實話,保密的測試用例肯定不利於開源項目的發展,但是開發者需要保護自己的利益。在日益強大的 AI 面前,越來越多的軟件可能會選擇這樣做。
AI 復刻的版權問題
AI 復刻軟件還有一個版權問題,也引起了很大爭議。

Next.js 是最寬鬆的 MIT 許可證,所以復刻沒有版權問題。但是,有人復刻了一個叫做 chardet 的項目,就爭議巨大。
chardet 本來採用的許可證,是限制較多的 LGPL,復刻以後改成了 MIT 許可證,引發了原始作者的抗議。
網上的意見也分成了兩派。
支持者說,AI 只復刻了功能和接口,代碼完全不一樣,當然可以更改許可證。
反對者說,GPL 規定了,所有衍生作品都不能更改許可證,AI 復刻就屬於衍生。
更麻煩的是,美國法律規定,AI 生成產物無版權,屬於公共領域。這意味著,AI 復刻的軟件不能設置許可證,設置了無效。
按照這條法律,軟件許可證就意義不大了。管你是什麼許可證,任何人 AI 復刻一下就能規避,AI 實現的版本一律沒有版權。
科技動態
1、AI 改寫髒話
遊戲平臺 Roblox 宣佈,將用 AI 實時修改玩家的對話,讓其變得更文明。

以前,如果玩家在遊戲裡面罵髒話,系統只會將其過濾,顯示為 ####,你還是知道他在罵人。
現在,AI 將重新修改整個句子,讓表達變得更禮貌、更文明,你就察覺不到對方在罵人。
雖然這樣未免有點虛假,但確實有必要。網絡論壇也應該跟進,不要讓人身攻擊毀掉交流氛圍。
2、飛機的激光上網
歐洲航天局成功進行了飛機的"激光上網"實驗,通過激光將一架飛機與一顆衛星連接,實現了高速通信。

飛機上網現在都通過無線電波,比如星鏈就通過無線電,讓飛機連接衛星。本次實驗則是通過激光連接衛星。

上圖就是安裝在飛機舷窗上的激光終端。
激光通信的優點是帶寬大,不受無線頻譜的限制,這次實驗的上網速度達到了 2.6Gbps,是星鏈的8到10倍。
缺點是激光與衛星之間必須保持直線,不能有云層和大氣的障礙物。所以採用這種方式,大概只有飛到高空時才能上網。
Grammarly 是一個寫作服務,提供一個收費功能"專家意見",讓專家點評你的文章。

一個國外用戶使用該功能時,震驚地發現,點評專家裡面有他的前老闆(下圖),但是他知道老闆已經去世了。

原來這不是真人點評,而是 AI 為每個專家建了一個分身,用他們各自的文章進行訓練,然後讓分身點評你的文章。
這引起了爭議,我們是否有權搭建別人的"數字分身",然後冠以原始人物的名義(比如"孔子分身"或者"愛因斯坦分身")?
4、太陽能郵筒
網絡通信普及以後,傳統的郵筒怎麼辦?
英國皇家郵政想出一個辦法,將英國各地3500個郵筒,變為"太陽能郵筒"。

郵筒頂部加裝了太陽能光伏片,功能也從寄信,變成了收寄小包裹。

這樣既保存了傳統的紅色郵筒,成為街道的景觀,又為人們郵寄包裹提供了方便。

文章
1、GitHub Issue 標題的注入攻擊(英文)

這可能是第一起 AI 模型注入的真實攻擊。Cline 項目使用 AI 對 GitHub Issue 進行分類,有人就在標題插入惡意提示詞,從而成功拿到 npm 令牌,發佈了一個惡意版本。本文告訴你這是怎麼做到的。
2、重新評估 AGENTS.md(英文)

最近的一項研究提出,跟推薦做法相反,AGENTS.md 文件對 AI 編碼不是促進,而是阻礙。
它只是讓模型"思考"得更多(成本上升),生成結果卻沒有更好(性能下降)。
3、Temporal API 的九年曆程(英文)

本週,Temporal API 正式通過了第四階段。這意味著,它進入了 ES2026 標準,成為了 JavaScript 語法的一部分。本文是這個標準的起草者對九年推進歷程的回顧。
4、AI 的胡說測試(英文)

國外有一個 BuillshitBench,專門問 AI 一些胡說八道的問題,看 AI 能不能分辨這是胡說,還是一本正經地回答。
5、原生 CSS 就足夠了(英文)

本文展示了 37Signals 公司的 CSS 代碼,表明不使用任何框架(比如 Tailwind)和構建工具(比如 Sass),只用原生 CSS 代碼完全可以。
6、糞便物理學(英文)

一篇很另類的科普文章,解釋為什麼動物不管大小,排便時間都在5~19秒之間,平均12秒。
工具
1、KULA

Linux 服務器的監控工具,只有一個二進制文件。

mac 電腦的屏保程序,用彩色的 Ansi 字符畫作為屏保圖案。
3、upiano

在命令行下模擬鋼琴彈奏。

一個開源 Windows 應用,通過圖形界面管理 Windows Subsystem for Linux(WSL)發行版。
5、Mole

開源的 Mac 電腦清理和優化工具。
6、PipeGate
一個將內網服務映射到外網的隧道工具,特點是比較簡單,就是幾個 Python 腳本,並且可以設置 UUID 客戶端認證。

一個管理、測試 Webhook 的在線工具,個人可以免費使用。
8、Sentinel

將安卓手機轉化為網絡攝像頭,實現實時監控和圖像採集。(@suzuran0 投稿)

Mac 電腦的系統監控、管理面板。(@chentao1006 投稿)
AI 相關

一個 Python 命令行工具,監控本地各種 coding agent(比如 Claude Code、Codex、OpenCode)的使用量。(@MrQianjinsi 投稿)

一個開源的連接器,將各種 AI 編程工具與手機聊天軟件相連。(@chenhg5 投稿)

只要在網頁插入這個 JS 庫,就可以使用自然語言操作頁面,比如"點擊導航欄的文檔鏈接,總結其內容"。
一個 macOS 沙箱工具,用來在沙箱裡運行 AI 編程工具。

一個 GitHub Action,為你的倉庫添加一個圖形標籤(上圖),顯示該倉庫相當於多少 Token,用來大模型的計算量。
資源
1、世界監控(World Monitor)

世界局勢的一個實時看板,把各種消息源都放在一個網頁裡。
2、煉油廠探索

一個動畫互動網站,展示煉油廠怎樣將石油變成汽柴油。

彈簧筆、打火機等生活小物品的機械裝置動畫。
圖片
1、密碼的替代方法
一位程序員發明了一種新的密碼方法,你覺得可行嗎?
系統向用戶展示一副撲克牌,讓其從52張牌中依次挑出5張,作為密碼。

下次登錄時,用戶必須按同樣順序挑出同樣的5張牌。
文摘
1、複雜社會的崩潰
我們都知道,一個軟件的複雜度不斷上升,超過某個極限後,就會難以維護,最後往往被放棄。
美國曆史學家約瑟夫·坦特(Joseph Tainter)認為,人類社會也是如此。如果社會的複雜度超過極限,這個社會最終也會崩潰。

1988年,他出版了一本名為《複雜社會的崩潰》的書,描述了羅馬人、瑪雅人和查科人等偉大文明的興衰,試圖回答幾個世紀以來一直困擾著思想家的一個問題:為什麼強大的社會會崩潰?
他認為,原因是這些社會有一個敵人----複雜性。
隨著文明的發展,社會增加了越來越多的複雜性:更多的等級制度、更多的官僚機構、更深層次的社會結構。
一開始,新的等級、官僚、組織都是有用的,比如可以增加經濟產出、稅收等。但到了某個時刻,收益遞減規律開始出現,每增加一點複雜度帶來的回報越來越少,直至變成零甚至負數。
(1)法律條文和官僚越多,政府開銷也就隨之上升,長期很可能令社會無法負擔。
(2)複雜度變大,會增加社會的不平等,因為能理解所有規則的人就越少,你就越離不開律師。懂規則的人會比其他人佔優勢。
(3)規則越多,維護和執行這些規則的機構也就越多,不利於社會提高效率。
(4)複雜性最終導致社會各階層的差距變大,對立也隨之而來。
以上因素的共同作用,導致歷史上很多強大的社會最終崩潰。
言論
1、
2021年,我感覺做一名優秀的軟件工程師棒極了。軟件行業蓬勃發展,機會很多,我熱愛這份工作,覺得可以永遠做下去。
2026年,我已經不確定軟件行業十年後會怎樣,即使還存在,必定與現在極不相同。我也許能找到出路,也許不得不離開這個行業。無論如何,我熱愛的軟件工作即將消失。
2、
與強大的 AI 對抗會是什麼感覺?
你會感覺自己莫名其妙地弱了不少,AI 做的每件事都超出你的預期。
這就好像你和一位實力強勁的玩家玩一款隨機性很強的遊戲,你會感覺這位高手總是運氣爆棚。
3、
閱讀商戰書籍是浪費時間。它們將簡單的故事變成通用的建議,將偶然的成功轉化為普遍的策略,並用激勵人心的口號取代複雜的市場。
這些書的成功並不是因為內容正確,而是因為易於閱讀並且讓讀者感覺良好。
4、
我想讓 AI 告訴我怎麼使用一種全新的、AI 也不會用的工具,就會提示 AI "執行 xxx-tool --help 來了解該工具"(假定工具名字是 xxx-tool),然後 AI 就學會用了。
-- Simon Willison,著名開發者
5、
時間是唯一不可再生的資源。AI 大模型是目前我所知的最便宜的賺取額外時間的方式。
往年回顧
低代碼編程,恐怕不會成功(#341)
AI 沒有護城河(#291)
中國的增長動力在內陸(#241)
一個程序員的財務獨立之路(#191)
(完)












