作者|Paul Payne
譯者|冬梅
編者按:
我們正經(jīng)歷一場堪稱“AI 版工業(yè)革命”的浪潮。各種新工具、新模型層出不窮,更新速度快到讓人眼花繚亂——昨天剛推出的框架,今天可能就被新一代模型取代。表面上看,這是一片繁榮景象,但對開發(fā)者來說,這場盛宴背后隱藏著焦慮與迷惘。
過去,程序員精通一個技術(shù)棧,就能吃好幾年飯。而現(xiàn)在,AI 工具的進(jìn)化速度遠(yuǎn)遠(yuǎn)超過人的學(xué)習(xí)速度。昨天還在研究 Prompt Engineering 的最佳實踐,今天就被一個懂語義、能自我優(yōu)化的新模型拍在沙灘上。當(dāng) AI 能自動生成、優(yōu)化甚至自測代碼時,一個尷尬的問題浮出水面:人類開發(fā)者的價值是什么?
這篇博客的作者 Paul Payne 是一位具有 30 年編程經(jīng)驗的西雅圖資深工程師,他目前是微軟 CTO 領(lǐng)導(dǎo)下的一名首席研究員。他當(dāng)前的工作是通過系統(tǒng)和認(rèn)知架構(gòu)增強生成模型,構(gòu)建人工智能系統(tǒng)。Paul Payne 和他的團(tuán)隊探索如何利用大語言模型將其效用拓展至更廣泛的應(yīng)用場景,致力于構(gòu)建功能性原型,并在微軟內(nèi)部、學(xué)術(shù)界及更廣泛的行業(yè)中分享我們的研究成果。他們的成果已逐步應(yīng)用于 Semantic Kernel、Microsoft Teams 和 Bing 等產(chǎn)品,并被全球多個研究團(tuán)隊所采用。
Paul Payne 于 2023 年創(chuàng)立了西雅圖人工智能協(xié)會,除了專業(yè)交流和創(chuàng)意項目合作之外,他和團(tuán)隊每周還會從各個角度討論人工智能對社會的影響。
在這篇博客中,Paul Payne 描繪了一幅 AI 正在顛覆軟件工程領(lǐng)域的未來圖景。他坦言自己正經(jīng)歷一場“存在主義危機(jī)”。
但事情總有好的一面,我們或許不必將未來視為程序員的“謝幕”。正如作者團(tuán)隊的工作所展現(xiàn)出來的那樣,AI 雖然強大并且高效,但仍然需要人類工程師來引導(dǎo)、設(shè)計和賦予其方向。
當(dāng) AI 接管了代碼實現(xiàn)的“執(zhí)行層”,未來的程序員可能不再需要親手敲擊每一行代碼,但人類工程師的價值也將得以向更高層次升華:他們將有被徹底從底層代碼中解放出來,有更多精力去定義更復(fù)雜的問題、去進(jìn)行跨領(lǐng)域的倫理權(quán)衡、去理解并塑造技術(shù)與社會的關(guān)系。
以下為作者博客原文,經(jīng)由 InfoQ 翻譯及整理。
好的,我正式宣布。我整整 30 年的編程生涯,已經(jīng)成為了一件歷史文物。
我目前從事的 AI 工作讓我確信,在短短幾年內(nèi),人類回顧過去時,會覺得人們曾經(jīng)真的需要親手編程機(jī)器這件事非常可笑。
1 我曾堅定地認(rèn)為編程需要人類
我 8 歲就開始編程了,那時我埋頭苦讀一本 Commodore 64 用戶手冊,并照著雜志后面的代碼敲打。從那以后,我的學(xué)習(xí)就從未停止。編程不是你學(xué)幾年就能完全掌握的東西。在過去的 40 年里,我一直身處全行業(yè)持續(xù)不斷的技術(shù)演進(jìn)洪流中。
當(dāng)我們招聘程序員時,我們看重的一些主要品質(zhì)是適應(yīng)性、自主學(xué)習(xí)和批判性思維能力。要保持站在技術(shù)前沿需要持續(xù)不斷的努力。
編程從根本上需要一種對機(jī)械的共鳴。你需要理解機(jī)器是如何工作的——存儲、內(nèi)存、處理、接口。在這個基礎(chǔ)之上,你學(xué)習(xí)語言和工具集的語義——到底是哪些字符的神奇組合能被系統(tǒng)實際執(zhí)行。再往上,是大型程序的抽象,然后是程序系統(tǒng),再是計算機(jī)系統(tǒng)。程序員的大部分工作是管理復(fù)雜性,因此學(xué)習(xí)和開發(fā)應(yīng)對復(fù)雜性的技術(shù)至關(guān)重要。
經(jīng)驗更豐富的開發(fā)者會擁抱各種抽象概念,比如數(shù)據(jù)結(jié)構(gòu)和算法、配置與狀態(tài)、封裝、函數(shù)式與對象組合、實體與數(shù)據(jù)、事件與快照、順序與遞歸,這真是永無止境。所有這一切,都伴隨著持續(xù)不斷的新產(chǎn)品發(fā)布,每周都在重構(gòu)你的工具箱。
還有那些權(quán)衡取舍!所有的編程(就像所有的工程一樣)都關(guān)乎權(quán)衡。你可以用處理能力換取內(nèi)存,用時間換取完整性,用可靠性換取成本,用可維護(hù)性換取速度;調(diào)整上百個變量來打造出符合你需求的程序。
程序并非存在于真空中。程序旨在解決真實人群的真實問題,并以能轉(zhuǎn)化為實際產(chǎn)品和服務(wù)的方式呈現(xiàn)。程序員必須懂得如何定義問題,識別用戶需求,并以可理解、令人滿意的方式滿足它們,確保他們構(gòu)建的系統(tǒng)是可行的,并且能夠創(chuàng)造可行的業(yè)務(wù)。程序員編寫與用戶交互的程序,因此我們始終處于心理學(xué)、社會學(xué)以及它們與我們構(gòu)建的技術(shù)相互影響的前沿。
一個程序員在幾十年里學(xué)會的,是思考本身是如何運作的。如果你試圖將問題空間中的推理分解成一系列步驟,或者將其拆分以便不同部分能協(xié)同工作,或者想弄清楚哪些事物會隨著時間演變,那么房間里真的應(yīng)該有一位程序員。
這就是為什么編程,作為一門學(xué)科,在過去的半個世紀(jì)里已經(jīng)滲透到了幾乎每一個科學(xué)領(lǐng)域。程序員是設(shè)計者、架構(gòu)師和建造者,他們在所有領(lǐng)域都為解決問題注入了超強動力。
2 等等……編程真的需要人類嗎?
三年前,我結(jié)束了幾位高級工程師職位的候選人面試。在面試流程中,發(fā)現(xiàn)一些人——無論出于何種原因——就是沒有掌握在編程工作中取得成功所需的基本編程技能,這種情況并不少見。根據(jù)工作和候選人的具體情況,如果他們擁有強大的批判性思維或解決問題的能力,我們或許會稍微放寬要求,但發(fā)現(xiàn)這種情況仍然有點令人震驚。
在一連串的候選人失敗后,我頹然倒在辦公椅上,感嘆道:“為什么這些候選人在用編程解決這個基礎(chǔ)問題時都這么吃力!?”
我的同事覺得好笑,問道:“是什么問題?”我便向他描述了這個問題?!昂冒桑彼f,“……那么一個令人滿意的解決方案應(yīng)該以什么形式呈現(xiàn)呢?” 我轉(zhuǎn)過身,意識到他并不是真的要幫我提高面試技巧,他正在把我們剛獲得早期訪問權(quán)限的 OpenAI GPT3-Davinci playground 中輸入這個問題。敲了幾下鍵盤后,他提交了問題,然后完美無缺的 Python 答案就跳了出來。我看了看,它正確且高效。
我驚呆了。
于是,我讓他用另一種編程語言來解決。它做到了。
然后我讓他用不同的編程范式來解決。它也做到了。
接著,它不再等我們要求更多變體,而是開始自動打印出一系列其他語言的解決方案。
從那天起,我們在微軟的小團(tuán)隊就開始研究由 LLM 驅(qū)動的系統(tǒng)。起初我相信,正如業(yè)界在接下來兩年里逐漸意識到的那樣,單憑這項技術(shù)就足以在計算機(jī)技術(shù)觸及的幾乎每個領(lǐng)域提高生產(chǎn)力。但我也相信,要讓這些系統(tǒng)能夠解決不僅僅是玩具問題,還需要很長很長的時間。程序員日常使用的技能,對于一個文本補全神經(jīng)網(wǎng)絡(luò)功能來說,期望值實在是太高了。
我們一個接一個地解決問題。首先,它們的記憶窗口非常短,有點像注意力持續(xù)時間,于是我們開發(fā)了應(yīng)對的技術(shù)。然后,我們將系統(tǒng)連接到其他工具,賦予它們除了寫文本之外的更多能力。接著,我們著手讓這些系統(tǒng)能夠處理更長的連續(xù)操作鏈。下一步,我們研究如何將更大的任務(wù)分解成更小的任務(wù),并且仍然能取得進(jìn)展。然后,我們研究技術(shù)讓它們的結(jié)果更可衡量、更可靠。最終,我們致力于讓它們更具自省能力,能夠根據(jù)實時表現(xiàn)進(jìn)行自我調(diào)整。
在我們的研究過程中,模型的能力變得越來越強,生態(tài)系統(tǒng)也在不斷發(fā)展。一步步地,我們的系統(tǒng)從我們程序員手中接走了越來越多的工作。
今年春天,Anthropic 發(fā)布了 Claude Code,它包含了一些關(guān)鍵要素,真正讓我們的系統(tǒng)進(jìn)入了超速運轉(zhuǎn)狀態(tài)。
首先,它可以直接通過命令行與你的計算機(jī)交互,而不是像 ChatGPT 或 API 那樣被困在網(wǎng)頁應(yīng)用中。其次,他們以優(yōu)雅的方式整合了一些眾所周知的模式——任務(wù)分解、任務(wù)委派和工具調(diào)用(如網(wǎng)絡(luò)獲取和文件搜索)——這使得系統(tǒng)能夠以可靠的方式編排一系列任務(wù)。
今年我們一直在使用 Claude Code 這類工具,并且不斷提升我們 AI 系統(tǒng)的能力,以承擔(dān)更大型的任務(wù),具有更高的可靠性,運行更長時間。而所有這些,都沒有讓我覺得編程本身會變成歷史文物。
我們一直在將我們各種技術(shù)和實驗打包整合到 Claude Code 之上,有點把它當(dāng)作一個快速實驗平臺。我們能夠?qū)⒃S多來之不易的發(fā)現(xiàn)快速集成進(jìn)去。我們在 https://github.com/microsoft/amplifier 發(fā)布了一個早期原型,并將在接下來一兩周內(nèi)發(fā)布一個較新的版本,該版本是模型無關(guān)的(不運行在 Claude Code 上)。
這還不是那個能取代我作為程序員的東西,但它讓我確信,我們的時間線是以月為單位,而不是以年為單位。它已經(jīng)完成了困難的部分。
有了 Amplifier,你現(xiàn)在可以描述你想要什么,它就會為你構(gòu)建出來,從設(shè)計到后端,再到前端,包括測試,并且遵循你自己的編程理念。
但這還不是重點。重點是你用得越多,它就變得越好。隨著時間的推移,你會創(chuàng)建可重用的工具,它能捕捉有用的技術(shù)。它會從你對它的使用中學(xué)習(xí),建議改進(jìn)自身的方法。這是一種指數(shù)級的生產(chǎn)力,你構(gòu)建的東西能幫助你更快地制造東西。
在過去的一周里,我使用 Amplifier 檢查了兩個獨立的代碼庫,提取了我在其中一個代碼庫中正在開發(fā)的功能集,提出了三種可能將相同想法集成到另一個代碼庫的方式,并行實現(xiàn)了每一種方式,然后為我提供了一份關(guān)于哪些可行、哪些不可行的總結(jié)。我還用它來處理一組我一直在編寫的大量 bash 腳本,將它們轉(zhuǎn)換成了一個 Web 服務(wù) API、一個 Golang 命令行界面和一個完整的 Web 應(yīng)用前端。當(dāng)然,設(shè)置提示詞需要時間和程序員知識,但上述每一項任務(wù)都只需要向 Amplifier 發(fā)出大約三個提示。在每種情況下,Amplifier 都會運行 30 到 120 分鐘,然后帶著可工作的軟件回來,包括文檔。
與此同時,我們擴(kuò)展團(tuán)隊中的其他人用它構(gòu)建了十幾樣其他東西,包括新版本的 Amplifier、一個廣泛的評估框架,以及兩個不同的圖形化實驗桌面。
最讓我印象深刻的是一位設(shè)計師,他編程背景有限,設(shè)想了一種全新的方法,從期望的設(shè)計美學(xué)出發(fā),直達(dá)完整的設(shè)計框架,他借鑒了 Figma 和 Storybook 等其他工具組合中的想法和工作流,創(chuàng)建了一個全新的助手驅(qū)動的設(shè)計應(yīng)用程序,我估計這能讓他的生產(chǎn)力提升十倍。
上周,我們讓 Amplifier 處理一個有趣的項目,用于管理大型互連任務(wù)列表,然后它把這個功能集成到了自身之中,允許我的同事整夜持續(xù)運行它,自主完成幾十項任務(wù),甚至為他準(zhǔn)備了一份“晨間報告”,其中包含了各種組件的多種實現(xiàn)方式,以獲取他關(guān)于下一步該做什么的反饋。
這還不是最終產(chǎn)品,我們(以及整個行業(yè))還有很多工作要做。硬件和軟件制造商(驅(qū)動程序、核心庫、集成)將需要發(fā)布產(chǎn)品上下文供 AI 使用。我們將需要繼續(xù)發(fā)展并發(fā)布新的系統(tǒng)集成標(biāo)準(zhǔn)。但這是我第一次感覺到,困難的部分已經(jīng)完成了。從這里開始,機(jī)器直接按你的要求做事,而無需程序員從中協(xié)調(diào),已是清晰可見的前景。
3 可預(yù)見的未來會是什么樣子?
我上面提到的那個項目,把 bash 腳本變成 Web 應(yīng)用程序?實際上,整個開發(fā)過程都是在一個樹莓派微型電腦上運行的。我只需要在上面安裝 Amplifier,掛載舊的代碼庫,然后告訴它去創(chuàng)建所有其他項目。我從未碰過代碼,它已經(jīng)比我花好幾周時間自己做出來的要好了。
我計劃發(fā)布這個項目供他人使用,但你可以想象,使用相同的過程來構(gòu)建定制的、個性化的軟件,甚至無需分發(fā)它。我們不再需要下載和安裝軟件,我們將能夠直接告訴機(jī)器我們想要什么,它就會創(chuàng)造出來。想修改一些東西?添加新功能?做一個全新的應(yīng)用程序?只需開口要求。
我上面描述的所有編程技能,我花了一輩子時間掌握的技能,現(xiàn)在都可以通過像 Amplifier 這樣的工具,加上恰當(dāng)?shù)奶崾驹~來完成。最后一步就是將所有這些專業(yè)知識打包起來,交給 AI,然后任何沒有編程經(jīng)驗的人,都將能夠根據(jù)需要讓 AI 構(gòu)建他們所需的任何軟件。
那么現(xiàn)在該怎么辦?
我不介意把這描述為一次個人的存在主義危機(jī)。我的身份認(rèn)同中,確實有很大一部分是與“成為一名程序員”緊密相連的。我曾認(rèn)為找到正確的咒語讓機(jī)器做出神奇的事情是一種魔法。這是一種職業(yè)超能力。
那么,當(dāng)每個人都能施展魔法時,這意味著什么?我的超能力現(xiàn)在變成了……日常生活?我還能在決策桌上擁有一席之地嗎?這對我所追求的價值傳承又意味著什么?我們都希望想象我們一生所做的事情能超越我們自身而持續(xù)。但現(xiàn)在很清楚,我的職業(yè)生涯遺產(chǎn)將會是一種奇特的遺存……就像鐵匠,或抄寫員,或?qū)m廷弄臣。
但也許這比之前技術(shù)驅(qū)動的淘汰更奇怪。在以前的所有案例中,變得冗余的人能夠?qū)⑺麄冾I(lǐng)域知識和解決問題的技能提升,應(yīng)用到新事物上。鐵匠建造了鑄造廠。抄寫員變成了印刷商。弄臣變成了喜劇演員。他們繼續(xù)解決同樣的問題,通常規(guī)模更大,使用他們的新工具。
但是,當(dāng)解決問題本身變得過時時,我們該做什么?就在剛才,我停下來去讀了我的同事 Brian Krabach 關(guān)于他對此存在主義危機(jī)的文章。他六個月前就到了這個階段,但我當(dāng)時還不相信他。當(dāng)然,機(jī)器會取代一部分編程工作,但在可預(yù)見的未來,我們?nèi)匀恍枰绦騿T來讓機(jī)器做到這一點。Amplifier 每天都在明確地證明,我在時間線上錯了。
在他的文章中,他描述了他是如何在意識到取代程序員能讓他解脫出來,去做他作為程序員一直熱愛的事情——更快地解決更大的問題——中找到慰藉的。但我不太確定。識別問題和提出解決方案對我來說似乎一直是比較容易的部分。我在各種創(chuàng)新實驗室的經(jīng)歷告訴我,這些事情,也僅僅是可以被自動化的流程而已。
“但是機(jī)器無法獲取關(guān)于需要解決什么問題的數(shù)據(jù)!它們不知道我們面臨什么問題!” 當(dāng)然——直到我們讓它們編寫軟件來做這件事。
所以,是的。想到真正的問題——尤其是當(dāng)前最急需的社會層面問題——即將得到解決,確實有相當(dāng)?shù)奈拷?。我無疑會參與到其中許多問題中去。我只是需要努力接受一個事實:我的貢獻(xiàn)將不再主要依靠我辛苦獲得的編程技能。這些技能很快將觸手可及,只要能夠購買一些計算資源的人都能擁有。
4 小編結(jié)語
當(dāng) AI 編碼工具以其驚人的速度自動生成代碼時,一個隱憂也隨之浮現(xiàn):它可能在以更高效的方式,積累更龐大的“技術(shù)債”。這些由 AI 生成的代碼,或許在當(dāng)下能勉強運行,但卻可能缺乏整體的架構(gòu)設(shè)計、清晰的責(zé)任邊界與可維護(hù)的代碼風(fēng)格,如同一座用速干水泥匆忙砌起的高樓,看似迅速,卻暗藏結(jié)構(gòu)風(fēng)險。
但這也恰恰是彰顯人類工程師價值的關(guān)鍵所在。AI 精于“執(zhí)行”,卻疏于“謀劃”;長于“實現(xiàn)”,卻拙于“洞察”。它無法理解代碼背后復(fù)雜的業(yè)務(wù)上下文、難以權(quán)衡長遠(yuǎn)的技術(shù)選型、更無法為代碼的可維護(hù)性與團(tuán)隊協(xié)作負(fù)責(zé)。人類工程師所具備的系統(tǒng)性思維、架構(gòu)設(shè)計能力與對業(yè)務(wù)深度的理解,是預(yù)防和治理技術(shù)債的根本。
所以無需過于擔(dān)憂,AI 帶來的并非程序員的終結(jié),而是一次責(zé)任的升華。未來的工程師,將不再是純粹的“碼農(nóng)”,而是進(jìn)化成為 AI 的“規(guī)劃師”與“質(zhì)檢官”。他們的核心職責(zé),將從編寫每一行代碼,轉(zhuǎn)變?yōu)槎x清晰的需求、設(shè)計穩(wěn)健的架構(gòu)、審查 AI 的產(chǎn)出并進(jìn)行關(guān)鍵性的集成與決策。在 AI 高效卻可能盲目的 Coding 背后,更需要人類理性的、戰(zhàn)略性的思考來保駕護(hù)航。
【大數(shù)據(jù)從業(yè)者 & 企業(yè)決策者必看】《2025 騰訊云大數(shù)據(jù)年度精選技術(shù)實踐指南(上)》來了!對技術(shù)人而言,里面有 20 + 硬核技術(shù)解析,比如流湖引擎、TBDS 多模態(tài)統(tǒng)一元數(shù)據(jù)服務(wù),還有 Data+AI 融合趨勢前瞻,技術(shù)難題分分鐘有解;對企業(yè)決策者,多家實踐案例直擊數(shù)據(jù)處理效率低等痛點,像太平保險報表時效從小時級縮至分鐘級,助力企業(yè)提效~掃碼或點擊【閱讀原文】下載解鎖更多!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.