【CSDN 編者按】AI 編碼助手的出現(xiàn)為軟件開發(fā)帶來了前所未有的便利,從自動補全代碼到幫助學(xué)習(xí)新技術(shù)棧,AI 似乎正在改變開發(fā)者的工作方式——然而,這種工具究竟是生產(chǎn)力的助推器,還是另一個需要謹(jǐn)慎對待的“黑箱”?
原文鏈接:https://mlagerberg.com/blog-ai-copilot/
作者 | Mathijs Lagerberg 翻譯 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
我知道,現(xiàn)在網(wǎng)上關(guān)于 AI 的文章已經(jīng)泛濫成災(zāi)。但我還是想分享一些不同的觀點,因為當(dāng)前輿論幾乎都在炒作,缺少批判性思考。所以,下面就來說說我的看法。


軟件開發(fā)世界的 FUD 現(xiàn)象
當(dāng)下,軟件開發(fā)領(lǐng)域正被 FUD 情緒(恐懼、不確定性和懷疑)主導(dǎo)。各大管理者每天都被“生產(chǎn)力提升 10 倍”、“傳統(tǒng)開發(fā)者即將消亡”、“AI 代理之間可以自主協(xié)作”等帖子轟炸,而這其中甚至沒有一個真正的人類開發(fā)者。
AI 的淘金熱推動著各大公司倉促推出 AI 相關(guān)功能——即使這些功能用戶并不需要。誰都不想錯過風(fēng)口,所以所有人都蜂擁而上,不假思索地加入這場 AI 競賽。

從“小小開發(fā)者”到今天
我仍然清晰地記得自己初學(xué)編程時的場景:在父親的 486 電腦上,手邊只有一本介紹 DOS 命令的書。我借來一本關(guān)于 QBasic 的書籍,并由此寫出我人生的第一個游戲。那時候沒有語法高亮,沒有自動補全,沒有 Stack Overflow 這樣的網(wǎng)站幫我答疑解惑,更不用說 AI 了。
如果遇到問題,我只有兩個選擇:要么在代碼里插入 PRINT 語句進行調(diào)試(當(dāng)然,這需要極大的耐心),要么跑到圖書館查閱資料。調(diào)試的過程也相當(dāng)原始:運行程序,報錯,查找錯誤,修改代碼,然后再次運行,心里默默祈禱它能順利執(zhí)行。
今天我們習(xí)以為常的開發(fā)工具,當(dāng)年都曾是驚人的技術(shù)突破。我至今還記得自己從 Notepad 切換到 ConTEXT 編輯器時的興奮感——它居然支持語法高亮!后來,我發(fā)現(xiàn)了 Experts Exchange(甚至是在它還沒有加上連字符的年代),從此不必再在 Lycos 或 AskJeeves 搜索半天才能找到答案。再后來,Stack Overflow 誕生,幾乎所有問題的答案都可以在上面找到
然后是 IDE 時代的到來。我從文本編輯器轉(zhuǎn)向 Eclipse,它不僅是個編輯器,而是一個真正的集成開發(fā)環(huán)境。Eclipse 可以幫你重構(gòu)代碼,在運行前就能提示錯誤。你可以通過 Ctrl+點擊跳轉(zhuǎn)到類或變量的定義,甚至可以直接在 IDE 里閱讀文檔。匹配括號自動高亮,縮進也不再需要手動調(diào)整——我需要手動查找的東西越來越少,代碼編寫的過程也越來越高效。
簡而言之,我不再需要用大腦時刻保持代碼的整體概念,開發(fā)過程變得更加流暢。
框架和 SaaS 平臺也同樣如此。如今,即便你不是 Linux 服務(wù)器運維專家,也能搭建出一個可擴展的云端服務(wù);你甚至不需要學(xué)習(xí) SQL,就能在 Firebase 上構(gòu)建一個完整的后端。此外,現(xiàn)代開發(fā)者也無需再手動管理內(nèi)存釋放。

這不是革命,而是進化
現(xiàn)在,我們又迎來了一個新浪潮——AI 輔助開發(fā)。市場營銷宣傳鋪天蓋地,聲稱 AI 可以帶來“生產(chǎn)力的爆炸式提升”。但在我看來,這只是開發(fā)工具進化鏈上的下一個環(huán)節(jié)。
既然 Eclipse、Firebase 和 Stack Overflow 并沒有取代開發(fā)者,那么 AI 也不會讓我們失業(yè)。相反,它為軟件開發(fā)真正重要的部分騰出了更多空間:創(chuàng)造力、創(chuàng)新、理解用戶需求以及解決復(fù)雜問題。甚至可以說,AI 真正提升的并非生產(chǎn)力,而是人們的預(yù)期?,F(xiàn)在,我們能用更短的時間做出更精美的產(chǎn)品,或者讓經(jīng)驗不足的開發(fā)者更快地實現(xiàn)一個原型——但歸根結(jié)底,完成一個項目所需的程序員數(shù)量,一個都不會少。
在這個行業(yè)摸爬滾打 25 年,我悟出了一個鐵律:理解事物的真正本質(zhì),才是無可替代的能力。

AI 開發(fā)工具的正面價值
別誤會,我對 AI 也是充滿熱情的。只是這些工具真正的威力,往往體現(xiàn)在細節(jié)上。
比如,那些讓人抓狂的模板代碼,你已經(jīng)寫了上千遍?只需 Tab-Tab-Tab,它就自動補全了。再比如,那些重復(fù)但又略有不同的代碼模式,無法直接復(fù)制粘貼?AI 能理解你的意圖,并自動調(diào)整代碼……它就像是一個智能的自動補全助手,不僅知道你要寫什么,還能理解你為什么要這么寫。甚至,想要添加一門新語言的翻譯也變得輕而易舉。
最讓我驚艷的,是 AI 在學(xué)習(xí)新框架時的輔助作用。曾經(jīng),ChatGPT 幫助我在兩周內(nèi)掌握了 Flutter 開發(fā),后來同樣高效地助我攻克 Express、Wagtail 和 LangChain 等全新領(lǐng)域。于我而言,AI 就像是一個私人導(dǎo)師,能精準(zhǔn)匹配我這種資深開發(fā)者的認(rèn)知層級——跳過基礎(chǔ)教程,直擊框架間的差異化要點。

為什么我還是不太興奮?
大半輩子前,我曾修過 AI 相關(guān)的課程,坦白說,這些年 AI 技術(shù)確實有了驚人的飛躍。但 AI 本身并不是什么新東西,它甚至在技術(shù)上也沒有發(fā)生質(zhì)的變化。歸根結(jié)底,AI 仍然只是模式識別,這種方法已經(jīng)被廣泛應(yīng)用了很多年。通過識別模式,AI 也可以推測出下一個模式,進而“預(yù)測”接下來的步驟。
這一原理早已被社交媒體算法所利用——它們會不斷向你推薦你可能喜歡的內(nèi)容,廣告商也通過這種方式預(yù)測你的購物需求。而 ChatGPT 只是逐個 token 預(yù)測接下來的單詞,這并不什么新鮮功能,你的智能手機鍵盤早也早就具備了類似功能。真正的區(qū)別在于,如今我們投入了海量的計算資源和能源,使 AI 跨過了一個實用性的門檻,從而變得更加實用。
在過去半年里,我密集地使用了 Codeium、ChatGPT 和 Windsurf 等 AI 輔助工具。它們確實令人印象深刻——但作為編程的“智能輔助”,它們的價值并不算顛覆性創(chuàng)新。如果非要列出我會帶去荒島的十大開發(fā)工具,AI 絕對不會在這個名單里。

AI 開發(fā)工具的問題出在哪?
這些工具的能力很強,但正因為如此,它們也很危險:它們能生成看起來很專業(yè)、能運行、甚至很優(yōu)雅的代碼,卻也可能埋著致命的安全隱患。
拿我在 Express 上的實驗來說,AI 生成的代碼運行得非常完美,但我一眼就看出,它完全沒有任何 SQL 注入防護,連最基本的安全措施都沒考慮。換句話說,這個網(wǎng)站的安全性糟糕透頂,上線不到一個小時,黑客就能輕松入侵。我向 ChatGPT 指出了這個問題,它立刻補充了安全補丁——這說明它確實知道該怎么做,但它并不會主動去做。
當(dāng)然,這個問題可以通過更精準(zhǔn)的提示詞(prompt engineering)來改善,但這本質(zhì)上仍需要開發(fā)者具備專業(yè)知識——就像無代碼(no-code)平臺永遠無法取代傳統(tǒng)編程一樣。構(gòu)建一個簡單、粗糙的原型很容易,但要構(gòu)建一個真正安全好用、可維護的系統(tǒng),仍需人類的深度理解。
另一個致命問題是上下文衰減。所有用過 AI 編程助手的人都知道,隨著代碼量增加,它們的能力會迅速下降,哪怕它們的上下文窗口很大。因此,如何精準(zhǔn)地向 AI 提供關(guān)鍵信息,讓它幫你解決具體的實現(xiàn)細節(jié),至關(guān)重要——換句話說,這正是人類開發(fā)者的強項。
這絕非一個小 Bug,它揭示了 AI 始終是需配合專業(yè)知識的工具。GitHub 和 Stack Overflow 早就有海量代碼,但使用者仍需擁有判斷力。從復(fù)制粘貼到提示工程,本質(zhì)仍是相同行為——盲目信任一直以來都是很糟糕的做法。
除此潛在的安全隱患,AI 還存在嚴(yán)重的幻覺(hallucination)問題。以我為例,AI 助手曾寫出根本不會排序的排序算法、調(diào)用過不存在的函數(shù)名、因上下文過載直接把多個函數(shù)體替換成"your code here"的注釋……最離譜的是,它們還在 JavaScript 文件里寫 Python 代碼!最終,我花了比自己寫代碼更多的時間來清理 AI 生成的錯誤。更搞笑的是,當(dāng) AI 服務(wù)器短暫斷線時,我索性直接放棄了 AI 助手,竟發(fā)現(xiàn)自己寫代碼反而更快——至少不會那么讓人崩潰。

但 AI 的發(fā)展速度不是很快嗎?
其實,并不算快。在 ChatGPT 橫空出世帶來的最初驚喜之后,AI 的發(fā)展并沒有突飛猛進,甚至有些停滯不前——因為 OpenAI 和 Anthropic 已經(jīng)找不到新的數(shù)據(jù)源來訓(xùn)練模型,整個互聯(lián)網(wǎng)已經(jīng)被“讀”完了。更糟糕的是,隨著越來越多低質(zhì)量的 AI 生成內(nèi)容充斥網(wǎng)絡(luò),訓(xùn)練新模型只會變得更加困難。就像不斷用復(fù)印機翻印同一份文件,最終只能得到越來越模糊的版本。
當(dāng)前 GPT 模型本質(zhì)上仍是某種“黑箱”,它們只是盡力預(yù)測模式中的下一個步驟。所謂"高級推理"之類的功能并未改變底層原理,只是在外層添加了訓(xùn)練輪和補丁,仍依賴于底層的黑箱架構(gòu),而代價是極高的能耗。就像你家的水管:雖然能出水,但流著褐色液體,偶爾還會從插座里噴出來。你可以不斷叫水管工來修補,但也許最好的辦法是直接喝瓶裝水。水管工或許能一直修下去,但水質(zhì)永遠無法真正純凈。

總結(jié)
最后,請容我再次強調(diào):AI 編程助手并非銀彈。
很多 LinkedIn 上的網(wǎng)紅不愿承認(rèn)這一點,因為 AI 又酷又潮,甚至對許多人而言甚至是唯一親自接觸過的"智能"。但那些每天真正構(gòu)建產(chǎn)品的開發(fā)者心知肚明:AI 也許讓編碼更快,但它并不會減少對開發(fā)者專業(yè)能力的要求,反而可能讓這種要求更高。因為現(xiàn)在,你不僅需要會編程,還需要能分辨 AI 何時出錯。而這并不容易——畢竟,閱讀代碼本來就是一件很難的事。
優(yōu)秀的程序員,最擅長使用自己熟悉的工具。我認(rèn)識的一些頂級開發(fā)者依然喜歡用 Vim 進行編碼。如果你不熟悉 Vim,我可以介紹一下:它是一個看起來像 90 年代黑客電影里才會出現(xiàn)的神秘編輯器,完全不包含任何 AI 功能。但就我個人而言,我更喜歡用純粹的 VSCode,而不是帶 AI 的 VSCode(比如 Windsurf),因為沒有 AI 在一旁干擾時,工作反而會更順暢。
當(dāng)然,我偶爾還是會用 AI 編程助手。但它永遠只配坐在“副駕”的位置——因為真正掌握方向盤的人,必須是你自己。
4 月 2 日 20:00,CSDN《萬有引力》欄目特別邀請到OpenManus 項目一作、MetaGPT 開源核心貢獻者梁新兵,DeepWisdom 算法研究員、OpenManus 核心作者向勁宇相聚 CSDN 視頻號直播間,在CSDN &《新程序員》執(zhí)行總編、《萬有引力》主理人唐小引主持下,一起聊聊 00 后程序員的故事,以及 OpenManus 背后的秘密!
熱門跟貼