一位(wei)名(ming)(ming)叫 Ab Advany 的技術人(ren)員最近接了個(ge)小(xiao)活兒(er),幫他的一位(wei)好(hao)友(you)在其工(gong)作單(dan)位(wei)監督編(bian)程(cheng)案例研究。這項案例研究總共花了兩周時間,他們聘請了兩名(ming)(ming)程(cheng)序員為其創建最小(xiao)可(ke)行產品(MVP)。
這(zhe)兩(liang)名程序員都是(shi)為該機(ji)構工作(zuo)了(le)很長時間的(de)承包商。Ab Advany 之前也曾(ceng)與二人合(he)作(zuo),對兩(liang)人的(de)背景(jing)十分(fen)了(le)解。首先是(shi)來自德國的(de) Alex,擁(yong)有(you) 19 年編程經(jing)驗,采(cai)(cai)取(qu) 100%純手(shou)動編程。來自巴(ba)基斯(si)坦的(de) Hamid 僅擁(yong)有(you) 4 年開發(fa)經(jing)驗,在編程中(zhong)采(cai)(cai)用了(le)手(shou)寫代(dai)碼+Copilot+GPT-4+無(wu)代(dai)碼開發(fa)。
Ab Advany 表示他(ta)們原本(ben)以為 Hamid 大概能(neng)在 8 到(dao) 10 周(zhou)(zhou)內完(wan)成(cheng)工作,而 Alex 可能(neng)要多花上 1、2 周(zhou)(zhou)時間。但最終結果卻令他(ta)們大為意外!Hamid 在一周(zhou)(zhou)之內完(wan)成(cheng)了此項目,端(duan)到(dao)端(duan)測試與測試覆蓋(gai)率(lv)均(jun)達(da)到(dao) 100%;Alex 則只完(wan)成(cheng)了 7%。Hamid 的(de)開(kai)發總成(cheng)本(ben)為 3819 美元(yuan)(yuan),Alex 的(de)開(kai)發成(cheng)本(ben)則為 3520 美元(yuan)(yuan)。
讓不使用 AI 的老程序員出局?
具體(ti)來說的話,兩位程序(xu)員都收到了 Figma 設(she)計要求(qiu)和詳細規格。設(she)計師會(hui)幫(bang)助他們獲取所(suo)需資產,外加需要集成的現有代碼。
Hamid 在(zai)一周之內就完成(cheng)了首個(ge)版本,代(dai)碼(ma)(ma)測(ce)試(shi)覆蓋(gai)率和無(wu)代(dai)碼(ma)(ma)部(bu)分的(de)端(duan)到端(duan)測(ce)試(shi)均達到 100%。95%的(de)工作量(liang)似乎已(yi)經完成(cheng),而且基本看不出有什么問(wen)題……
Hamid 在 @bubble 中構(gou)建了 UI 和前端工作流,使(shi)(shi)用 GPT-4 生成 Cloudflare Workers,使(shi)(shi)用 Copilot 集(ji)成現有代碼,并使(shi)(shi)用 GPT-4 來生成測試(shi)。
Hamid 的開發成(cheng)本細則(ze):
GPT-4: 211 美元
Copilot: 20 美元
Cloudflare: 5 美(mei)元
Bubble: 134 美元(yuan)
總計(ji): 2460 美元 (共 41 個工時)
托管/運行成本:每月 139 美元(yuan)
Alex 完成(cheng)了總工作量(liang)的(de)約 7%,成(cheng)本為(wei):
Vercel: 20 美(mei)元
總(zong)計: 3500 美元
開發所有內容的預期成本(ben):4.5 萬美元。預計額外還需要 1.1 萬美元進行(xing)測試。
托管/運行成本:每月 20 美(mei)元
Ab Advany 的(de)好友跟 Alex 交流了(le)研究感受(shou),對方的(de)結論是“但純手動開(kai)發的(de)應用運行成本要(yao)低得多,而且一切都在自(zi)己的(de)掌握當中。”Alex 顯然沒(mei)理解 13 倍(bei)的(de)產品發布速度和 1/25 的(de)開(kai)發成本到(dao)底意味著什么。
他(ta)(ta)們讓 Alex 出局了:因為他(ta)(ta)只(zhi)相信手動(dong)編碼(ma)(ma),而(er)不愿(yuan)借助無代碼(ma)(ma)/AI 的力量……而(er) Hamid 則收到了該公司(si)全職工作的邀請:他(ta)(ta)將(jiang)培(pei)訓其(qi)他(ta)(ta)程序(xu)員,讓大家結合無代碼(ma)(ma)+AI 進行編碼(ma)(ma)……
拉仇恨?!
Ab Advany 將這(zhe)個(ge)事情分享到了 Twitter,他很好奇(qi)這(zhe)樣(yang)的比對會帶來怎么樣(yang)的結果。
他(ta)還(huan)在(zai) Twitter 線程(cheng)里補充(chong)道:“我(wo)朋(peng)友(you)所(suo)在(zai)的(de)機(ji)構有 100 多位像 Alex 這(zhe)(zhe)樣(yang)的(de)開(kai)發人員。現(xian)在(zai),他(ta)們打(da)算對老程(cheng)序員做重(zhong)新培訓,甚至用 Hamid 這(zhe)(zhe)種新兵取代他(ta)們……我(wo)覺(jue)得 Hamid 這(zhe)(zhe)類(lei)開(kai)發者五年之(zhi)后也仍然不愁工作崗位,但 Alex 所(suo)代表的(de)群(qun)體可能會被(bei)迫跳(tiao)槽(cao)或者轉行。大家怎么(me)看(kan)?”
案例(li)發布(bu)后(hou),大家對他進行了(le)更仔細的問詢:
網友 A:“為什么 Alex 不想使用這些工具?我從 1986 年開始編程,我就很喜歡使用 Copilot、ChatGPT 這些,它們讓我的生活更輕松……”
Ab Advany:“你閱(yue)讀完這個 Twitter 線(xian)程的(de)話,你會(hui)看(kan)到許多(duo)傳統程序(xu)員對‘為什么不使用 AI’的(de)答復。其中(zhong)比(bi)較重(zhong)要的(de)一點是,當前的(de) AI 有上下文限制。因此,要使其工作,我們需要進行(xing)函數式編程。”
網友 B:“用 GPT-4 武裝的 Alex(老程序員) 會是一個更好的解決方案。難道只有我這樣覺得嗎?”
Ab Advany:“Alex 不想使用 GPT-4。他(ta)認為(wei)會(hui)產(chan)生錯誤的代碼。特別是這意味著 Alex 需要適應 AI,而不是 AI 適應 Alex。”
同時 Ab Advany 也收到了非常多的反方意見:
“當然,對于簡(jian)單的(de)項目、網(wang)站/應用(yong)程(cheng)序等,你可(ke)以得出(chu)這個(ge)結論(lun)。但對于具有更(geng)高復雜度的(de)新穎(ying)解決(jue)方案(an),你不應該運行你不理解的(de)代(dai)碼,它關乎到開(kai)發者的(de)聲(sheng)譽。如(ru)果它們存(cun)在安(an)全(quan)漏洞,甚至有相關法(fa)律責(ze)任,該怎么辦?”
“對于構建(jian)可(ke)擴展和可(ke)維護的(de)長期關鍵任務項目,我(wo)會選擇 Alex。”“解雇 Alex 是錯誤(wu)的(de)舉(ju)動。”
“散布這(zhe)樣的謊言,你(ni)能得到什么(me)?在營銷嗎?此外,這(zhe)樣的比較甚至沒有提到代(dai)碼(ma)質量(liang)。將來你(ni)肯(ken)定(ding)要為質量(liang)、性能和可維(wei)護性付費。”“可能有些人真不在乎代(dai)碼(ma)質量(liang)吧(ba)?”
……
不(bu)出(chu)所(suo)料,僅兩天后,他發了(le)(le)條新推文:“我(wo)的(de)推文引起了(le)(le)程序員們的(de)強烈不(bu)滿。”
更要命的(de)(de)是他的(de)(de)推文配(pei)圖,“RIP,傳統(tong)程(cheng)序員”。他堅持認為(wei)大家必須更好(hao)地評估問(wen)題(ti)并選擇正確(que)的(de)(de)前進(jin)方(fang)向。因為(wei)太過激進(jin),所以他得(de)到了網(wang)友們對他進(jin)一步的(de)(de)評價:“真是越(yue)來(lai)越(yue)讓(rang)人(ren)討厭了!”
抗拒 AI 輔助編程會是一場“必敗仗”嗎?
基(ji)于大型(xing)(xing)語言(yan)模型(xing)(xing)的(de) AI 工具,比如 OpenAI Codex ,或來(lai)自(zi)微軟的(de) GitHub Copilot ,亦或來(lai)自(zi)谷(gu)歌 DeepMind 的(de) AlphaCode,已(yi)經開始改(gai)變許(xu)多開發(fa)者的(de)工作方式。雖(sui)然目前它(ta)們只可以用來(lai)編(bian)寫(xie)代碼片段、發(fa)現(xian)錯誤、編(bian)寫(xie)注釋(shi)、提(ti)供建議等,但這并不(bu)妨礙(ai)讓大家見識到它(ta)的(de)威力。
去年,谷歌的研究人員發現,人工智能將“編碼迭代(dai)時間(jian)”減少了 6%,這份研究主(zhu)要針對谷歌(ge)內(nei)部的 10,000 名開發人員。
GitHub 去(qu)年也調查了 2,000 名程序員(yuan)(yuan),了解他(ta)們如何使(shi)用(yong) GitHub 的(de) AI 編(bian)碼(ma)助手(shou) Copilot。大多數(shu)人表(biao)示 Copilot 幫助他(ta)們減少挫折感(gan)并增(zeng)加成就感(gan);88% 的(de)人表(biao)示這提(ti)高(gao)了他(ta)們的(de)工作效率。在(zai)報告中,GitHub 說道:“使(shi)用(yong) Copilot 輔助編(bian)程的(de)開發人員(yuan)(yuan)完成任務的(de)速度明顯更快——比(bi)不使(shi)用(yong)它的(de)快 55%。”
雖然生(sheng)成式 AI 模型(xing)和工(gong)具還在改進中,但一(yi)點也(ye)不影(ying)響其(qi)普及(ji)速度,越來越多的開(kai)發者(zhe)開(kai)始使用(yong)它們。以 GitHub Copilot 為例,微軟于 2022 年 6 月(yue)首次面(mian)向個人推出該工(gong)具時,平均有超過 27% 的開(kai)發人員(yuan)代碼是由(you) GitHub Copilot 生(sheng)成的。到了今(jin)年 5 月(yue),微軟再(zai)次統計時,這個數字已經變成了 46%——而在 Java 編(bian)程語言環境中,這個數字躍升到了 61%。
所以 GitHub 大膽斷(duan)言,“鑒(jian)于這(zhe)項技術(shu)可以幫助開發者加(jia)快構(gou)建速(su)度,所以展(zhan)望未來(lai),不采用生成式人工智能工具的(de)科技公司將在生產力方面處于明顯(xian)劣勢。”
Ab Advany 分享的案例(li),也許這(zhe)并不是(shi)(shi)讓我(wo)們單純地(di)比較哪(na)個方案更好,而(er)是(shi)(shi)讓我(wo)們明白(bai),我(wo)們已經有了很多選擇,AI、低代碼(ma)等工具都可以用來解決部分問(wen)題,那么該是(shi)(shi)時(shi)候讓我(wo)們再次評估如(ru)何讓開發(fa)人員進一步(bu)專注于核(he)心業務邏輯、減少底層開發(fa)、讓大家(jia)更高效更輕(qing)松地(di)工作了。
至(zhi)于 AI 輔(fu)助編程(cheng)是(shi)(shi)不是(shi)(shi)未來發(fa)展方(fang)向?這就(jiu)像一位網友給(gei) Ab Advany 的(de)評論(lun)中(zhong)那(nei)樣:“純粹的(de)非 AI 輔(fu)助編程(cheng)工程(cheng)師在這里是(shi)(shi)在打(da)一場(chang)必敗仗(zhang),這很(hen)明顯……現在誰會在沒有(you) Copilot 的(de)情(qing)況下編寫代(dai)碼呢(ni)?”
參考(kao)鏈(lian)接(jie):
//twitter.com/advany/status/1664451798793584642
//archive.ph/o21uE#selection-819.4-819.11
//github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/
//github.blog/2023-05-09-how-companies-are-boosting-productivity-with-generative-ai/
本文轉載(zai)來(lai)源:
//www.infoq.cn/article/aCtNDBJttaNPE07i6xIw