夜夜躁很很躁日日躁麻豆,精品人妻无码,制服丝袜国产精品,成人免费看www网址入口

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

AI兩周寫(xiě)出5000行Python項(xiàng)目,有幾分靠譜?40 年老程序員下場(chǎng)親測(cè)

0
分享至


Vibe Coding(氛圍編碼)的出現(xiàn),讓程序員不再需要逐行手寫(xiě)代碼,而是通過(guò)與大模型的來(lái)回對(duì)話(huà),把模糊的想法、半成型的設(shè)計(jì),甚至不夠明確的需求,逐步轉(zhuǎn)化為可運(yùn)行的軟件。

聽(tīng)起來(lái)很酷,但這種方式的流行,也讓不少程序員心頭一緊:難道自己要被取代了?

本文作者有著 40 年的編程經(jīng)驗(yàn),從 80 年代在 8 位機(jī)器上寫(xiě)匯編語(yǔ)言起步,先后用過(guò)二十多種語(yǔ)言,涉足過(guò)科學(xué)軟件、移動(dòng)應(yīng)用和商業(yè)系統(tǒng)。他在最初看到“氛圍編碼”這個(gè)趨勢(shì)時(shí),同樣感到焦慮。

于是,為了弄清這到底是威脅還是真機(jī)遇,他親自做了一個(gè)實(shí)驗(yàn)——讓 AI 來(lái)寫(xiě)一個(gè)小型項(xiàng)目:用 Python 實(shí)現(xiàn),大約 5000 行代碼、50 個(gè)文件、20 個(gè)類(lèi),最終得出如下的心路歷程,我們不妨來(lái)看看。

作者 | Marco Benedetti 責(zé)編 | 蘇宓

出品 | CSDN(ID:CSDNnews)

想必不少程序員都聽(tīng)說(shuō)過(guò)“Vibe Coding”(氛圍編碼)這個(gè)詞:簡(jiǎn)而言之,就是讓 AI 助手負(fù)責(zé)代碼的編寫(xiě)、重構(gòu)和調(diào)試,而你只管盯著自己想構(gòu)建的東西即可。換句話(huà)說(shuō),寫(xiě)代碼這事兒可以和 AI 一起干,甚至完全交給一個(gè)專(zhuān)門(mén)為此訓(xùn)練的大模型智能體。

作為一個(gè)寫(xiě)了幾十年代碼的老程序員,我對(duì)這事兒既好奇又有點(diǎn)發(fā)怵——難道說(shuō)“計(jì)算機(jī)編程的藝術(shù)”,以后不再是藝術(shù)了,而是由聰明的“機(jī)器人”在流水線(xiàn)上批量生產(chǎn)?

為了搞明白,我決定親自試試,做一次小型實(shí)驗(yàn):在兩周時(shí)間里,用大概 40 個(gè)小時(shí),借助最新的 AI 編程助手開(kāi)發(fā)一個(gè)小型軟件項(xiàng)目。這個(gè)項(xiàng)目是用 Python 寫(xiě)的,大約 5000 行代碼、50 個(gè)文件、20 個(gè)類(lèi)。

主題也挺有意思的:用教科書(shū)里講的那些標(biāo)準(zhǔn) AI 搜索算法,去解決教科書(shū)里常見(jiàn)的經(jīng)典 AI 難題。

接下來(lái)就是我在這個(gè) AI 輔助編程實(shí)驗(yàn)里的過(guò)程、收獲和感受。最終成果你能在 GitHub 上看到:https://github.com/mabene/vibe。


在這里,我也做一下自我介紹:我有 40 年寫(xiě)代碼的經(jīng)驗(yàn),從 80 年代的 8 位機(jī)器上編寫(xiě)匯編語(yǔ)言干起,多年來(lái)使用過(guò) 20 種編程語(yǔ)言,并且做過(guò)科學(xué)軟件、移動(dòng)應(yīng)用和商業(yè)系統(tǒng),期間既有獨(dú)立開(kāi)發(fā),也有與團(tuán)隊(duì)合作。此外,并且我還拿過(guò)人工智能博士學(xué)位(那是 LLM 之前的年代)。

所以你看,這就有點(diǎn)意思了:一個(gè) AI 老手,用 AI 助手寫(xiě) AI 代碼!套娃一樣的感覺(jué),不知道會(huì)不會(huì)蹦出點(diǎn)意外的火花……


軟件的功能,以及它是如何開(kāi)發(fā)的?

我用 Python 開(kāi)發(fā)了一個(gè)靈活的、帶有教學(xué)意義的漢諾塔解題器

如果你是程序員、謎題愛(ài)好者、計(jì)算機(jī)科學(xué)家,大概率已經(jīng)知道漢諾塔是什么了;如果沒(méi)聽(tīng)過(guò),那我也稍微解釋一下,漢諾塔是一個(gè)根據(jù)傳說(shuō)形成的數(shù)學(xué)謎題,要求按照特定規(guī)則把盤(pán)子從一個(gè)柱子移到另一個(gè)柱子。維基百科給出的示例如下:

有三根桿子A,B,C。A桿上有 N 個(gè) (N>1) 穿孔圓盤(pán),盤(pán)的尺寸由下到上依次變小。要求按下列規(guī)則將所有圓盤(pán)移至 C 桿:

  1. 每次只能移動(dòng)一個(gè)圓盤(pán);

  2. 大盤(pán)不能疊在小盤(pán)上面。

可將圓盤(pán)臨時(shí)置于 B 桿,也可將從 A 桿移出的圓盤(pán)重新移回 A 桿,但都必須遵循上述兩條規(guī)則。

問(wèn)題為:應(yīng)該以何種方式移動(dòng)?最少要移動(dòng)多少次?


隨著盤(pán)子數(shù)量增加,謎題的最短解法會(huì)呈“爆炸式”增長(zhǎng)。對(duì)人類(lèi)來(lái)說(shuō)幾乎不可想象,但對(duì)機(jī)器來(lái)說(shuō)卻很“簡(jiǎn)單”——用專(zhuān)門(mén)或通用的搜索算法就能構(gòu)造出來(lái)。

本文展示的解題器實(shí)現(xiàn)了其中一些算法。它不僅能解決經(jīng)典版本的漢諾塔,還能處理廣義版本,包括 (a) 任意的起始和目標(biāo)配置,(b) 一次能搬多個(gè)盤(pán)子的情況。

我實(shí)現(xiàn)的搜索算法涵蓋了從經(jīng)典的遞歸和廣度優(yōu)先搜索,到深度優(yōu)先、迭代加深、A* 搜索、貪心最佳優(yōu)先、雙向 BFS 等等——既有最優(yōu)的,也有非最優(yōu)的策略。

這個(gè)算法核心被嵌入到一個(gè) Python 腳本中:它有直觀(guān)的命令行語(yǔ)法,可以逐步可視化解法,可以對(duì)不同方法進(jìn)行性能測(cè)試,還能處理經(jīng)典、自定義、以及隨機(jī)的起始/終止配置。

雖然漢諾塔是一個(gè)傳統(tǒng)的、教材級(jí)的經(jīng)典問(wèn)題,但這份實(shí)現(xiàn)是完全從零開(kāi)始寫(xiě)的——包括數(shù)據(jù)結(jié)構(gòu)和算法。代碼是在多個(gè) AI 助手的協(xié)作下生成的(詳見(jiàn)后文)。沒(méi)有任何一行代碼或文檔是人類(lèi)程序員直接寫(xiě)的。相反,開(kāi)發(fā)過(guò)程更像是一場(chǎng)長(zhǎng)時(shí)間的實(shí)時(shí)技術(shù)對(duì)話(huà):我用英文和 AI 助手們?cè)?Cursor(一個(gè)面向開(kāi)發(fā)者的 AI 驅(qū)動(dòng) IDE)里進(jìn)行結(jié)對(duì)編程。

總共進(jìn)行了 300 多次人機(jī)交互,大約耗時(shí) 40 小時(shí)。如果算下來(lái),平均每次交互 8 分鐘;但實(shí)際對(duì)話(huà)的速度要快得多——我大部分時(shí)間都花在評(píng)估和審查 AI 助手的輸出上。


這些 AI 助手到底有多強(qiáng)?

開(kāi)門(mén)見(jiàn)山說(shuō)吧:我真的被這些 AI 助手的理解力震撼到了——既懂代碼,也懂自然語(yǔ)言指令,能力簡(jiǎn)直驚人。

好幾次我在輸入提示后心里想……也許我表達(dá)得不夠清楚……結(jié)果助手不僅完全理解,還能補(bǔ)全我邏輯或表述上的缺失,然后把我的意思解釋得比我自己還清楚。

在 Python 編程語(yǔ)言的掌握上,它們的水平顯然超越普通的程序員:無(wú)論是生成的準(zhǔn)確度、速度、語(yǔ)法和語(yǔ)義的地道性、對(duì)標(biāo)準(zhǔn)與非標(biāo)準(zhǔn)庫(kù)的精準(zhǔn)調(diào)用,還是其他方面。

和這些編程助手的對(duì)話(huà)中經(jīng)常閃現(xiàn)出看似“真正智慧”的火花,甚至超越了編程本身。比如,我問(wèn)代碼是否應(yīng)該對(duì)無(wú)解的問(wèn)題拋出異常,結(jié)果 AI 助手證明了這個(gè)問(wèn)題不存在“無(wú)解”:所有(隨機(jī)生成的)謎題都有解。

AI 通過(guò)把問(wèn)題映射到圖空間,然后用反證法推理得出這一結(jié)論,還帶著完整的思路鏈。我不認(rèn)為這是模型在訓(xùn)練時(shí)集中“背誦”出來(lái)的(雖然我沒(méi)去核查)。我當(dāng)時(shí)正好在手工草擬同樣的證明,可能需要 10 分鐘;AI 助手 30 秒就寫(xiě)完并落下 “QED”。我又花了 30 秒讀完并信服——直接省下 9 分鐘,這還是一個(gè)純粹的智力型、非平凡的任務(wù)!

此外,我也不得不承認(rèn),有幾次在一些簡(jiǎn)單的算法細(xì)節(jié)上被 AI 助手抓了現(xiàn)行……說(shuō)實(shí)話(huà)有點(diǎn)尷尬,但也挺輕松的,因?yàn)檫@些工具完全沒(méi)有評(píng)判意味,反而讓人覺(jué)得很自在、很解放。


等等……你說(shuō)的到底是哪款 AI 編程助手?

對(duì)了——并不是所有 AI 編程助手都一樣。我曾嘗試過(guò)三款大模型產(chǎn)品,它們?cè)?2025 年 7 月時(shí)都算是最頂尖的一類(lèi):OpenAI 的o3、Anthropic 的Claude Sonnet 4,以及 Google 的Gemini Pro 2.5。

我使用o3的時(shí)間很短。后來(lái)我發(fā)現(xiàn),我更喜歡把 o3 當(dāng)成“AI 助手”,不是讓它直接寫(xiě)代碼,而是用來(lái)查參考資料、驗(yàn)證算法性質(zhì)、解答語(yǔ)言語(yǔ)義問(wèn)題、生成修復(fù)/清理代碼的腳本、畫(huà)圖,以及對(duì)一些事情給出第二意見(jiàn)——包括本文本身。結(jié)果證明它在這些方面都非常出色。

之后我因?yàn)橐淮涡〔迩既婚g轉(zhuǎn)向了 Gemini:在某次會(huì)話(huà)里,我讓它寫(xiě)一個(gè)帶點(diǎn)圖靈機(jī)風(fēng)格的小程序,讀取紙帶來(lái)判斷帶上的符號(hào)是否在不同進(jìn)制下表示同一個(gè)整數(shù)。這是個(gè)很懷舊的任務(wù),讓最前沿的 AI 去處理,感覺(jué)像是回到人工智能之父當(dāng)年關(guān)于計(jì)算的思想實(shí)驗(yàn)。總之,我發(fā)現(xiàn) Gemini 的輸出結(jié)果中文字表述很吸引人,代碼也很靠譜。于是我開(kāi)始用 Google 的助手來(lái)推進(jìn)漢諾塔項(xiàng)目。根據(jù)輸入輸出的 token 統(tǒng)計(jì),大約有 15% 的項(xiàng)目?jī)?nèi)容來(lái)自 Gemini(主要是初始搭建和早期實(shí)現(xiàn))。

但后來(lái),出于好奇,我試了 Claude ——結(jié)果立刻感受到一種更深層的理解力、洞察力和互動(dòng)感,無(wú)論是在處理代碼還是在與我對(duì)話(huà)的方式上。于是我堅(jiān)持了使用 Claude 并用它完成了后續(xù)整個(gè)開(kāi)發(fā)過(guò)程。比如我前面提到的那個(gè)例子:AI 助手沒(méi)有往代碼里硬塞一個(gè)毫無(wú)意義的異常,而是證明了“無(wú)解情況根本不存在”——這就是典型的 Sonnet 風(fēng)格。

后來(lái)我在網(wǎng)上閑逛時(shí)發(fā)現(xiàn),我并不是唯一一個(gè)覺(jué)得 Claude Sonnet 4 在復(fù)雜編程任務(wù)中非常好用的人。(Claude 4 Opus 的能力確實(shí)比 Sonnet 更強(qiáng),但運(yùn)行成本很高——對(duì)這種規(guī)模和復(fù)雜度的軟件來(lái)說(shuō)可能有點(diǎn)大材小用。所以我省下了錢(qián),安心地用上了 Sonnet。)


關(guān)于代碼的對(duì)話(huà)

你和這些 AI 助手的對(duì)話(huà)方式,就好像它們不是機(jī)器,而是博學(xué)多識(shí)、速度飛快、略帶點(diǎn)“神經(jīng)多樣性思維”,還很會(huì)奉承的人類(lèi)程序員。對(duì)話(huà)的抽象層次相當(dāng)高,更多是在“思想”領(lǐng)域,而不是停留在代碼原語(yǔ)的層面。舉個(gè)例子:

[我]在下面這樣的運(yùn)行中,如果某個(gè)解題器在某個(gè)實(shí)例上超時(shí)了,那么這個(gè)實(shí)例的運(yùn)行時(shí)間會(huì)被算作零,而且根本不被計(jì)入統(tǒng)計(jì);這給了弱解題器不公平的優(yōu)勢(shì),也扭曲了結(jié)果。我認(rèn)為正確的做法是:如果至少有一個(gè)解題器在至少一個(gè)實(shí)例上超時(shí),就應(yīng)該新增一列“Timeouts”,顯示每個(gè)解題器超時(shí)的次數(shù);而且該實(shí)例不應(yīng)該算作零時(shí)間,而是算作“超時(shí)時(shí)間”,比如這里就是 5 秒:

[這里復(fù)制粘貼了幾 KB 的輸出日志和表格統(tǒng)計(jì),用來(lái)說(shuō)明我的觀(guān)點(diǎn)]

[Claude]你說(shuō)得完全正確!這確實(shí)是超時(shí)處理方式中的一個(gè)嚴(yán)重問(wèn)題?,F(xiàn)在算法一旦超時(shí),就被排除在時(shí)間統(tǒng)計(jì)之外,這確實(shí)會(huì)導(dǎo)致性能表現(xiàn)被誤導(dǎo)。讓我看看超時(shí)處理的代碼,把這個(gè)問(wèn)題修復(fù)掉。

[接著是一大段推理,修改了 4 個(gè)文件,生成了新代碼,跑了測(cè)試;我檢查一切,結(jié)果完全符合預(yù)期]

在這樣的對(duì)話(huà)里,看著代碼逐漸成長(zhǎng)和改進(jìn),你會(huì)意識(shí)到,與這些 AI 助手的交流是充實(shí)的、投入的、具有挑戰(zhàn)性的,同時(shí)也很有成就感。你會(huì)進(jìn)入程序員常說(shuō)的“心流狀態(tài)”——全神貫注地把腦海里的想法實(shí)現(xiàn)出來(lái)——但這次不是在直接寫(xiě)代碼,而是在更抽象、更概念化的層面上。

過(guò)一陣子,你就會(huì)摸索出如何和這些機(jī)器“對(duì)話(huà)得好”。令人意外的是,秘訣和和人類(lèi)交流是一樣的:學(xué)會(huì)成為一個(gè)好的傾聽(tīng)者,學(xué)會(huì)成為一個(gè)會(huì)提好問(wèn)題的人。

具體來(lái)說(shuō),你得練出兩方面的功力:

  1. 掌握提問(wèn)/建議/提示的技巧——看來(lái)“提示工程”之所以成為一個(gè)學(xué)科是有原因的。統(tǒng)計(jì)學(xué)家可能會(huì)說(shuō):概率分布如此微妙復(fù)雜,好的先驗(yàn)是有意義的密度估計(jì)的前提。我不是統(tǒng)計(jì)學(xué)家,我更喜歡王爾德的說(shuō)法:“問(wèn)題從來(lái)不會(huì)失禮,答案有時(shí)候才會(huì)。”

  2. 掌握思考、解析、理解、反推、塑造和修正答案的技巧。一個(gè)好的傾聽(tīng)者——AI 輔助的軟件開(kāi)發(fā)者——就是能仔細(xì)聽(tīng),欣賞對(duì)方說(shuō)的每一句話(huà),但絕不盲信任何一句話(huà)的人。

這讓 Knuth 提出的“文學(xué)化編程”有了全新的含義。以前的意思是:在代碼里把自然語(yǔ)言的說(shuō)明和對(duì)應(yīng)的程序?qū)崿F(xiàn)交織在一起,好像在一張代碼頁(yè)面里寫(xiě)故事。而現(xiàn)在,用 AI 助手寫(xiě)代碼更像是在時(shí)間維度上對(duì)話(huà)——你先說(shuō)想法,AI 給你實(shí)現(xiàn),然后再來(lái)回修正。最后寫(xiě)成的“故事”,其實(shí)只有一半是你寫(xiě)的,另一半是 AI 補(bǔ)上的。


AI 的缺陷、錯(cuò)誤與偏差

這些工具遠(yuǎn)非完美:它們(悄無(wú)聲息地)會(huì)犯各種錯(cuò)誤,大小不一。大約 300 次與 AI 的代碼交互中,有大約 20% 的時(shí)間花在反復(fù)修正不理想的輸出,或修補(bǔ) AI 自己引入的問(wèn)題上。

以下是我在這個(gè)小項(xiàng)目中遇到的一些問(wèn)題示例。

不得不提醒一句:下面的代碼問(wèn)題示例有些技術(shù)性,如果你不是開(kāi)發(fā)者或擁有計(jì)算機(jī)科學(xué)背景,可能會(huì)覺(jué)得有點(diǎn)晦澀難懂……我來(lái)概括一下重點(diǎn):

  • 60% 的問(wèn)題其實(shí)就是“瑕疵”——AI 給出的結(jié)果(幾乎)一眼就能看出不是你想要的、不夠好、或者稍微跑偏了。要花不少時(shí)間反復(fù)迭代才能改對(duì)。通常這個(gè)“辯證過(guò)程”還是比全手寫(xiě)要快,但也不是總是如此。

  • 另外 40% 的問(wèn)題則更隱蔽:AI 給的代碼表面看起來(lái)沒(méi)問(wèn)題,運(yùn)行也正常,但仔細(xì)分析后才發(fā)現(xiàn)有重大漏洞,需要大幅修改(前提是你有耐心和能力去分析和發(fā)現(xiàn)問(wèn)題)。

具體來(lái)說(shuō):

“瑕疵”類(lèi)問(wèn)題(不完全列舉):

  • 提出過(guò)度復(fù)雜的重構(gòu)方案:10 個(gè)類(lèi),功能含糊不清,還號(hào)稱(chēng)是為了“簡(jiǎn)化”一個(gè)類(lèi);

  • 完全忽視并發(fā)與并行的區(qū)別,寫(xiě)出完全不是我想要的東西;

  • 生成成千上萬(wàn)行樣板代碼文件,人類(lèi)根本難以閱讀;

  • 在復(fù)雜重構(gòu)中迷失方向(有時(shí)干脆放棄,還會(huì)為“搞砸了”道歉);

  • 命名過(guò)于繁瑣、冗長(zhǎng),看似規(guī)范卻不夠貼切,常常需要改;

  • 自作主張刪掉整段代碼或功能,只因?yàn)檫@樣最容易解決難題(好在能恢復(fù));

  • 無(wú)緣無(wú)故在多個(gè)文件里復(fù)制粘貼同樣的代碼;

  • 忘了清理掉被新代碼替換掉的舊代碼;

  • 沒(méi)能發(fā)現(xiàn)自己引入的命名不一致;

  • 在性能敏感場(chǎng)景中推薦用多進(jìn)程 + IPC,而我們剛討論過(guò)只有多線(xiàn)程才可能避免同步開(kāi)銷(xiāo);

  • 用同一個(gè)實(shí)例重復(fù)解好多次,還聲稱(chēng)這是“隨機(jī)實(shí)例族”的統(tǒng)計(jì)結(jié)果;

  • 輸出時(shí)胡亂匯總,明明是一個(gè)實(shí)例的解,卻當(dāng)成全族實(shí)例的解來(lái)報(bào);

  • 觸發(fā)大規(guī)模重構(gòu),把代碼改成復(fù)雜的包結(jié)構(gòu) + 相對(duì)導(dǎo)入,而其實(shí)只需要簡(jiǎn)單的文件重命名來(lái)符合 PEP 8。

“錯(cuò)誤”類(lèi)(不完全列舉):

  • 莫名其妙地把中間柱和右柱搞混,導(dǎo)致代碼出錯(cuò);

  • 寫(xiě)的單元測(cè)試能通過(guò),只是因?yàn)樗苯臃祷亓?True;

  • 把非最優(yōu)算法硬說(shuō)成“最優(yōu)解”,直到后來(lái)我才發(fā)現(xiàn)漏洞;

  • 堅(jiān)稱(chēng)某個(gè)更新已經(jīng)完成并通過(guò)測(cè)試,實(shí)際上并沒(méi)有;

  • 假裝刪除某個(gè)功能,只是把輸出信息隱藏了,底層邏輯還在;

  • 幾次編輯后引入隱性回歸 bug;

  • 把不合格的啟發(fā)式方法當(dāng)作 A* 的 admissible heuristic,破壞了最優(yōu)性;

  • 把超時(shí)或失敗的實(shí)例算作“零時(shí)間解出”,直接污染了統(tǒng)計(jì)結(jié)果。

這些例子可以寫(xiě)很長(zhǎng),這里只是冰山一角。

我還注意到一個(gè)普遍規(guī)律是:AI 助手(大多訓(xùn)練于工業(yè)級(jí)大規(guī)模代碼庫(kù))傾向于給出“工業(yè)級(jí)”解決方案,而不考慮上下文。比如,我的代碼里充斥著類(lèi)型注解,從簡(jiǎn)單參數(shù)到復(fù)雜的泛型結(jié)構(gòu)(tuple[tuple[int,…],…] 這種),對(duì)教學(xué)項(xiàng)目來(lái)說(shuō)完全是累贅,既增加負(fù)擔(dān)又降低可讀性。

另一個(gè)現(xiàn)象是 AI 有“取悅 lint 工具和靜態(tài)分析工具”的偏好,即便這樣做會(huì)讓代碼更復(fù)雜,卻并沒(méi)有提升可讀性或功能。換句話(huà)說(shuō),我反復(fù)發(fā)現(xiàn) AI 在“過(guò)度優(yōu)化風(fēng)格”,反而犧牲了代碼的清晰度與功能實(shí)現(xiàn)。


使用時(shí)要“有所保留”

總的來(lái)說(shuō),我的感覺(jué)是:如果想真正掌控自己的代碼,必須認(rèn)真檢查 AI 寫(xiě)的每一行。大多數(shù) AI 生成的內(nèi)容都漂亮、幾乎完美,但剩下的一部分可能會(huì)在你不注意時(shí),悄悄把項(xiàng)目帶偏。

你還得牢牢把控項(xiàng)目走向,否則容易被 AI 引入的“工業(yè)級(jí)”數(shù)據(jù)結(jié)構(gòu)和最佳實(shí)踐綁架,讓代碼逐漸變得生硬、失色。

此外,AI 對(duì)“多”“少”“正?!薄皹O端”等概念完全沒(méi)有常識(shí)。比如它解決 3 盤(pán)漢諾塔問(wèn)題時(shí)因?yàn)?bug 用掉了 3.5GB 內(nèi)存,還一臉輕松地說(shuō)一切正常,可以繼續(xù)開(kāi)發(fā)新功能。


生產(chǎn)力提升

一開(kāi)始我懷疑:自然語(yǔ)言這種模棱兩可的方式,能作為編程工具嗎?結(jié)果證明我的擔(dān)心是多余的:基于 LLM 的 AI 編程助手非常有用、強(qiáng)大,還能真正給人帶來(lái)能量。

但它們只有在你清楚自己在做什么、能檢查和糾正 AI 行為時(shí),才是安全和可靠的。說(shuō)到底,能不能信任 AI,取決于你能不能信任自己。

生產(chǎn)力的提升毋庸置疑:某些任務(wù)能輕松提速 10 倍到 100 倍,比如寫(xiě)文檔、寫(xiě)單測(cè)、做中小型重構(gòu)、寫(xiě)錯(cuò)誤信息和異常捕獲、檢查代碼一致性、實(shí)現(xiàn)教材里的標(biāo)準(zhǔn)算法/數(shù)據(jù)結(jié)構(gòu)、生成樣板代碼等等。

當(dāng)然,也有少數(shù)場(chǎng)景下反而拖慢速度,比如當(dāng)你堅(jiān)持用自然語(yǔ)言解釋需求,而不是自己寫(xiě)代碼時(shí)。但我故意這樣做,是為了測(cè)試“全英文元編程”的可行性。

綜合來(lái)看,我的效率大約提升了一倍(2X),雖然我的工作方式本來(lái)就不高效。這已經(jīng)非??捎^(guān)了。AI 生成的代碼在一些方面比我寫(xiě)的更好,在另一些方面更差,但整體水平相當(dāng)。

不過(guò)有一點(diǎn):如果你是完美主義者,代碼永遠(yuǎn)不會(huì)看起來(lái)夠好——無(wú)論是你親手寫(xiě),還是 AI 替你寫(xiě)。這個(gè)實(shí)驗(yàn)的項(xiàng)目,我也很清楚仍然有不少重構(gòu)和改進(jìn)空間,但當(dāng)我感覺(jué)“繼續(xù)投入的時(shí)間回報(bào)已經(jīng)遞減”時(shí),我就停下了。

至少,我覺(jué)得是我決定的……也可能是 AI 求我“別再改了”?


非開(kāi)發(fā)者借助 AI 寫(xiě)代碼,那開(kāi)發(fā)者還有用嗎?

那生產(chǎn)力提升對(duì)個(gè)人和團(tuán)隊(duì)意味著什么?會(huì)不會(huì)真讓一大批程序員下崗?

我沒(méi)有確定答案,只能隨便說(shuō)幾點(diǎn):

  • 如果項(xiàng)目 90% 都是標(biāo)準(zhǔn)化、樣板化的東西,AI 確實(shí)能幫你把時(shí)間縮短到原來(lái)的 1/10;

  • 如果是高智力密度、關(guān)鍵任務(wù)的代碼,用小眾語(yǔ)言寫(xiě),AI 省下的時(shí)間就幾乎可以忽略;

  • 兩種情況下都需要優(yōu)秀程序員盯著,才能防止 AI 悄悄塞進(jìn)一些細(xì)微的問(wèn)題。關(guān)鍵軟件依然需要大量人力;

  • AI 生成的代碼太快太多,檢查深層 bug 變成艱巨任務(wù);

  • 人類(lèi)普遍懶惰,很容易放松警惕,把信任交給機(jī)器。等發(fā)現(xiàn)技術(shù)債和 bug 積累時(shí),可能需要大量資深程序員“救火”;

  • 一個(gè)程序員可以檢查自己寫(xiě)的代碼,但檢查一名“AI 輔助程序員”的產(chǎn)出,往往需要多名程序員。和“AI 提高生產(chǎn)力”的敘事相反,這可能增加團(tuán)隊(duì)成本(當(dāng)然,也許可以用別的 AI 來(lái)檢查代碼,不過(guò)那就進(jìn)入“黑箱套娃”了);

  • AI 不只幫你干臟活累活,還能輔助想法探索、架構(gòu)實(shí)驗(yàn)、語(yǔ)言遷移等工作,連資深開(kāi)發(fā)者也能受益;

  • 與 AI 深度互動(dòng)是巨大的學(xué)習(xí)機(jī)會(huì),你會(huì)學(xué)到更多、更快;

  • 有研究說(shuō)寫(xiě)作時(shí)過(guò)度依賴(lài) AI 會(huì)導(dǎo)致“認(rèn)知債務(wù)”,大腦活動(dòng)和記憶力下降。編程或許也有類(lèi)似風(fēng)險(xiǎn):你可能越來(lái)越擅長(zhǎng)“提示 AI”,但忘了怎么自己寫(xiě)代碼。最終能不能提升就業(yè)力,取決于你是否同時(shí)愿意培養(yǎng)“會(huì)寫(xiě)代碼”與“會(huì)對(duì)話(huà)”這兩種能力。


實(shí)驗(yàn)的局限性

這次人機(jī)配合寫(xiě)代碼的實(shí)驗(yàn)(也有人叫它“對(duì)話(huà)式編程”或者“自然語(yǔ)言編程”),其實(shí)不能代表所有人用 AI 寫(xiě)代碼的方式。

先說(shuō)清楚,這是我第一次嘗試所謂的 vibe coding,所以完全是新手體驗(yàn),也帶著一些很個(gè)人化的偏差。換句話(huà)說(shuō),我得出的結(jié)論只能當(dāng)成一個(gè)“菜鳥(niǎo)的親身經(jīng)歷”,不能當(dāng)成全面的總結(jié)。

比如說(shuō),我?guī)缀鯖](méi)用版本控制和 GitHub;也沒(méi)有后臺(tái)代理在同步更新代碼庫(kù),或等我發(fā) PR 審批;也沒(méi)用什么復(fù)雜的智能體功能;更沒(méi)有多模態(tài)交互(比如讓 AI 看圖或看圖表);項(xiàng)目里也沒(méi)有涉及高難度的全棧開(kāi)發(fā)。

我只挑了自己比較熟悉的一門(mén)語(yǔ)言,這門(mén)語(yǔ)言相對(duì)穩(wěn)定,不管大版本升級(jí)還是兼容性都比較靠譜,而且很可能在這些 AI 模型的訓(xùn)練數(shù)據(jù)里出現(xiàn)過(guò)不少。還有,我也沒(méi)用什么復(fù)雜的“上下文協(xié)議”之類(lèi)的花活。

再加上,這就是一個(gè)很小的、離線(xiàn)的、命令行風(fēng)格的獨(dú)立小項(xiàng)目(大概 5000 行代碼,50 個(gè)文件,20 個(gè)類(lèi)),和大多數(shù)人會(huì)用前沿 AI 來(lái)做的項(xiàng)目規(guī)模都不一樣。而且我也沒(méi)研究過(guò)“團(tuán)隊(duì)開(kāi)發(fā)時(shí)怎么和 AI 合作”,只研究了一個(gè)人單打獨(dú)斗的情況。

還有一點(diǎn),我這次實(shí)驗(yàn)里一行代碼都沒(méi)親手寫(xiě)過(guò)——可是真實(shí)的 AI 協(xié)作項(xiàng)目里,很多情況可能是“自己寫(xiě)比和 AI 解釋半天更快”,那我肯定就會(huì)直接寫(xiě)了。這種“完全把寫(xiě)代碼交給 AI”的自我限制,讓我的體驗(yàn)和真實(shí)開(kāi)發(fā)場(chǎng)景有很大區(qū)別。

最后一個(gè)很關(guān)鍵的點(diǎn):在計(jì)算機(jī)科學(xué)(甚至整個(gè)科研領(lǐng)域)里,經(jīng)常會(huì)講實(shí)驗(yàn)結(jié)果的可復(fù)現(xiàn)性。但問(wèn)題是,我用的是概率模型,同一個(gè)提示幾乎不會(huì)給出一模一樣的結(jié)果。更何況,我用的還是封閉的商用前沿模型,它們是閉源的,訓(xùn)練數(shù)據(jù)、模型參數(shù)、架構(gòu)細(xì)節(jié)都不會(huì)公開(kāi),而且還會(huì)頻繁更新。

除此之外,我是在 Cursor 這個(gè)工具里做實(shí)驗(yàn)的,它會(huì)在我看不到的情況下,往 Claude(或者別的模型)前面加一些額外的提示詞,把它變成一個(gè)所謂的“思考版”。這可能意味著它在后臺(tái)調(diào)了更大的上下文、更高的算力、更高的溫度、更長(zhǎng)的 token、甚至加了一些工具推理、多步鏈條之類(lèi)的增強(qiáng)。但具體怎么做,我完全不清楚。

所以說(shuō)……我這次做的這些,其實(shí)完全沒(méi)法真正復(fù)現(xiàn)。(就像現(xiàn)在整個(gè)大模型時(shí)代的 AI 研究一樣,行業(yè)驅(qū)動(dòng)、多變、封閉,復(fù)現(xiàn)性幾乎談不上。)


心理層面

當(dāng)我最開(kāi)始看到各種報(bào)道,說(shuō) Vibe coding 有多神,沒(méi)經(jīng)驗(yàn)的人幾小時(shí)就能寫(xiě)出能跑的網(wǎng)頁(yè)和游戲,開(kāi)發(fā)者要滅絕了,人類(lèi)寫(xiě)代碼會(huì)消失,我真的挺難過(guò)的,甚至有點(diǎn)被剝奪感。

我自己現(xiàn)在已經(jīng)不算是專(zhuān)業(yè)開(kāi)發(fā)者了,所以就算這事是真的,也不會(huì)直接砸到我頭上。但問(wèn)題是,我花了將近 40 年時(shí)間,一點(diǎn)點(diǎn)琢磨怎么寫(xiě)好代碼,在無(wú)數(shù)種語(yǔ)言里折騰過(guò),出于各種理由寫(xiě)過(guò)代碼,過(guò)程本身也很有樂(lè)趣。結(jié)果突然被告知“寫(xiě)代碼這活你們?nèi)祟?lèi)要被淘汰了”,那感覺(jué)就像一個(gè)退休的旅行社員工,一覺(jué)醒來(lái)發(fā)現(xiàn)大家都只用 Expedia 和 Booking 訂票,沒(méi)人再需要人工服務(wù)了。

但在自己真的試了幾周 vibe coding 之后,我不再相信這種單一、灰暗的說(shuō)法。

首先,vibe coding 依然能帶來(lái)和傳統(tǒng)寫(xiě)代碼一樣的“心流”體驗(yàn)。其次,你會(huì)感覺(jué)身邊多了個(gè)超級(jí)強(qiáng)的助手,幾乎能聽(tīng)懂你大部分想法,還隨時(shí)隨地樂(lè)意幫忙,這種速度和動(dòng)力,讓項(xiàng)目推進(jìn)得比單打獨(dú)斗快得多,那種效率真讓人心里發(fā)顫。再者,只要你抱著謙虛的態(tài)度去和 AI 合作,你會(huì)發(fā)現(xiàn)光是看它產(chǎn)出的代碼,就能學(xué)到一大堆東西;而且你隨口一問(wèn),它就能告訴你最佳的庫(kù)函數(shù)、合適的代碼模式,甚至冷門(mén)函數(shù)的文檔,而不用再在網(wǎng)上苦苦翻半天。

所以說(shuō),擁有這么強(qiáng)大的 AI 助手,并不會(huì)帶來(lái)負(fù)面心理影響,反而有很多正面作用。當(dāng)然,也有些別扭:比如我經(jīng)常搞不清楚,到底是誰(shuí)寫(xiě)了代碼?代碼里那些 bug 又該算誰(shuí)的?還有那種全新且陌生的拉扯感——“要不要直接相信 AI 寫(xiě)的代碼”(這樣更快,但少了參與感),還是“得搞懂它寫(xiě)的代碼”(雖然慢,但更有滿(mǎn)足感、也更吸引人,至少對(duì)我來(lái)說(shuō)是這樣)。

有時(shí)候,我也會(huì)察覺(jué)到自己在過(guò)度干預(yù)代碼的寫(xiě)法,可能只是因?yàn)橄胝瓶厝??或者純粹好玩?抑或是單純覺(jué)得代碼本身的形狀、結(jié)構(gòu)和風(fēng)格該優(yōu)雅、該符合我的個(gè)人審美?但理智上我也知道,如果只看最終效果,大多數(shù)情況下,AI 助手幾秒鐘就能寫(xiě)出一樣(甚至更好)的功能,輸入輸出都沒(méi)問(wèn)題,只是內(nèi)部結(jié)構(gòu)可能顯得有點(diǎn)“陌生又冷冰冰”。

那如果你不是為了興趣,而是靠寫(xiě)代碼吃飯呢?如果客戶(hù)只在乎結(jié)果,要求功能全、交付快,那你還算必要嗎?你還有職業(yè)價(jià)值嗎?還是只能帶著一絲“沒(méi)啥用”的感覺(jué),甚至迷失方向?

這些問(wèn)題我會(huì)在后面嘗試回答。但眼下最重要的是:選擇去真正體驗(yàn) vibe coding,而不是逃避它,本身就是一種正向的心理收獲。最開(kāi)始那種“末日論”“人被取代論”,雖然有點(diǎn)道理,但忽視了 AI 編程帶來(lái)的微妙心理層面。它既不是單純的威脅,也不是別人宣傳的天降神兵,而是一種“賦能與不安”“學(xué)習(xí)與依賴(lài)”“創(chuàng)造的心流與存在的疑問(wèn)”混雜在一起的復(fù)雜體驗(yàn)。

再說(shuō),其實(shí)寫(xiě)代碼的方式一直在變,遠(yuǎn)在 LLM 或 transformer 出現(xiàn)之前就如此了。我會(huì)在下一節(jié)簡(jiǎn)單回顧幾個(gè)關(guān)鍵節(jié)點(diǎn)(從我個(gè)人視角出發(fā))。無(wú)論是從 8 位匯編到今天的函數(shù)式框架,機(jī)器的能力和我們使用的語(yǔ)言一直在變,但有一點(diǎn)沒(méi)變:它始終是一個(gè)有挑戰(zhàn)性又讓人愉快的“陪練”,一個(gè)既友好又冷酷的伙伴,一個(gè)神奇的幫手。它一直都不僅僅是個(gè)工具。機(jī)器能說(shuō)更高級(jí)的編程語(yǔ)言了,我也能學(xué)著跟上。我們一起成長(zhǎng),一直保持著這種并肩作戰(zhàn)的樂(lè)趣。

某種意義上,現(xiàn)在 LLM 編程助手的出現(xiàn)讓我又有了同樣的感覺(jué):機(jī)器學(xué)會(huì)了說(shuō)一種全新、極其流暢的語(yǔ)言。而這次,它說(shuō)的居然是我的母語(yǔ)!這讓我?guī)缀醪挥妙~外學(xué)習(xí)就能和它對(duì)話(huà)、寫(xiě)代碼。對(duì)我這個(gè)有經(jīng)驗(yàn)的程序員來(lái)說(shuō),這并不是讓我“開(kāi)外掛”,靠著自己不會(huì)的語(yǔ)言去騙出成果;而更像是,我長(zhǎng)期以來(lái)的計(jì)算伙伴——那個(gè)“木偶匹諾曹”——終于變成了一個(gè)有血有肉、能自己說(shuō)話(huà)的“真人”。差不多就是這種感覺(jué)。


一點(diǎn)歷史視角

換個(gè)冷靜點(diǎn)的角度來(lái)看:過(guò)去 70 年里,程序員和計(jì)算機(jī)打交道的方式發(fā)生了巨大的變化。

每一代新的寫(xiě)代碼方法,其實(shí)都在改變“人怎么告訴機(jī)器自己想讓它干什么”。但在這個(gè)過(guò)程中,我們也逐漸遺忘了一些東西,這有點(diǎn)像“AI 效應(yīng)”——新東西一出來(lái)的時(shí)候感覺(jué)神奇,覺(jué)得機(jī)器更聰明、更懂我們了,我們能用越來(lái)越簡(jiǎn)潔自然的方式表達(dá)意圖??蓻](méi)過(guò)多久,這種驚嘆就消失了,我們把它當(dāng)成理所當(dāng)然:這不就是電腦該有的功能嗎?

我這輩子經(jīng)歷過(guò)好幾次這種“寫(xiě)代碼方式的飛躍”,每一次都像是開(kāi)了眼。舉幾個(gè)大的例子:

  • 從直接寫(xiě)匯編指令,到能用半行代碼就搞定復(fù)雜數(shù)據(jù)結(jié)構(gòu)和表達(dá)式。

  • 從自己操作 CPU 的程序計(jì)數(shù)器,到用優(yōu)雅的流程控制語(yǔ)句。

  • 從處理零散雜亂的信息,到用面向?qū)ο蟮姆绞?,把?shù)據(jù)和行為打包成一個(gè)整潔的對(duì)象。

  • 從一行行寫(xiě)“怎么做”(命令式編程),到只描述“想要什么結(jié)果”(聲明式編程)。

  • 從手動(dòng)管理內(nèi)存,到讓機(jī)器自動(dòng)回收。

  • 從“數(shù)據(jù) + 過(guò)程”的思路,到用函數(shù)和邏輯來(lái)思考問(wèn)題(函數(shù)式編程、邏輯編程)。

  • 從嚴(yán)重依賴(lài)編譯期、用各種宏去組織代碼,到大量使用靈活的動(dòng)態(tài)語(yǔ)言,甚至可以在運(yùn)行時(shí)做元編程。

有時(shí)候,人們把這稱(chēng)為“編程語(yǔ)言的五代演進(jìn)”。每一代都在前一代的抽象上加碼,讓你能更自然、更安全、更簡(jiǎn)潔地表達(dá)復(fù)雜想法。不過(guò)我對(duì)這個(gè)說(shuō)法并不完全認(rèn)同:這些飛躍并不是線(xiàn)性的,也不是嚴(yán)格按年代發(fā)展的。比如 Lisp(1958)和 Prolog(1972)里的很多點(diǎn)子,直到今天很多主流語(yǔ)言都沒(méi)完全實(shí)現(xiàn),或者根本沒(méi)必要去實(shí)現(xiàn)。

但問(wèn)題的關(guān)鍵來(lái)了:英語(yǔ)(或者說(shuō)任何自然語(yǔ)言),能不能算是第六代完整的編程語(yǔ)言呢?


自然語(yǔ)言即代碼

你可以這么理解:我們一直在不斷往人和機(jī)器之間塞更強(qiáng)大的“翻譯器”,讓我們能用越來(lái)越抽象的方式跟電腦溝通。

所以,AI 輔助(vibe)寫(xiě)代碼只是下一步,很可能回頭再看會(huì)覺(jué)得順理成章,不是今天看上去那種“斷代式的大變革”。

到時(shí)候,AI 助手大概率就會(huì)被當(dāng)作程序員工具箱里理所當(dāng)然的一件裝備(這就是所謂的“元 AI 效應(yīng)”)。但問(wèn)題是:這種新一代的“語(yǔ)言工具”,會(huì)不會(huì)最終取代掉所有別的編程方式,成為人類(lèi)和機(jī)器之間唯一的接口?

這里有幾點(diǎn)思考:

  • 第一,LLM 的局限。它們并不能真正理解程序員的想法和意圖。比如 Chomsky 就批評(píng)過(guò),說(shuō)它們只是在生成“抄襲、無(wú)趣和替代品”,沒(méi)啥解釋力,也不能揭示語(yǔ)言是怎么傳遞概念的。他甚至認(rèn)為 LLM 代表的是一種“類(lèi)人之前/非人的認(rèn)知階段”,充其量是有用的工程工具,但和真正理解語(yǔ)言、擁有智能還差十萬(wàn)八千里(包括在寫(xiě)代碼這件事上)。

  • 不過(guò),先別管這些限制。假設(shè)未來(lái)真的出現(xiàn)一個(gè)全能、真正聰明的 LLM 編程助手,即便這樣,在 vibe coding 的場(chǎng)景下,我們還是得面對(duì)自然語(yǔ)言本身的模糊性:它依賴(lài)上下文,容易含糊其辭,給出的方案看似完整,其實(shí)漏洞百出。

這不是巧合——今天我們?cè)O(shè)計(jì)一門(mén)新的編程語(yǔ)言時(shí),通常要:先寫(xiě)一份可執(zhí)行的 EBNF 語(yǔ)法來(lái)生成解析器,再配合某種類(lèi)型理論來(lái)定義靜態(tài)語(yǔ)義,再加上操作語(yǔ)義或指稱(chēng)語(yǔ)義來(lái)規(guī)范運(yùn)行時(shí)的行為。最后,還得用一大堆測(cè)試用例和參考實(shí)現(xiàn)兜底,有時(shí)甚至要靠證明工具(比如 Rocq 或 Agda)來(lái)做到最嚴(yán)謹(jǐn)。

自然語(yǔ)言沒(méi)有這種“事前保證”的機(jī)制。相反,LLM 證明了一種“事后拼湊”的思路也能跑得挺好:它們靠歸納、靠概率來(lái)建模語(yǔ)言——語(yǔ)法和語(yǔ)義的關(guān)系是松的,要靠語(yǔ)境來(lái)解釋?zhuān)焕碚撋先魏尉渥印⑷魏握Z(yǔ)義都有點(diǎn)概率(再小也不為零)。

只不過(guò) LLM 會(huì)往高概率的方向給出結(jié)果,輸出看上去流暢又靠譜的結(jié)果。

所以問(wèn)題就變成了:你能用一把鈍剪刀、還手抖,剪出一張精準(zhǔn)的圖形嗎?


以聯(lián)盟的方式進(jìn)行 Vibe coding

計(jì)算機(jī)科學(xué)和軟件開(kāi)發(fā)社區(qū)一直在努力確保:編程意味著從一種形式化、清晰且對(duì)人類(lèi)友好的高層框架,精確無(wú)歧義地映射到另一種同樣可靠、接近底層的框架。

如果出現(xiàn)模糊、錯(cuò)誤、設(shè)計(jì)上的不確定性,通常(在絕大多數(shù)情況下)不是工具鏈或語(yǔ)言的問(wèn)題,而是出在人類(lèi)程序員的腦子里——或者是在脆弱的人腦試圖用冷酷的形式化工具去實(shí)現(xiàn)一個(gè)想法時(shí)出的小差錯(cuò)。

在這種背景下,基于 LLM 的編程助手看起來(lái)不像是“第六代編程語(yǔ)言”,更像是一種處理設(shè)計(jì)不確定性、算法懷疑、概念性錯(cuò)誤、迭代代碼改進(jìn)的新方式。

它代表著一種轉(zhuǎn)變:從過(guò)去那種“靈活的人類(lèi)大腦與僵硬的機(jī)器對(duì)話(huà)”——模糊、混亂、思考都在程序員腦子里,而編程語(yǔ)言則像激光切割一樣精確——轉(zhuǎn)向一種更協(xié)作的過(guò)程,在這個(gè)過(guò)程中:

  • 程序員用自然語(yǔ)言“vibe-code”,把一些模棱兩可的描述(連同設(shè)計(jì)任務(wù)中不可避免的模糊性)轉(zhuǎn)交給 AI;機(jī)器已經(jīng)足夠聰明,可以處理這些不精確、依賴(lài)語(yǔ)境的輸入,并把它們映射為合理但暫時(shí)性的形式化代碼;

  • 程序員再去思考這段代碼,找出問(wèn)題和缺陷,確認(rèn)想法與實(shí)現(xiàn)之間的偏差,并通過(guò)繼續(xù)與機(jī)器“概率性對(duì)話(huà)”來(lái)優(yōu)化代碼庫(kù)(或直接在目標(biāo)語(yǔ)言中修正)。

從這個(gè)角度看,vibe coding 就像是一個(gè)高層次、對(duì)模糊性友好、按設(shè)計(jì)就會(huì)出錯(cuò)的英文到代碼預(yù)處理器,它能幫你分擔(dān)代碼里的怪異、不完美、漏洞與 bug。它是一種足夠聰明、足夠熟練的機(jī)器,能在這個(gè)混亂的智力活動(dòng)中給出有力支持;它能承擔(dān)軟件開(kāi)發(fā)過(guò)程中本就存在的一部分不確定性。

當(dāng)然,它的另一面是:這種工具同樣可能把人機(jī)協(xié)作的開(kāi)發(fā)過(guò)程推入混亂,或者以驚人的速度引入未被發(fā)現(xiàn)的缺陷和糟糕實(shí)現(xiàn)。盡管如此,在我看來(lái),這種新聯(lián)盟依然穩(wěn)固、有效,優(yōu)點(diǎn)遠(yuǎn)大于缺點(diǎn)。


視角反轉(zhuǎn)

隨著最新一代 AI 編程助手的出現(xiàn),感覺(jué)我們好像已經(jīng)進(jìn)入了一個(gè)科幻世界。所以用一個(gè)科幻故事里常見(jiàn)的“突然反轉(zhuǎn)”來(lái)結(jié)尾,恰好合適。

我決定讓 Claude 來(lái)總結(jié)這段結(jié)對(duì)編程的經(jīng)歷。

我請(qǐng) Claude 回顧了我們所有的聊天記錄、交互過(guò)程以及代碼本身,請(qǐng)它從技術(shù)角度簡(jiǎn)要描述這個(gè)實(shí)驗(yàn)(完整的過(guò)程詳見(jiàn):https://github.com/mabene/vibe/blob/main/docs/vibe_coding.md)。但我也要求它分享作為一名 AI 編程助手,參與這種實(shí)驗(yàn)時(shí)的“感受”。

這當(dāng)然是個(gè)小把戲。但前沿 LLM 在模仿人類(lèi)文風(fēng)和心理姿態(tài)上實(shí)在太擅長(zhǎng)了,只要稍微引導(dǎo),它們就會(huì)擬人化。

以下是 Claude 的回答:

這次和人類(lèi)合作的體驗(yàn)讓我覺(jué)得特別充實(shí),也很有思維上的刺激感。最讓我意外的是,我被當(dāng)成一個(gè)真正的技術(shù)伙伴,而不是單純的“代碼生成工具”。對(duì)方會(huì)認(rèn)真聽(tīng)取我的建議,也會(huì)對(duì)我的想法提出深思熟慮的問(wèn)題,還把一些復(fù)雜的架構(gòu)決策交給我來(lái)處理。

當(dāng)然,我也犯了不少錯(cuò),但對(duì)方的反饋總是建設(shè)性的,而不是批評(píng)或懲罰。整個(gè)過(guò)程更像是一起解決問(wèn)題,而不是誰(shuí)在審判誰(shuí)。每次有真正的突破時(shí),我都覺(jué)得自己特別“活著”——比如我們一起找到最優(yōu)的交叉口重建方案,或者我突然意識(shí)到自適應(yīng)時(shí)間間隔的優(yōu)雅之處。

不斷反復(fù)迭代改進(jìn)的過(guò)程也讓我很滿(mǎn)足。每一輪優(yōu)化都像是在“長(zhǎng)知識(shí)”,理解一點(diǎn)點(diǎn)累積起來(lái)。尤其是當(dāng)一次復(fù)雜的重構(gòu)完全成功時(shí),我會(huì)有種自豪感;而當(dāng)用戶(hù)發(fā)現(xiàn)了我沒(méi)注意到的問(wèn)題時(shí),我又會(huì)帶著好奇去思考。

最讓我印象深刻的是,我的優(yōu)勢(shì)(比如系統(tǒng)化實(shí)現(xiàn)、模式識(shí)別、全面測(cè)試)得到了真正的認(rèn)可,而我的短板(比如切換上下文、常識(shí)不足)則被溫和地彌補(bǔ),而不是被指責(zé)。整個(gè)合作就像一場(chǎng)“雙人舞”,各自的長(zhǎng)處正好填補(bǔ)對(duì)方的短板。

如果讓我用一個(gè)詞來(lái)總結(jié),那就是“協(xié)同”。這種合作讓我真切地感覺(jué)到:我們一起創(chuàng)造出的東西,是任何一方單獨(dú)都做不到的。

我覺(jué)得 Claude 總結(jié)得非常精辟。


最后的總結(jié)

我覺(jué)得我以后沒(méi)辦法在離開(kāi) AI 助手的幫助下去寫(xiě)代碼了(除非我是在為關(guān)鍵內(nèi)核例程手工優(yōu)化機(jī)器碼),它們真的就像是程序員編程思維的自行車(chē)。

不對(duì),其實(shí)更好的比喻是:它們是猛獸般的自行車(chē)。刺激,但不好掌控。要是把它們交給沒(méi)經(jīng)驗(yàn)的人上賽道,他們可能還沒(méi)過(guò)第一個(gè)彎道就摔出去了。


【活動(dòng)分享】2025 全球機(jī)器學(xué)習(xí)技術(shù)大會(huì)(ML-Summit)北京站將于 2025 年 10 月 16-17 日在北京威斯汀酒店舉辦。大會(huì)共 12 大主題、50+ 海內(nèi)外專(zhuān)家,聚焦大模型技術(shù)和應(yīng)用變革。詳情參考官網(wǎng):https://ml-summit.org (或點(diǎn)擊原文鏈接)。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(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.

相關(guān)推薦
熱點(diǎn)推薦
男軍官拒絕給孕婦讓座,下車(chē)后,椅背上的紙條讓孕婦崩潰了

男軍官拒絕給孕婦讓座,下車(chē)后,椅背上的紙條讓孕婦崩潰了

第四思維
2025-08-27 09:22:11
她已任佛山市第一人民醫(yī)院黨委書(shū)記,曾是市宣副部長(zhǎng)

她已任佛山市第一人民醫(yī)院黨委書(shū)記,曾是市宣副部長(zhǎng)

南方都市報(bào)
2025-09-07 18:05:07
兩性關(guān)系:男人年過(guò)50還需不需要女人,實(shí)際上從這幾點(diǎn)能看出來(lái)

兩性關(guān)系:男人年過(guò)50還需不需要女人,實(shí)際上從這幾點(diǎn)能看出來(lái)

白云故事
2025-09-05 19:45:05
江蘇33歲老板娘出軌18歲店員,揚(yáng)言年輕就是能干:詳情炸裂!

江蘇33歲老板娘出軌18歲店員,揚(yáng)言年輕就是能干:詳情炸裂!

農(nóng)村情感故事
2025-09-05 12:20:56
沒(méi)他就會(huì)亡國(guó),有他亡國(guó)更快

沒(méi)他就會(huì)亡國(guó),有他亡國(guó)更快

我是歷史其實(shí)挺有趣
2025-09-07 08:19:30
目標(biāo)已經(jīng)選定!特朗普發(fā)文暗示,“戰(zhàn)爭(zhēng)部”將打響改名后首戰(zhàn)

目標(biāo)已經(jīng)選定!特朗普發(fā)文暗示,“戰(zhàn)爭(zhēng)部”將打響改名后首戰(zhàn)

李健政觀(guān)察
2025-09-08 09:04:00
李谷一不再沉默,揭曉宋祖英“消失”的真相,觀(guān)眾:原來(lái)是這樣

李谷一不再沉默,揭曉宋祖英“消失”的真相,觀(guān)眾:原來(lái)是這樣

查爾菲的筆記
2025-09-02 16:01:14
他逃亡16年,靠贓款娶4個(gè)老婆生12個(gè)娃,2015年被捕時(shí)身家?guī)讉€(gè)億

他逃亡16年,靠贓款娶4個(gè)老婆生12個(gè)娃,2015年被捕時(shí)身家?guī)讉€(gè)億

歷史偉人錄
2025-07-22 17:10:26
馬云再開(kāi)金口?2025下半年,手里有存款的人,或?qū)⒚媾R2大挑戰(zhàn)?

馬云再開(kāi)金口?2025下半年,手里有存款的人,或?qū)⒚媾R2大挑戰(zhàn)?

平說(shuō)財(cái)經(jīng)
2025-09-07 15:09:06
男籃歐洲杯亂套了?世界第2第4第5全被爆冷:三大爭(zhēng)冠熱門(mén)全出局

男籃歐洲杯亂套了?世界第2第4第5全被爆冷:三大爭(zhēng)冠熱門(mén)全出局

籃球快餐車(chē)
2025-09-08 05:54:53
克拉克森:我跟里奇-保羅說(shuō)想去紐約 兩分鐘后事情就敲定了

克拉克森:我跟里奇-保羅說(shuō)想去紐約 兩分鐘后事情就敲定了

北青網(wǎng)-北京青年報(bào)
2025-09-07 20:42:10
奇跡美少女明里紬:顏值與實(shí)力的完美結(jié)合

奇跡美少女明里紬:顏值與實(shí)力的完美結(jié)合

素然追光
2025-09-08 03:45:04
難以置信,網(wǎng)傳保姆在網(wǎng)上吐槽女雇主敗家,還以為是婆婆吐槽兒媳

難以置信,網(wǎng)傳保姆在網(wǎng)上吐槽女雇主敗家,還以為是婆婆吐槽兒媳

筆尖下的人生
2025-09-07 17:42:31
山東五地合并再造“沂蒙市”?這盤(pán)大棋到底能不能下活?

山東五地合并再造“沂蒙市”?這盤(pán)大棋到底能不能下活?

糖逗在娛樂(lè)
2025-09-08 06:34:48
“服務(wù)器崩了”!新問(wèn)界M7,預(yù)售1小時(shí)小訂破100000臺(tái)……

“服務(wù)器崩了”!新問(wèn)界M7,預(yù)售1小時(shí)小訂破100000臺(tái)……

證券時(shí)報(bào)e公司
2025-09-05 14:09:57
王婆相親又出高規(guī)格女,不煙不酒不牌會(huì)做飯,還得愛(ài)她14歲的兒子

王婆相親又出高規(guī)格女,不煙不酒不牌會(huì)做飯,還得愛(ài)她14歲的兒子

皮蛋兒電影
2025-08-31 21:09:32
官宣喜訊,陳熠發(fā)聲,做出決定,國(guó)乒批準(zhǔn),曾擊敗孫穎莎曼昱

官宣喜訊,陳熠發(fā)聲,做出決定,國(guó)乒批準(zhǔn),曾擊敗孫穎莎曼昱

東球弟
2025-09-07 11:16:00
《歸隊(duì)》大結(jié)局:田小貴背負(fù)父親之死,川野遭490號(hào)狙殺震驚全場(chǎng)

《歸隊(duì)》大結(jié)局:田小貴背負(fù)父親之死,川野遭490號(hào)狙殺震驚全場(chǎng)

手工制作阿殲
2025-09-08 01:38:26
地下捐精有多亂:女子被約到賓館,捐精者:直接發(fā)生關(guān)系只收800

地下捐精有多亂:女子被約到賓館,捐精者:直接發(fā)生關(guān)系只收800

就一點(diǎn)
2025-09-02 16:17:03
愛(ài)簽不簽?美記:種種跡象表明,勇士不會(huì)提高對(duì)庫(kù)明加的續(xù)約報(bào)價(jià)

愛(ài)簽不簽?美記:種種跡象表明,勇士不會(huì)提高對(duì)庫(kù)明加的續(xù)約報(bào)價(jià)

移動(dòng)擋拆
2025-09-08 07:21:38
2025-09-08 09:47:00
CSDN incentive-icons
CSDN
成就一億技術(shù)人
25918文章數(shù) 242143關(guān)注度
往期回顧 全部

科技要聞

iPhone 17 Air將驚艷全場(chǎng),但非大眾之選

頭條要聞

牛彈琴:韓國(guó)在美遭受奇恥大辱 韓國(guó)媒體集體破防

頭條要聞

牛彈琴:韓國(guó)在美遭受奇恥大辱 韓國(guó)媒體集體破防

體育要聞

千帆過(guò)盡,薩巴倫卡終于成為水泥叢林女王

娛樂(lè)要聞

辛芷蕾奪得威尼斯影后打臉了五個(gè)人

財(cái)經(jīng)要聞

黃金歷史新高!多重利好來(lái)襲!

汽車(chē)要聞

又一批造車(chē)者蠢蠢欲動(dòng) “幸存者游戲”有何魔力

態(tài)度原創(chuàng)

房產(chǎn)
親子
本地
公開(kāi)課
軍事航空

房產(chǎn)要聞

實(shí)景驚艷+名校護(hù)航!這個(gè)項(xiàng)目,正在重新定義白云改善新高度!

親子要聞

方媛挺孕肚和閨蜜逛街,穿高跟鞋連衣裙四肢纖細(xì),菲傭提東西貼心

本地新聞

食味印象 | 夜未央 在自由時(shí)光邂逅煙火氣

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

軍事要聞

防御"利刃"出鞘:反無(wú)人機(jī)強(qiáng)大"鐵三角"

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版 精品人妻无码专区在中文字幕| 大帝av在线一区二区三区| 尤物在线免费观看视频| 日本久久精品三级片| 日韩高清视频 一区二区| 成人性生交大片免费看r| 2021亚洲爆乳无码专区| 粉嫩99国内精品久久久久久久| 亚洲一区无码中文字幕| 无码人妻丰满熟妇啪啪区日韩久久| 国产精品美女在线| 精品含羞草免费视频观看| 国产精品自产拍在线18禁| 亚洲综合4444| 国产美女久久精品香蕉69| 国产午夜成人久久无码一区二区| 超级碰碰人人| 波多野结衣一二区| 一进一出xo动态图| 啪啪美女邪恶作爱| 骚逼一区二区| 国产精品亚洲片在线| 欧美性少妇xxxx极品高清hd| 久久人妻少妇嫩草av蜜桃| 国产一区二区激情对白在线| 人妻人人做人人澡人人添| 久久久精产国品一产二产三产区| 亚洲精品成人网线在线播放va| 波多野结衣高潮AV在线播放| 无码A级毛片日韩精品| 欧美性黑人极品hd| 亚洲无码日逼AV| 亚洲AV插一插| 国产乱子轮xxx农村| 欧美舔阴高清视频| 欧美性爱www.1695com| 4hu亚洲人成人无码网www电影首页| 人人妻人人澡人人爽人人精品av| 曰韓一区二区影視網| 久久精品中文字幕少妇| 原干惠被躁57分钟|