作者 | Keith Pitt
編譯 | 伊風(fēng)
出品 | 51CTO技術(shù)棧(微信號:blog51cto)
這篇文章的作者基思-皮特(Keith Pitt),是一家軟件開發(fā)公司Buildkite的創(chuàng)始人兼CEO。2013年,他和另一位軟件工程師蒂姆-盧卡斯(Tim Lucas)創(chuàng)立了該公司,并致力于為技術(shù)行業(yè)提供持續(xù)集成和持續(xù)交付(CI/CD)平臺,最近剛獲得了由OneVentures 和 AirTree 共同領(lǐng)投的 2100 萬美元 B 輪融資。
作為一名擁有20年編程經(jīng)驗(yàn)的老手,以及作為一家服務(wù)于軟件開發(fā)者的公司的首席執(zhí)行官,基思-皮特(Keith Pitt)對早期關(guān)于生成式人工智能、AI編程工具最終會使大多數(shù)軟件開發(fā)技能過時的預(yù)測持有本能的懷疑態(tài)度。
他在文章中說:“雖然我仍然有些懷疑,但我在日常開發(fā)工作中與生成式AI的互動經(jīng)歷促使我開闊了視野,開始思考我認(rèn)為可能的事情。AI將以一些相當(dāng)基本的方式改變軟件開發(fā),既有積極的一面,也有消極的一面?!?
一、積極一面:AI讓開發(fā)工作化繁為簡
1.結(jié)束單調(diào)乏味的工作
開發(fā)者在語法和標(biāo)點(diǎn)等細(xì)節(jié)上花費(fèi)了過多的時間,這些工作可以(也應(yīng)該)消失。開發(fā)者不再需要翻閱手冊或從代碼交換中拼湊代碼片段,而是通過描述一個期望的結(jié)果,得到完美格式化的代碼答案。大型語言模型(LLMs)還可以檢查現(xiàn)有代碼,找出打字錯誤、標(biāo)點(diǎn)錯誤和其他讓開發(fā)者頭疼的細(xì)節(jié)。
2.重塑框架開發(fā)流程
在使用像Spring、Express.js和Django等軟件框架開發(fā)時,AI編程工具通過抽象軟件開發(fā)中通用的部分、設(shè)定一致的指導(dǎo)方針以及提供常見功能的預(yù)寫代碼,可以極大地提高生產(chǎn)力。生成式AI將通過創(chuàng)建樣板代碼、自動化重復(fù)任務(wù)和建議代碼優(yōu)化來體現(xiàn)它們的工具價值。
AI還可以幫助定制特定項(xiàng)目的框架組件。
3.“通才”開發(fā)者將崛起
許多開發(fā)者的專長在于他們對某種特定編程語言的精通。當(dāng)AI能夠用任何語言生成代碼時,精通Python或Ruby就不再那么重要了。同樣,像測試和代碼優(yōu)化這樣的專業(yè)后端技能相關(guān)的任務(wù)將迅速轉(zhuǎn)移給生成式AI模型完成。
最寶貴的技能將是AI不擅長的,比如構(gòu)建引人入勝的用戶界面、將用戶需求轉(zhuǎn)化為文檔說明以及發(fā)明支持客戶的新方法。軟件“詩人”,或者說那些構(gòu)想出代碼可以實(shí)現(xiàn)的偉大創(chuàng)意的人,將會成為焦點(diǎn)。
4.軟件測試的革命
生成式AI天生就適合軟件測試。開發(fā)者編寫代碼,而AI可以創(chuàng)建你想要的任意數(shù)量的測試腳本。最近的一項(xiàng)IDC調(diào)查發(fā)現(xiàn),軟件質(zhì)量保證和安全測試是人們最期待的AI編程的優(yōu)勢,遠(yuǎn)遠(yuǎn)超過其他選項(xiàng)。這將顛覆DevOps的持續(xù)集成/部署實(shí)踐,并將許多測試專家推向?qū)ふ倚碌墓ぷ黝I(lǐng)域。
5.全民開發(fā)者時代
當(dāng)前的低代碼/無代碼開發(fā)工具已經(jīng)很不錯了,而生成式AI將會把它們推至新的高度。盡管低代碼/無代碼工具自動化程度高,但它仍然需要人們在白板上拼湊出一個工作流程,然后再將其轉(zhuǎn)化為軟件。
在未來,他們將能夠給模型一個手繪的工作流程草圖,并在幾秒鐘內(nèi)得到必要的代碼。
二、消極一面:代碼污染,技術(shù)降級
盡管AI充滿了前景,但它不應(yīng)該被視為萬能的。
1.過度測試的風(fēng)險
因?yàn)槟P涂梢钥焖偕蓽y試,我們可能會進(jìn)行比我們需要的更多的測試。過度測試是軟件開發(fā)中的一個常見問題,特別是在那些以團(tuán)隊(duì)生成的測試數(shù)量來衡量績效的組織中。運(yùn)行太多重復(fù)或不必要的測試會拖慢項(xiàng)目進(jìn)度,并在后續(xù)流程中造成瓶頸。
不過,當(dāng)AI能夠推薦何時移除測試時,我們將看到開發(fā)者的巨大解放——這種生成性AI的愿景讓我對未來充滿期待。
2.開發(fā)技能退化
“我總是選擇一個懶人去做一項(xiàng)艱苦的工作,因?yàn)樗麜业揭环N簡單的方法來完成它,”這句話經(jīng)常被錯誤地被認(rèn)為是比爾·蓋茨說的。雖然這句話的出處不清楚,但這句話本身有一定道理:懶人總在尋找避免艱苦工作的捷徑,而AI正提供了絕佳的解決方式。
生成式AI會讓懶惰開發(fā)者們上癮,它可能導(dǎo)致創(chuàng)建臃腫、低效和性能差的代碼。更可怕的是AI編程工具可能扼殺優(yōu)秀開發(fā)者引以為傲的創(chuàng)新。因?yàn)樯墒紸I是基于現(xiàn)有模式和數(shù)據(jù)編寫代碼的,這可能進(jìn)一步限制那些不愿走出“舒適區(qū)”的開發(fā)者以及他們的創(chuàng)新潛力。
3.AI編程工具表現(xiàn)不佳
生成式AI的好壞取決于用于訓(xùn)練模型的數(shù)據(jù)。
質(zhì)量差的數(shù)據(jù)、訓(xùn)練捷徑和糟糕的提示工程可能導(dǎo)致AI生成的代碼不符合質(zhì)量標(biāo)準(zhǔn)、存在錯誤或無法完成工作。這可能導(dǎo)致組織對AI編程工具的質(zhì)量失去信任,并錯過其潛在的好處。
三、最值得提出的問題:AI取代軟件開發(fā)者嗎?
盡管一些想引起注意力的專家已經(jīng)提出過類似的觀點(diǎn),但歷史上沒有先例支持這樣的結(jié)論。技術(shù)進(jìn)步——從高級語言到面向?qū)ο笤俚娇蚣堋呀?jīng)穩(wěn)步提高了開發(fā)者的生產(chǎn)力,但需求只增不減。
生成性AI可能會削弱低端基礎(chǔ)編碼技能的市場,但更大的影響將是推動整個行業(yè)上升到價值鏈的更高層次,去做LLMs目前不擅長的事情:創(chuàng)新。
要記得,生成性AI模型是基于已知的東西進(jìn)行訓(xùn)練的,而不是未知的、等待被創(chuàng)造的東西。我不指望機(jī)器很快設(shè)計出一個革命性的用戶界面或想出一個Uber。
然而,開發(fā)者在他們的職業(yè)生涯中可能很難遇到這樣生產(chǎn)力爆發(fā)的風(fēng)口。與其像我年輕時那樣想要對抗機(jī)器,開發(fā)者應(yīng)該順勢而為、乘風(fēng)破浪。AI編程將人們從許多乏味工作中解脫,這應(yīng)該讓每個人感到興奮。某些工作任務(wù)可能會消失的風(fēng)險,應(yīng)該轉(zhuǎn)化為學(xué)習(xí)行動的激勵——能將業(yè)務(wù)需求轉(zhuǎn)化為優(yōu)雅和高性能軟件的高質(zhì)量開發(fā)者將永遠(yuǎn)備受青睞。