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


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

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

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

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

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

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

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

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