純粹程式設計者:氛圍程式設計究竟有沒有用處?

導讀:曾經,有些程式設計純粹主義者認為 BASIC 語言有害,而現在的人工智慧甚至連 BASIC 都無法做到。
一個前景光明的項目,必然需要一支團隊 —— 這是公認的事實。
這支團隊必須由經驗豐富、判斷力強、具備分析邏輯能力和良好人際溝通技巧的優秀開發者組成。
而AI 編碼在其中的定位仍存在巨大爭議。
但企業 IT 領域對 「氛圍程式設計」(Vibe Coding) 的態度卻十分明確:要嘛是在推銷它,要嘛是對它敬而遠之。
原因很簡單。
程式碼產生工具的賣點是 “透過自然語言指令快速出結果”,無需使用者掌握程式碼工作原理的專業知識。這一點在某種程度上確實成立,精心挑選的兩分鐘演示也確實令人印象深刻。
從這方面來看,氛圍程式設計與已經存在了 30 年的低程式碼 / 無程式碼運動甚為相似。
但氛圍程式隨後便會暴露致命缺陷:它具有不確定性。低程式碼 / 無程式碼平台的介面對使用者輸入的回應是一致的。
無論是調整字體,還是徹底換一個全新思路重新開始,迭代優化都能順利推進。而氛圍程式設計則可能在相同指令下,不同時間給出截然不同的結果。
想要調整結果,很大程度上取決於 AI 如何解讀你的需求,以及它對自己最初想法的執著程度 —— 通常這種執著還相當強烈。更別提當你的工具不斷改變時,如何維護一個沒有人類完全理解的程式碼庫了。
如果 30 年後低程式碼 / 無程式碼領域都沒有出現太多成熟的生產級應用,那麼氛圍程式設計的前景無疑更加黯淡。即便氛圍程式設計實現了其最基本的功能 —— 快速生成原型來探索想法 —— 也會遭遇 「原型無法捨棄」 的問題,最終演變成難以控制的 「怪物」。
一旦某個原型看起來能運行,來自外部的壓力通常會迫使團隊立即在此基礎上進行開發。這種情況在任何環境下都已經夠糟糕了,而 “氛圍” 根本無法應對這種局面。
不過,在某個方面,氛圍程式確實擁有其他工具難以比擬的吸引力。
自從開機就能直接進入 BASIC 解譯器的家用電腦時代以來,新手用戶終於能透過簡單輸入就能實現一些功能了。
林納斯・托瓦茲(Linus Torvalds)上週將它視為一大優勢,認為這與當年從電腦雜誌背面抄錄程序的日子頗為相似。
這話並不是沒有道理 —— 如果你經歷過那個年代,就會記得修正數百行晦澀代碼中的邏輯錯誤或打印錯誤是多麼可怕的經歷 —— 但這幾乎完全偏離了核心問題。
當年的 BASIC 語言也遭遇了與如今氛圍程式設計類似的批評,被認為會助長糟糕的程式設計習慣,催生結構混亂、難以理解、無法維護的程式碼。
程式界泰斗埃德加・迪傑斯特拉(Edsger Dijkstra)在《GOTO 語句有害論》中就提出了這一觀點,而這句話在數十年間一直被廣泛引用。
這就好比說,那些拿起樂器只是想試試身手的孩子,或是被沒有正規訓練背景的老師教導的孩子,永遠只能做出糟糕的音樂。
通常情況下確實如此,但大多數優秀的音樂家都是這樣起步的。音樂的起源就如此。如果你發現自己熱愛它,就會不斷進步。
而BASIC 語言的情況也是如此。但氛圍程式設計卻沒有這樣的成長路徑。這並非完全是它的錯。在現代運算環境中,要實現 “有用的功能”,就需要編寫包含 API、複雜結構的程式碼,核心邏輯之外還充斥著無數繁瑣的附加部分。
透過反覆調整指令來 “瞎折騰”,無法建立起編寫程式碼所必需的內在理解框架;而沒有了那種突然頓悟帶來的多巴胺獎勵 —— 這種獎勵正是許多人早期程式設計經歷的動力源泉 —— 這個過程也無法激勵自學成才者繼續堅持下去。
如果 「氛圍程式設計」 不涉及實際編碼,或許會是個好主意。例如提供入門方向、學習建議,幫助建立一個能快速看到結果的環境,而這些結果明確依賴探索和嘗試新想法。
這類工具其實已經存在了 —— 它們叫做書籍,叫做教程。能在學習過程中立即產生生產力當然是件好事,而且沒有任何教學課程或書籍能提供獨特、創新的專屬結果。
目前尚不清楚大語言模型(LLM)是否能可靠地實現這一點,但這會是一個有趣的實驗。幸運的是,確實有一種可行的方法:加入一支願意提供指導、並能為你分配合適任務來培養技能的支援型團隊,團隊成員需具備豐富經驗。
如果你對編碼的實際情況知之甚少,氛圍程式聽起來確實很棒。
這正是生成式 AI 最大的風險之一 —— 它能激發與現實脫節的自信心。
同樣,如果你還記得自己當初對程式設計一無所知的日子,可能會覺得氣氛程式設計是幫助他人踏上程式設計之路的好方法。
但這兩種想法都忽略了,學習和編碼在很大程度上與動力、回報、理解能力、對未來的認知有關,而最重要的是,這一切都需要在與人協作的環境中完成。這才是真正的 “氛圍”,夥伴們。
編譯:洛逸
作者:魯伯特古德溫斯
原文:https://www.theregister.com/2025/11/24/opinion_column_vibe_coding


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *