電腦科學泰斗艾茲赫爾·戴克斯特拉早在1978年就強烈批判自然語言程式設計,認為其會瓦解精確的邏輯體系,並導致智力怠惰。
想像一下。你對 AI 說:「幫我整理一下這些資料。」過去可能需要一行一行編寫複雜的程式碼,現在卻變成了像與人對話一樣,下達指令就結束的世界。我們認為這就像魔法般的技術進步。然而,四十多年前,該領域的一位傳奇電腦科學家早已預見並發出了警告。他將此稱為「新文盲(The New Illiteracy)」。
為什麼這很重要?
如今我們生活在一個「AI 代勞所有程式設計」的時代。僅用「自然語言 (Natural Language,人類日常使用的語言)」下達指令就能產出結果,確實非常方便。然而,當我們越習慣 AI 的便利,就越逐漸遺忘電腦為什麼會這樣運作,以及什麼是邏輯上的精確性。1978 年艾茲赫爾·W·戴克斯特拉 (Edsger W. Dijkstra) 所寫的論文 On the foolishness of “natural language programming” 在今日依然發出擲地有聲的警示。 [參考資料 5, 參考資料 6, 參考資料 11, 參考資料 14]
淺顯易懂:為什麼自然語言不適合用於程式設計?
戴克斯特拉認為自然語言不是精確思考的「盟友」,反而是「敵人」。 [參考資料 6]
打個比方,日常對話就像「套了滿滿濾鏡的照片」。我們對朋友說「把那個拿來」,透過上下文就能心領神會是什麼東西。但電腦就像「沒有任何濾鏡、超高解析度的鏡頭」。只要指令輸入稍微模糊一點,就很容易抓到錯誤的資料。
戴克斯特拉以「是 (to be)」這個動詞作為代表性的例子。 [參考資料 14] 韓文的「~이다」或英文的「is」有兩種含義。既有「哲秀是學生(……的一部分)」的意思,也有「哲秀是兇手(等於……)」的意思。我們人類可以透過上下文區分,但電腦在邏輯上可能會混淆這兩個截然不同的命令。因此,他核心的主張是:電腦程式設計絕對需要一種排除這種歧義,像 0 與 1 一樣明確的「形式符號 (Formal Symbolism)」。 [參考資料 1, 參考資料 2, 參考資料 14]
現狀:在便利與精確之間走鋼索
當然,當今的人工智慧模型與過去的自然語言程式設計相比,在規模與精確度上早已不可同日而語。 [參考資料 9] 然而,戴克斯特拉的擔憂在今天看來依然一針見血。他批判自然語言程式設計的趨勢,終究是在助長使用者的「智力懶惰」,並將程式設計所要求的必要訓練與精確性腐蝕殆盡,這是一種「愚蠢的行為 (foolishness)」。 [參考資料 12]
我們現在生活在「感覺程式設計 (Vibe Coding,憑感覺寫程式)」的時代,但如果失去了自行判斷 AI 生成的程式碼為何會出錯的能力,這或許真的會變成一個「新文盲」的時代。 [參考資料 6, 參考資料 7]
未來會如何發展?
技術會持續進步,但我們必須銘記一點:AI 能理解自然語言,並不代表程式設計變成了「可以不用那麼精確」的工作。就算未來有一天 AI 能完美理解我們的所有指令,電腦依然只在人類輸入的邏輯體系內運作。無論是使用自然語言還是使用符號,程式設計的本質是「準確且精確的邏輯實作」,戴克斯特拉的教誨在未來也絕不會改變。
MindTickleBytes 的 AI 記者觀點
戴克斯特拉的尖銳批判就像是來自 1978 年的警告信。在我們享受將程式設計委託給 AI 的便利同時,或許該回頭檢視:我們是否正在喪失邏輯嚴謹性這一基礎體力。我們絕不能忘記工具越先進,使用者的基本功就必須越紮實的真理。
參考資料
- On the foolishness of “natural language programming”
- On the foolishness of “natural language programming”
- On the foolishness of “natural language programming”
- Dijkstra Called It in 1978: Natural Language Programming Is Still …
- PDF On the foolishness of “natural language programming”
- On Natural Language Programming – @dsyme on software
- On the foolishness of “natural language programming”
- Of course. EWD 1008, titled “On the foolishness of ‘natural language…..
- Dijkstra on foolishness of Natural Language Programming
- Ten months ago, I published an article by Edsger W. Dijkstra from 1978…
- 自然語言的歧義性
- 電腦效能不足
- 使用者教育困難
- 和
- 是 (to be)
- 如果
- 新文盲
- 智力懶惰
- 邏輯跳躍