![]()
整理 | 屠敏
出品 | CSDN(ID:CSDNnews)
在 AI 寫代碼這件事上,爭議從來沒有真正停過。但這一次,戰(zhàn)火燒到了最核心的基礎(chǔ)設(shè)施之一——Node.js。
近日,一份致 Node.js 技術(shù)委員會(TSC)的請?jiān)笗鹆藦V泛關(guān)注。短短幾天,已有超過百名開源開發(fā)者、前端工程師和程序員簽署,他們呼吁“Node.js 社區(qū)應(yīng)禁止 AI 生成的代碼進(jìn)入核心倉庫”,將社區(qū)內(nèi)部的分歧徹底擺上臺面。
對于這場爭議,有人認(rèn)為這是對代碼質(zhì)量的堅(jiān)守,也有人認(rèn)為這是對技術(shù)進(jìn)步的恐慌式反應(yīng)。
![]()
一份由 Claude Code 生成的 1.9 萬行代碼 PR
回看事件始末,一切要從 2026 年 1 月的一次代碼提交說起。
Node.js 技術(shù)指導(dǎo)委員會(TSC)成員、Fastify 框架維護(hù)者 Matteo Collina,彼時(shí) Node.js 技術(shù)指導(dǎo)委員會(TSC)成員、Fastify 框架維護(hù)者 Matteo Collina,為了給 Node.js 添加社區(qū)期待已久的虛擬文件系統(tǒng)(VFS)功能,提交了一份包含約 19,000 行代碼的 PR,覆蓋約 80 個(gè)文件。
為此,他還專門發(fā)布了一篇長文《為什么 Node.js 需要 VFS》,詳細(xì)說明了 Node.js 在缺乏虛擬文件系統(tǒng)時(shí)的痛點(diǎn)問題,如應(yīng)用打包為單一可執(zhí)行文件時(shí)需附帶大量額外資源、測試中無法獲得與模塊系統(tǒng)一致的內(nèi)存文件系統(tǒng)、多租戶環(huán)境中依賴易錯路徑校驗(yàn)實(shí)現(xiàn)隔離,以及運(yùn)行時(shí)動態(tài)加載生成代碼只能依賴臨時(shí)文件等問題。
當(dāng)前,現(xiàn)有方案如 memfs、unionfs 只能“打補(bǔ)丁”式模擬 fs,無法真正接入模塊解析流程,導(dǎo)致 import() 等調(diào)用繞過 VFS。
![]()
在 Matteo Collina 看來,社區(qū)早已明確提出這一需求,但始終缺乏一個(gè)真正落地的實(shí)現(xiàn)。
在這樣的背景下,他從去年圣誕節(jié)期間開始著手開發(fā) VFS 實(shí)現(xiàn),并在今年 1 月提交了這份包含 1.9 萬行代碼的 PR。
按理來說,這本該是件皆大歡喜的事,可他在 PR 描述里添加了一句免責(zé)聲明,點(diǎn)燃了爭議的導(dǎo)火索:
我使用了大量 Claude Code token 來創(chuàng)建此 PR。所有更改均由我本人審核。
![]()
另外,Matteo Collina 也在博客中寫道:
原本只是一次假期實(shí)驗(yàn),卻最終變成了 PR :一個(gè)面向 Node.js 的 node:vfs 模塊,涵蓋 66 個(gè)文件,代碼量接近 14,000 行。
說實(shí)話,這么大的 PR 通常需要幾個(gè)月的全職工作才能完成。而這次之所以能在假期完成,是因?yàn)槲沂褂昧?Claude Code。我讓 AI 處理那些枯燥重復(fù)的部分——正是這些工作讓 14,000 行的 PR 成為可能,但沒人愿意手動寫:實(shí)現(xiàn)每一個(gè) fs 方法的不同變體(同步、回調(diào)、Promise)、接入測試覆蓋、生成文檔。而我專注于架構(gòu)設(shè)計(jì)、API 設(shè)計(jì),并審查每一行代碼。
沒有 AI,這個(gè)假期側(cè)項(xiàng)目根本不可能完成——簡直不會發(fā)生。
眾所周知,Claude Code 是 Anthropic 推出的 AI 編程工具,擁有 200K token 的超大上下文窗口,能生成跨文件復(fù)雜邏輯甚至完成代碼重構(gòu)。但在 Node.js 這個(gè)運(yùn)行在全球數(shù)百萬服務(wù)器上的核心項(xiàng)目中,AI 生成代碼顯然觸碰了許多老開發(fā)者的底線。
在很多開發(fā)者看來,問題不只是 Matteo Collina“用了 AI”,而是這份 PR 體量巨大、修改核心模塊、生成方式不透明,還有代碼版權(quán)歸屬問題。
所以在接下來的短短兩個(gè)月里,這份 PR 就經(jīng)歷了 128 次審查嘗試和 108 條評論,其龐大的體量幾乎讓常規(guī)的同行評審流程陷入停滯。
截至 2026 年 3 月 26 日,該 PR 仍未被合并進(jìn)主分支。
![]()
從一個(gè) PR,演變?yōu)橐粓觥笆欠窠?AI”的討論
這場爭議的升級源于 Node.js TLS 模塊主要作者、前 TSC 成員 Fedor Indutny 在 GitHub 上發(fā)起的公開請?jiān)福骸吨?Node.js TSC 的請?jiān)福航乖诤诵拇a中使用 AI》。
![]()
短時(shí)間內(nèi),包括 YDKJS 作者 Kyle Simpson、Zig 軟件基金會主席 Andrew Kelley 在內(nèi)的 100 多位核心開發(fā)者紛紛簽署支持。
這份請?jiān)笗赋觯?/p>
Node.js 是全球數(shù)百萬服務(wù)器上關(guān)鍵基礎(chǔ)設(shè)施,同時(shí)支撐著開發(fā)者日常使用的命令行工具。用 AI 生成的代碼稀釋多年精心打磨的核心代碼,違背項(xiàng)目使命與價(jià)值觀,可能破壞公共貢獻(xiàn)建立的聲譽(yù)基石,而正是這一基石讓 Node.js 擁有今天的地位和社會價(jià)值。
與此同時(shí),此請?jiān)笗€列出了反對 AI 生成代碼的三大核心理由:
倫理:主流大語言模型公司在訓(xùn)練過程中使用了來源不合倫理的數(shù)據(jù),其中包括受版權(quán)保護(hù)的作品,以及不同許可證下、未注明來源的開源代碼。
教育:有證據(jù)表明,大語言模型的使用會阻礙學(xué)習(xí)過程。由于開源項(xiàng)目經(jīng)常吸納新貢獻(xiàn)者,如果降低代碼質(zhì)量門檻,可能會削弱人們對 Node.js 核心的理解,進(jìn)而影響項(xiàng)目的長期可持續(xù)性。
此外,代碼評審不僅是為了發(fā)現(xiàn) bug、修復(fù)安全問題、確保代碼符合項(xiàng)目風(fēng)格和架構(gòu)規(guī)范,也是幫助提交者學(xué)習(xí)成長的重要環(huán)節(jié)。然而,大語言模型本身并不會學(xué)習(xí),這意味著評審所投入的時(shí)間無法轉(zhuǎn)化為貢獻(xiàn)者能力的提升,從而被反復(fù)“浪費(fèi)”。
特權(quán):使用大語言模型通常需要付費(fèi)訂閱,或投入大量硬件資源在本地運(yùn)行(且輸出質(zhì)量往往更低)。因此,提交的生成代碼應(yīng)當(dāng)能夠被評審者復(fù)現(xiàn),而不應(yīng)要求他們跨越付費(fèi)訂閱等門檻才能驗(yàn)證相關(guān)結(jié)果。
![]()
觀點(diǎn)對立,各執(zhí)一詞
這份請?jiān)笗唤?jīng)發(fā)布,許多網(wǎng)友表示支持:“1.9 萬行代碼的人工評審壓力巨大,AI 輔助可能導(dǎo)致 PR 數(shù)量和規(guī)模膨脹,最終壓垮依賴志愿者的評審體系。”
![]()
同樣持反對意見的開發(fā)者也不在少數(shù)。其中,TSC 成員 James Snell 表示:評判代碼的唯一標(biāo)準(zhǔn)應(yīng)該是質(zhì)量,而不是開發(fā)工具。
作為當(dāng)事人的 Matteo Collina,更是在博客里寫了一篇長文硬核回應(yīng),其用了“壓面機(jī)”理論反駁道:我祖母曾用一臺叫“Nonna Papera”的壓面機(jī)做意大利面——幾乎每個(gè)意大利家庭都有一臺。但沒有人會因此說,那不是她做的面。她選擇面粉、雞蛋,決定厚度和形狀,工具只是幫助她完成制作。同樣,我決定架構(gòu)、設(shè)計(jì) API,并審查每一行代碼,這些代碼屬于我。
他進(jìn)一步強(qiáng)調(diào):DCO(開發(fā)者原產(chǎn)地證明)從未關(guān)心代碼如何寫,只關(guān)心貢獻(xiàn)者是否有權(quán)提交并承擔(dān)責(zé)任。這一點(diǎn),與接受任何開源貢獻(xiàn)并無不同。
對于下一步,Matteo Collina 稱,「Node.js TSC 即將就 AI 輔助貢獻(xiàn)的披露與署名規(guī)范進(jìn)行投票。社區(qū)共識是:負(fù)責(zé)任地接納 AI 輔助貢獻(xiàn),可以加速開源項(xiàng)目發(fā)展;一味禁止 AI 工具,只會限制貢獻(xiàn)者來源。軟件開發(fā)最重要的角色,從未改變——不是寫代碼的人或工具,而是理解、審查并為代碼負(fù)責(zé)的人。」
![]()
鮮明對比:Linux 內(nèi)核的 AI 逆襲,“垃圾”報(bào)告一夜變“黃金”
值得一提的是,就在 Node.js 為 AI 代碼吵翻的同時(shí),Linux 內(nèi)核社區(qū)正經(jīng)歷著 AI 的“真香時(shí)刻”。
據(jù)外媒 The Register 報(bào)道,Linux 內(nèi)核核心維護(hù)者 Greg Kroah-Hartman 在 KubeCon Europe 上透露,AI 在 Linux 內(nèi)核的應(yīng)用,完成了從“垃圾”到“黃金”的一夜逆襲。
時(shí)間拉回 2026 年 2 月前,Linux 內(nèi)核社區(qū)還在為“AI Slop”(AI 垃圾)頭疼 ——AI 生成的安全報(bào)告全是明顯的錯誤,毫無參考價(jià)值,用 Greg 的話說,“有點(diǎn)搞笑,根本不用擔(dān)心”。
這也是彼時(shí)整個(gè)開源圈的常態(tài):cURL 創(chuàng)始人 Daniel Stenberg 曾吐槽,AI Slop 讓漏洞賞金計(jì)劃的有效率暴跌,最終在 2026 年 1 月直接喊停了這項(xiàng)運(yùn)行 6 年的計(jì)劃;Ghostty 項(xiàng)目更是在同月推出零容忍政策,提交 AI 垃圾代碼將被永久封禁。
但2026 年 2 月成為了 AI 的關(guān)鍵拐點(diǎn),Greg 坦言自己并“不知道發(fā)生了什么,世界突然變了”:曾經(jīng)的 AI 垃圾報(bào)告一夜之間變成了高質(zhì)量有效報(bào)告,不僅 Linux 內(nèi)核,所有開源項(xiàng)目都在收獲 AI 生成的“真 bug、真建議”。
更驚人的是,這一變化并非個(gè)例,各大開源項(xiàng)目的安全團(tuán)隊(duì)私下溝通后發(fā)現(xiàn),所有人都在經(jīng)歷同樣的 AI 升級,只是沒人能說清原因——是 AI 工具突然進(jìn)化,還是開發(fā)者掌握了更高效的使用方法?
Greg 自己的實(shí)驗(yàn)更是印證了 AI 的實(shí)力:他用一個(gè)簡單的提示詞讓 AI 分析內(nèi)核代碼,AI 瞬間輸出 60 個(gè)問題及修復(fù)方案,三分之二的補(bǔ)丁直接可用,剩下三分之一雖有錯誤,卻也指出了真實(shí)問題。這些補(bǔ)丁只需簡單的人工優(yōu)化,就能融入內(nèi)核開發(fā)流程,效率提升肉眼可見。
如今,AI 在 Linux 內(nèi)核社區(qū)早已不是“要不要用”的問題,而是“怎么用得更好”。目前 AI 主要承擔(dān)代碼審查助手的角色,還未成為核心代碼的主要作者,但二者的界限正在模糊:社區(qū)已經(jīng)推出了“co-develop”標(biāo)簽,用于標(biāo)注 AI 輔助生成的補(bǔ)丁;簡單的錯誤檢測、條件判斷等場景,AI 已經(jīng)能生成數(shù)十個(gè)可用補(bǔ)丁,完全勝任基礎(chǔ)開發(fā)工作。
![]()
Node.js 的核心開發(fā)者是否有一天會像 Greg Kroah-Hartman 那樣,對 AI 的產(chǎn)出感到驚訝,目前尚難預(yù)測。
可以肯定的是,幾乎所有成熟開源項(xiàng)目遲早都會面臨同樣的挑戰(zhàn):AI 不會停下,代碼產(chǎn)出只會越來越快。當(dāng)前,單純禁止 AI 并不可行,關(guān)鍵在于把控代碼質(zhì)量,確保每一行代碼都有可靠的人工審核。
最后,你現(xiàn)在寫的代碼,又有多少真正是“你自己寫的”?歡迎在評論區(qū)分享你對 AI 生成代碼的看法。
參考:
https://www.theregister.com/2026/03/26/greg_kroahhartman_ai_kernel/?td=rt-4a
https://www.reddit.com/r/javascript/comments/1rz2pc6/petition_no_ai_code_in_nodejs_core/
https://github.com/indutny/no-ai-in-nodejs-core
https://github.com/nodejs/node/pull/61478
https://adventures.nodeland.dev/archive/who-is-responsible-for-ai-generated-code/
110 萬美金懸賞!
AMD 2026 線上黑客松大賽來襲
從 MXFP4 MoE 算子爆改,到真實(shí)千倍并發(fā)下的吞吐量極限拉扯
不看資歷,只看絕對速度
挑戰(zhàn)DeepSeek?R1/KimiK2.5極致并發(fā)
入圍即能拿 1 萬美金
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.