來源:市場資訊
(來源:圖靈人工智能)
您想知道的人工智能干貨,第一時間送達
![]()
作者:王勃,清華大學碩士,獨到科技CTO
原文:
https://zhuanlan.zhihu.com/p/2019985504695768622,已獲轉載授權
一個 48 年前的「預言」
1978 年,計算機科學的祖師爺之一 Edsger Dijkstra 寫了一篇短文,編號 EWD667,標題直白到近乎挑釁:
![]()
《論「自然語言編程」的愚蠢》(On the foolishness of "natural language programming")
他的論點很簡單:有人覺得編程太嚴格了,希望有一天能用自然語言跟計算機說話。
Dijkstra 認為這個愿望不僅不切實際,而且方向就是錯的。形式化符號不是程序員的負擔,而是特權。
48 年后的 2026 年,大語言模型讓自然語言編程真的成了現實。
Karpathy 說自己從去年 12 月起幾乎沒再親手敲過代碼,Anthropic Claude Code 產品負責人 Cat Wu 撰文指出 PM 的核心產出正在從文檔變成可運行的原型,Stripe 每周有 1300 個無人值守的 Agent PR 被合并。
Dijkstra 錯了嗎?
我帶團隊用了一年多 AI 編程工具,從最初的阻力到現在全員 Cursor,從 Vibe Coding 的興奮到 Planned 模式的回歸。回頭看,我覺得 Dijkstra 對了一半——而且是更重要的那一半。
Dijkstra 到底說了什么
EWD667 全文不長,但論證鏈條極其鋒利。核心是三個觀點:
第一,形式化符號是文明進步的引擎,不是累贅。
他用數學史來論證:希臘數學因為停留在口頭和圖形描述而停滯不前;穆斯林代數短暫嘗試符號化后退回修辭風格而消亡;現代科學的崛起,恰恰是因為 Vieta、Descartes、Leibniz、Boole 這些人精心設計了形式化符號系統。
他寫道:
形式化文本的美德在于,其操作只需滿足少數簡單規則;它們是排除各種胡說八道的極其有效的工具——而當我們使用自然語言時,胡說八道幾乎不可避免。
第二,自然語言的「自然」本質上是一種危險的舒適。
這是全文最犀利的一句:
所謂自然語言的「自然性」,歸根結底,不過是我們能輕松地用它說出那些荒謬性并不顯而易見的話。
翻譯成大白話:自然語言讓你很容易說出自己都沒意識到的模糊和矛盾,而且還覺得自己說清楚了。
第三,讓接口變寬,不一定減輕負擔,可能兩邊都更累。
他指出,接口設計不是簡單的勞動分配。讓機器理解自然語言,不只是給機器加活——跨接口的溝通成本也會增加,最終可能雙方都更累。他因此主張「窄接口」(narrow interface):約束越明確,合作越高效。
一年 AI 編程實踐的印證
去年我要求團隊全面使用 Cursor,原則是不限量、用好模型。
初期有阻力,但很快大家就感受到了效率的飛躍。前端崗位開始大量減少,我們要求前端轉全棧。產品經理也開始用 Cursor 寫文檔、出交互式原型。很多項目一個人就能搞定需求分析加開發。
Vibe Coding 的甜蜜期是真實的:用自然語言描述需求,AI 幾分鐘就能生成一個能跑的 demo。Demo 效率大增,我們開始接受「不用想很清楚就可以開始」的工作方式,產品和研發一起摸石頭過河。
但甜蜜期過后,問題開始浮現——而這些問題,恰恰是 Dijkstra 48 年前預言的。
AI 總是漏需求。 你以為自己說清楚了,AI 也表現得好像理解了,但交付的東西總是差那么幾個關鍵點。本質上就是 Dijkstra 說的:自然語言讓你輕松說出荒謬性并不顯而易見的話。你的需求描述有模糊地帶,你自己都沒意識到,AI 就按它的理解填補了空白。
代碼沒有架構感。 AI 生成的代碼能跑,但結構松散,容易被現有代碼的風格帶偏。因為自然語言描述天然缺乏架構約束——你說「幫我寫一個用戶管理模塊」,這句話里沒有任何關于分層、依賴關系、接口設計的形式化信息。
上下文越長越降智。 對話一長,AI 的服從性反而變成問題——它會被之前對話中的錯誤信息污染,然后在錯誤的方向上越走越遠,最終放棄或者亂試。這就是 Dijkstra 說的「接口變寬,兩邊都更累」的現代版本。
寫碼快不代表深思熟慮。 這一點我們團隊反復體會到。AI 可以很快寫出代碼,但速度掩蓋了思考的缺失。不推薦所有標榜對編碼特化的模型,除非代碼用一次就扔。
形式化沒有消失,只是換了形態
踩完坑之后,我們的工作流逐漸從 Vibe Coding 回歸到了 Planned 模式。一個典型的開發過程變成了:
描述需求
和模型對齊,確認它的理解是正確的
讓模型分析細化,排除矛盾
可行性預研,給出備選方案,人來選擇
提出測試需求
系統設計和關鍵算法設計,人來審查
設計測試方案(自動化 + 端到端)
分拆任務,確定驗收標準
執行并驗收
看到了嗎?這個流程的每一步,都是在把自然語言的模糊描述逐步轉化為更形式化的約束——spec、測試用例、驗收標準、任務分拆。
這不是倒退,這是 Dijkstra 說的「窄接口」思想的現代實踐。
今年行業里出現了一個概念叫 Harness Engineering(馬具工程/駕馭工程),由 Terraform 的作者 Mitchell Hashimoto 提出。他的核心原則是:每次發現 AI 犯錯,就花時間工程化一個機制,讓它以后再也不犯這個錯。
這個概念的演進路線很清晰:
- 2023-2024:Prompt Engineering
— 怎么跟 AI 說話。本質是優化一次性的自然語言輸入。
- 2025:Context Engineering
— 給 AI 看什么信息。不再只盯措辭,而是設計整個信息環境。
- 2026:Harness Engineering
— 構建什么環境讓 AI 可靠地工作。驗證閉環、架構約束、測試護欄、熵清理。
從 Prompt 到 Context 到 Harness,這條路線的方向是什么?是從自然語言走向形式化約束。
CLAUDE.md、AGENTS.md 這些配置文件,本質上就是寫給 AI 的形式化規范。TDD 測試套件就是用代碼表達的驗收標準。CI/CD 管道就是自動化的質量閘門。
Dijkstra 說「形式化符號是排除胡說八道的工具」。在 AI 時代,這句話變成了:測試和約束是排除 AI 胡說八道的工具。
過去 CI/CD 集成、TDD 這些被認為是昂貴的工程實踐,很多團隊嫌麻煩不做。但在 AI 編程時代,它們已經從奢侈品變成了必需品。AI 由于實現機制的原因,沒有辦法保證 100% 穩定不出錯,在兜底防御方面投入多少力氣都不為過。
AI 真正改變的是什么
說到這里,可能有人覺得我在唱衰 AI 編程。恰恰相反。
Dijkstra 的洞察在 LLM 時代依然成立,但他有一件事沒預見到:形式化的生產成本可以被 AI 大幅降低。
以前,寫一套完整的測試用例、設計一份嚴謹的接口規范、維護一份結構化的需求文檔——這些形式化工作本身就需要大量人力,所以很多團隊干脆不做。代碼裸奔、需求口頭傳遞、測試靠手點,這是大多數團隊的現實。
現在不一樣了。你可以用自然語言描述你想要什么,讓 AI 幫你生成測試用例、類型定義、接口文檔、驗收標準。然后你審核和修正這些形式化產物。
這個變化的意義在于:不是用自然語言替代了形式化,而是用 AI 作為自然語言到形式化的橋梁。
自然語言是好的輸入層——它降低了表達意圖的門檻。 形式化是必要的驗證層——它保證意圖被正確執行。 AI 是兩者之間的翻譯器——它讓形式化變得便宜了。
這三層結構,才是 AI 編程真正可持續的工作模式。
我們團隊現在的做法是:產品用自然語言寫 spec,AI 幫忙轉化成結構化需求;開發用自然語言描述功能,AI 生成代碼同時生成測試;測試人員用 AI 增強能力,從手工點點點轉向編寫自動化測試。每個環節,自然語言是入口,形式化是出口,AI 在中間做翻譯。
燒 token 的速度直接代表了你的 AI 編程能力——這句話聽起來有點夸張,但實際確實如此。對編程工具的駕馭能力和并行工作的能力,直接決定了你燒 token 的速度。別摳省 token,浪費的是你的時間和成長速度。
Dijkstra 如果活在今天
Dijkstra 在 EWD667 的最后寫了一句很有意思的話:
我有一種直覺可以讓我感到安慰:能用我們的母語編程的機器,無論是荷蘭語、英語、美語、法語、德語還是斯瓦希里語——它們既該死地難以制造,也該死地難以使用。
制造這件事,LLM 做到了。但「該死地難以使用」這個預言,某種意義上也成真了——不是難在操作界面上,而是難在如何讓自然語言的模糊性不變成系統性的質量問題。
如果 Dijkstra 活在今天,看到我們先用自然語言讓 AI 寫代碼,然后又花大量精力構建測試、約束、驗證閉環來確保 AI 不犯錯,他大概會說:
「你們終于造出了能聽懂自然語言的機器,然后發現還是得用形式化來約束它——這不正是我說的嗎?」
寫代碼變便宜了,但思考沒有變便宜。
駕馭 AI 的能力,本質上是構建形式化約束的能力——把模糊的意圖變成精確的規則,把不可驗證的期望變成可執行的測試,把「我覺得差不多了」變成「測試全部通過」。
這件事,48 年前 Dijkstra 就想明白了。只不過他當年是對著編譯器說的,我們今天是對著大語言模型說的。
工具變了,思想沒變。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.