AI News HubLIVE
站内改写

AI並沒有讓軟件變糟,是人本身

本文認為,將軟件質量下降歸咎於AI是錯誤的。實際上,開發者長期以來已經接受了平庸、浪費和缺乏匠心的做法。AI只是加速了已有的不良實踐。

文章情報

工程師進階

要點

  • AI出現前,軟件質量標準就已下降
  • AI只是加速了已存在的糟糕開發習慣
  • 真正的匠人精神已被快速交付文化取代

為甚麼重要

這條新聞值得關注,因為AI出現前,軟件質量標準就已下降。

技術影響

可能影響模型選型、推理成本、產品能力和評測基準。

本文作者Raphael Amorim在開篇指出,AI是一個敏感話題,所以這篇文章並未鏈接到他的主頁,只是記錄個人想法,以防朋友問起。他擔心有人誤解他喜歡AI生成的“垃圾代碼”,因為他認為當前非黑即白的討論缺乏中間地帶。

作者看到越來越多的頭條指責“AI讓軟件變得更糟”,但他的回應始終如一:不,AI沒有讓軟件變糟,是人本身。AI只是交到那些早已習慣於發佈糟糕軟件的人手中的最新工具。他明確表示自己並非AI擁躉,但也不是反對者——他喜歡技術本身,曾構建和微調過模型,也常閲讀論文,只是不贊成讓AI佔據主導地位。

他認為,將責任推給AI是逃避更深層次問題的最簡單方式。這個問題存在已久:在AI能自動補全函數之前,我們就已經在製造糟糕的軟件了。究其原因,年復一年,我們不斷降低標準,並稱之為進步。我們容忍那些浪費資源的軟件,因為對發佈者而言成本為零,而代價由用户的機器、電池和內存承擔。

最明顯的例子是每天擺在開發者面前的編輯器。許多人使用偽裝成桌面應用的瀏覽器來編寫代碼。VS Code固然有許多優點,但它是一個基於瀏覽器的編輯器,可以輕鬆消耗超過10GB內存,只為了編輯幾個文本文件。編輯文本——這就是任務。我們竟然認為編輯文本值得十千兆字節的內存,而且幾乎沒人覺得有問題。作者本人從未使用Electron應用,這是原則而並非偶然。他拒絕僅僅因為對開發者方便就接受低質量軟件。

作者懷念當約束真實存在的時代:64KB內存意味着什麼,人們曾在如此有限的資源下構建完整的體驗。那些約束並沒有讓軟件變糟,反而促使人們思考,迫使工匠精神——每個字節都必須證明其存在的價值。而如今,我們幾乎沒有任何約束,但並沒有利用自由去創造美好,反而集體選擇“燒掉30GB內存”,幾乎是在慶祝浪費。我們擁有前所未有的計算能力,卻用它來變得前所未有的懶惰。

問題不止於編輯器。看看編程語言本身:臃腫的語言正被推向系統編程領域——這本應是每個字節、每個週期都必須精打細算的領域,但人們卻聳聳肩説“還行”。這絕不行。選擇一個沉重、帶垃圾回收、運行在層層運行時之上的技術棧去做需要精確性的工作,併為其辯護,正是作者批評的態度。曾經界定系統編程的約束被悄然拋棄,而我們稱之為“實用主義”。

更讓作者感到好笑的是:通過npm安裝來自完全不同語言編寫的二進制文件,用IPC調用包裝,然後作為一個“包”發佈。從另一種語言拉取原生二進制,生成子進程,通過管道通信,稱之為“包”。層層疊加,每一層都消耗內存和複雜度,只為了讓每個人都不必離開舒適區。這樣做當然能運行,但“能運行”從來不是優秀工程的標準——那只是我們錯誤地當成目標的底線。

核心觀點是:AI並沒有降低標準。標準早已低至地面。AI只是讓我們更快地觸底。如果一個開發者不關心資源使用、不關心所有權、不關心自己發佈的內容,AI不會讓他們變得更糟——他們本來就是這樣。AI只是移除了最後一點阻礙他們的摩擦。垃圾代碼遲早會來,AI只是給了它更快的運輸車。

垃圾代碼的真正來源是:人們失去了優秀工程的感覺,或者更可能的是,他們根本不在乎。一切變成關於交付而非匠心,關於時間而非工作本身。發佈,關閉工單,繼續下一項。當唯一的問題是“完成了嗎?”而從不問“做得好嗎?”,垃圾代碼就不是偶然——它是獎勵速度、忽視匠心的系統的可預測輸出。AI並沒有發明這種激勵機制,只是完美地滋養了它。

所以當人們指着AI生成的代碼説“看,軟件變得更糟了”時,作者想問:比什麼更糟?比那個10GB的文本編輯器?比需要1GB內存才能顯示消息的聊天應用?比那些只是披着窗口外衣的網站式桌面應用?我們都接受了這些,甚至為之喝彩。別等到模型取代人寫出糟糕代碼時才突然生出良知——那是徹頭徹尾的虛偽。

誠實的態度更難:承認質量多年來一直是可選的,我們早已用工匠精神換取便利。AI只是反映我們真正重視什麼的一面鏡子。如果把工具交給不關心質量的文化,結果只是加速生產該文化已有的產物。所以,AI沒有讓軟件變得更糟。是我們,一直如此。承認這一點的那一天,我們才能真正開始建設更好的軟件。