形式符號的必要性與錯誤防護機制
Dijkstra 在文中回顧計算機發展史,指出早期人們抱怨機器嚴格執行指令而缺乏常識判斷,期望機器能拒絕荒謬的指令。然而,他強調程式設計本質上是使用正式符號系統,這需要高度的謹慎與準確性。
高級語言的發展確實提高了對愚蠢錯誤的防護,使許多錯誤會產生錯誤訊息而非錯誤結果。但 Dijkstra 批評部分人將「編程的容易程度」等同於「犯下未被發現錯誤的容易程度」,認為這是對程式語言優劣的誤判。
他主張形式文本的美德在於其操作只需滿足少數簡單規則即可合法進行,這是一種排除無意義陳述的有效工具。相比之下,使用母語時幾乎無法避免產生看似合理但實則荒謬的陳述。
介面選擇與工作量的非線性關係
針對設計能用母語溝通的機器以減輕人類負擔的提議,Dijkstra 提出質疑。他指出介面選擇並非固定工作量的簡單分配,跨介面協作與溝通本身就需要額外的工作量。
根據經驗,改變介面往往會導致雙方工作量顯著增加,這解釋了為何業界傾向於使用「窄介面」。即使讓機器承擔更多負擔,也不能假設這會簡化人類的生活。
Dijkstra 引用數學史作為論據:希臘數學因停留在口語與圖像活動而停滯;伊斯蘭代數在嘗試符號化後又回歸修辭風格便走向衰亡;現代文明則得益於摆脱中世紀經院哲學的語言精確性迷思,轉而採用 Vieta、Descartes、Leibniz 和 Boole 等人設計的正式符號系統。
對「新文盲現象」與技術預期的批判
Dijkstra 批評當時的教育趨勢導致西方世界人們對自身語言的掌握能力急劇下降,他稱之為「新文盲現象」。他舉例指出科學文章、技術報告和政府出版物中存在大量經細讀後發現無意義的冗詞濫調。
他認為這種現象應讓那些缺乏技術洞察力的自然語言程式設計支持者感到沮喪。Dijkstra 推測,如果人類從一開始就僅以母語作為資訊處理設備的輸入輸出媒介,計算機科學將主要成為如何從中自舉到足夠明確的形式系統的「黑魔法」。
他總結道,要讓介面窄到可用需要全世界的智慧,考慮人類歷史,這可能需要數千年才能做好。最後他給出一個直覺結論:以母語編程的機器,其製造難度與使用難度同樣令人絕望。
現代社群對 AI 時代下該論點的反思
在 Hacker News 等技術社群中,用戶 benrutter 認為這篇文章經得起時間考驗。他反駁了將 AI 代理開發視為自然語言程式設計的觀點,指出實際編程仍發生在 Rust、Python 或 TypeScript 等確定性語言中,AI 僅是執行者而非真正的程式設計師。
用戶 zackmorris 提出相反觀點,認為沒有術語、摩擦和門檻的形式主義就是自然語言。他描述自己的職業生涯實質上是將客戶規格轉換為機器碼,並感嘆現在能透過 AI 以思維速度進行工作。
用戶 nickm12 指出,許多人誤以為英語是比高級語言更高層次的抽象,但 Dijkstra 的論點並未改變這些人的想法。用戶 peterbell_nyc 則從實用角度支持 Dijkstra,認為雖然可以用自然語言單次或少樣本提示生成應用,但隨著需求複雜度增加,結構鬆散的自然語言規格難以解析且缺乏足夠的嚴謹性。




