AI News HubLIVE
站內改寫2 分鐘閱讀

AI是一個糟糕的工具

本文認為AI在軟體工程中是一個糟糕的工具,除了作為資料蒸餾器外,用於程式碼生成只會浪費時間。AI的不透明性導致難以驗證其輸出,並且揭示了軟體行業中缺乏適當抽象的問題。作者指出,許多軟體工作本身早已無用,AI只是撕下了這層遮羞布。

來源Hacker News AI作者: shtgnwrng

AI是一個糟糕的工具——至少在軟體領域是如此。這是本文的核心論點。我們不妨先看看積極的一面:如果你將AI視為資料蒸餾器,它確實有用。過去,你需要將問題輸入搜尋引擎,點選最相關的連結,然後掃描頁面尋找所需資訊並自己處理理解。而AI若能可靠且真實地執行,就為你壓縮了這些步驟。搜尋引擎如今也在結果頂部插入AI摘要,但真正的價值在於你能進一步追問和細化資訊。這原本需要手動耗費大量時間,現在讓機器代勞確實更輕鬆。然而,好處也僅限於此。如果你用AI做其他事,特別是生成程式碼,那就是在浪費時間。

在深入探討之前,有必要退一步看看圍繞AI本身的爭論。反對者往往情緒過激,多出於對失去生計、變得無關緊要的恐懼。我認為這些情緒無濟於事,但確實揭示了人性——因為恐懼是真實的,但原因不同。換句話說:是的,你會變得無關緊要,但不是因為機器比你更聰明,而是因為你寫的程式碼本身就是垃圾,而AI的垃圾程式碼只是略好一點。

AI之所以糟糕,在於它完全像一個黑箱。常有人問:“誰去維護AI幫你構建的應用?”如果你完全信奉AI,你會說:機器。既然是它構建的,當然也能維護。這說法並非錯誤。真正的難題是:誰能驗證AI構建的東西是否良好且真實?最近熱議AI能發現軟體安全漏洞,但這是未經證實的說法。驗證過程需要的人力和時間,可能比直接查詢問題還要多。同樣的邏輯適用於AI構建的應用:誰去驗證它是否按預期工作?它看起來可能在工作,但表象與實相遠非一回事。更糟的是,在測試現有實現時,AI會傾向於讓測試去適應實現,而非根據規格獨立編寫。它並沒有真正解決問題,只是讓它看起來解決了。

AI的模糊性也意味著“AI工程”或“提示工程”完全是騙局,就像當年的SEO一樣。任何自稱能巧妙操控黑箱的說法都是虛假的。你無法建立相關性,你臆想出的任何機器工作模式都不穩定。簡言之:你無法訪問原始碼,即使能,你也可能沒有心智慧力去理解它,即使能,AI更新太快,你推匯出的任何模式都難以持續有效。你並不笨,只是機器由極其聰明的人構建,他們自己可能也不完全理解它。

那麼,為什麼當AI暴露了人類對自身無關緊要的恐懼時,人們會強烈反抗?因為今天你讓AI做的任何程式設計任務,都源於你沒有恰當地抽象你的工作。如果AI重新命名一個符號,這本該是你的LSP處理的事;如果AI搭建專案骨架,這本該是你的框架的事。你讓AI產生的每一行程式碼,都在降低抽象層次、增加重複。AI只不過揭示了你的棧中缺少適當的抽象。而這對你的威脅在於:如果程式碼被恰當地抽象了,你可能就沒有工作了;但目前AI比你能更好地生產非抽象程式碼。

換句話說,如果AI只生產平庸的程式碼,那麼這些程式碼應該能被輕易抽象化。如果它生產了非平庸的程式碼(實際並未),那會引發它如何從輸入中做到的疑問,但因為它的模糊性以及你需要親自審查自己可能不理解的非平庸內容,你也一無所獲。AI要麼解決非問題,要麼製造非問題。

核心在於:在AI出現之前,大多數軟體工作早已無用。AI只是撕下了這層遮羞布,而這讓人抓狂。那麼未來該如何?在這個AI加速的軟體世界裡,一切都將變成無人可做的墳墓——AI包攬了所有無用的、未抽象的工作,只有少數天才在雲端運作。不幸的是,我並沒有好的答案。或許人們需要回歸熱情,去構建自己完全理解、徹底擁有的東西,並恰當地抽象它,使之免受AI的威脅——這才是唯一的出路。