開源代碼編輯器 Zed 的開發團隊發佈了一篇引人關注的博文,題爲《爲什麼 LLM 無法真正構建軟件》。這篇文章由 Conrad Irwin 撰寫,迅速引發了技術圈的熱烈討論,尤其是在 Hacker News 上,衆多開發者紛紛發表看法,聚焦於 AI 輔助編程的本質。

Irwin 在文章中指出,優秀的軟件工程師在工作時會經歷一個循環的過程,包括構建需求的心智模型、編寫代碼、理解代碼的實際行爲以及識別差異並進行更新。他強調,能夠維護清晰心智模型的能力是區分優秀工程師的關鍵。然而,當前的 LLM(大語言模型)在這一點上存在致命缺陷。

他認爲,LLM 雖然在編寫和更新代碼時表現尚可,但卻無法維持一個清晰的心智模型。當測試失敗時,LLM 常常陷入混亂,它們會假設自己所寫的代碼是正確的,卻不知道如何修復,最終可能選擇重寫代碼。很多開發者對此深有同感,認爲 LLM 在處理複雜項目時往往會失去對整體架構的把握。

不過,文章也引發了不同的聲音。一些開發者認爲,今天的 LLM 和編碼工具的能力已經相當強大,有時甚至超過初級工程師。也有用戶分享了自己使用 AI 編寫項目的經歷,稱其效果令人驚訝,甚至完全依賴 AI 完成了7000行代碼的項目。

Irwin 進一步分析了 LLM 面臨的三大問題:上下文遺漏、近期偏見和幻覺。這些問題使得 LLM 在維護心智模型的過程中受到制約。相比之下,人類能夠有效地存儲和處理完整的上下文,從而在解決問題時保持更高的靈活性和適應性。

Zed 團隊的最終觀點是,儘管 AI 可以輔助軟件開發,但人類依然是這個過程的主導者。正如團隊所言:“至少現在,你還是駕駛員,LLM 只是一個可以使用的工具。” 許多開發者對此表示認同,認爲 AI 可以承擔一些繁瑣的編碼工作,但設計和規劃仍需依賴人類的智慧。

這場關於 AI 編程的討論不僅揭示了當前技術的侷限性,也促使人們反思:在 AI 輔助編程的時代,軟件工程的本質是什麼?人類開發者的價值又在何處?或許答案在於如何讓人類與 AI 更好地協作,各自發揮所長。