新智元報(bào)道
編輯:艾倫
【新智元導(dǎo)讀】火遍全網(wǎng)的「氛圍編程」(Vibe Coding),讓人人都可以上手編程,寫(xiě)出自己的程序了。然而,作為Vibe Coder,和真正的軟件工程師之間,還存在哪些差距呢?
Cursor等智能IDE相繼推出,帶來(lái)了更智能的編程體驗(yàn)。
與此同時(shí),Claude 4等基座大模型的編碼性能不斷提升。
再加上Andrej Karpathy的大力推廣,Vibe Coding迅速走紅,已成野火燎原之勢(shì)。
Vibe Coding仿佛直接抹平了普通人和專業(yè)軟件工程師之間在之前難以逾越的巨大鴻溝。
然而,事實(shí)真的有想象中那么輕松美好嗎?
掌握了Vibe Coding,和專業(yè)的軟件工程師之間,還有哪些差距需要彌補(bǔ)呢?
就在昨天,The Verge發(fā)表了一篇文章,為我們解析了這個(gè)問(wèn)題,幫助我們認(rèn)清現(xiàn)實(shí),補(bǔ)上差距。
人人都能寫(xiě)代碼
但不等于會(huì)工程
很多人剛開(kāi)始Vibe Coding時(shí),都會(huì)遇到相似的一幕:
AI不止幫你改了你需要它改動(dòng)的地方,還把其他你不想讓它改動(dòng)的地方也給改亂了。
這不是你的錯(cuò),是AI目前還不夠聰明。
AI需要你下達(dá)盡可能精確的命令,才能取得足夠接近你想要的效果。
具體到編程上而言,你需要收緊問(wèn)題空間。
比如,你可以進(jìn)行類似將代碼分成若干小塊,每塊由約十幾行代碼組成,讓AI并行修改這些代碼。
這種做法類似于chunking,不是將一大段人看了都頭疼的代碼直接給到AI,AI就只能串行修改,反而容易犯錯(cuò)。
不要過(guò)分高估AI目前的能力,幫它分擔(dān)一部分它做得不夠好的工作也是為了讓你避免浪費(fèi)更多時(shí)間在無(wú)效的debug上面。
上面只是幫你寫(xiě)好一段程序的建議。
軟件工程,也是復(fù)雜工程
真實(shí)的軟件工程,往往由數(shù)量龐大、組織架構(gòu)復(fù)雜的若干個(gè)程序組成。
通過(guò)Vibe Coding,遵循了前面的建議,你在上手后可以相對(duì)較為輕松地搭出一個(gè)能跑起來(lái)的程序。
然而,對(duì)于軟件工程這個(gè)復(fù)雜系統(tǒng)工程而言,這僅僅是第一步。
我們可以用機(jī)場(chǎng)作為一個(gè)形象的類比。
開(kāi)發(fā)一個(gè)新產(chǎn)品特性,類似于在機(jī)場(chǎng)新開(kāi)一個(gè)VIP休息室;
更復(fù)雜的項(xiàng)目,類似建第二航站樓;
而Vibe Coding構(gòu)建的小型程序,類似于在機(jī)場(chǎng)開(kāi)一家快閃店,自成一體,用完即走。
Vibe Coding現(xiàn)在可以構(gòu)建小型程序了,但軟件工程中最棘手最耗時(shí)的永遠(yuǎn)不是這一步,而是和其他程序有機(jī)連接后保證整個(gè)系統(tǒng)的正常高效運(yùn)轉(zhuǎn)。
實(shí)現(xiàn)設(shè)計(jì)模式本身,也是一個(gè)復(fù)雜的問(wèn)題。
對(duì)程序員的「品味」,要求變高了
Linux之父Linus Torvalds,作為這個(gè)應(yīng)用最廣泛也最為復(fù)雜的開(kāi)源操作系統(tǒng)的核心開(kāi)發(fā)工作組織者,認(rèn)為軟件開(kāi)發(fā)中「品味」也很重要。
Linus Torvalds
小到語(yǔ)法規(guī)范和算法復(fù)雜度,大到整體架構(gòu),「品味」的影響無(wú)處不在。
好的軟件架構(gòu)并不是一蹴而就的,而是無(wú)數(shù)合理的微小決策組成的,而這是大模型很難通過(guò)零樣本學(xué)習(xí)完成的。
這既要依賴既有知識(shí)的積累,也要依賴人類的直覺(jué),而這種直覺(jué)是需要大量實(shí)戰(zhàn)來(lái)培養(yǎng)的。
AI使得編程對(duì)程序員的要求變高了,以往更多是軟件架構(gòu)師要負(fù)責(zé)思考的問(wèn)題,也被逐級(jí)「下放」了。
AI代勞了初級(jí)程序員的工作,就像給所有Vibe Coder都配備了一個(gè)初級(jí)程序員助理一樣。
這并不意味著你少了很多工作量,而是你要學(xué)會(huì)在Vibe Coding中與AI有效協(xié)作:
與它高效溝通,給它具體而精確的工作指引,把省下來(lái)的時(shí)間花在思考更宏觀也更重要的事情上。
編程的未來(lái)
進(jìn)化還是消解
編程這門(mén)手藝的發(fā)展史,就是「抽象升級(jí)史」:
從毫無(wú)可讀性的機(jī)器語(yǔ)言,進(jìn)化到便于人類記憶的匯編語(yǔ)言,再進(jìn)化到接近人類語(yǔ)法的C語(yǔ)言這類高級(jí)語(yǔ)言,伴隨著更易懂的Python的語(yǔ)言演進(jìn),最后我們被帶到了人人能用的AI這里。
這其中的進(jìn)化程度,可以類比成開(kāi)車回家。
機(jī)器語(yǔ)言,直接是大腦下達(dá)命令后通過(guò)電信號(hào)操作相關(guān)肌肉進(jìn)行運(yùn)動(dòng),對(duì)人類沒(méi)有可讀性。
匯編語(yǔ)言,類似于對(duì)車子先打方向盤(pán)3秒進(jìn)行轉(zhuǎn)向,再踩油門(mén)前進(jìn)10米這類具體操作。
到了C和Python這類高級(jí)語(yǔ)言,直接將上述動(dòng)作封裝成了轉(zhuǎn)彎這個(gè)函數(shù),需要時(shí)直接調(diào)用「轉(zhuǎn)彎();」即可。
最后是如今的AI,我們只需要表達(dá)最根本的需求即可:「送我回家?!?/p>
剩下的一切,具體如何實(shí)現(xiàn),交給AI來(lái)思考和處理。
當(dāng)然,這是理想中的情況,現(xiàn)實(shí)是受制于大型工程的復(fù)雜性和上下文長(zhǎng)度,還沒(méi)有足夠多高質(zhì)量的數(shù)據(jù)來(lái)訓(xùn)練AI完成過(guò)于復(fù)雜的宏大工程。
畢竟,面臨復(fù)雜工程,人類也是一頭霧水,做不到一蹴而就,很多時(shí)候也是邊試錯(cuò)摸索邊前進(jìn)的。
要完成復(fù)雜工程,即便有了強(qiáng)力AI加持,仍離不開(kāi)老練的高級(jí)軟件工程師依靠知識(shí)、經(jīng)驗(yàn)、直覺(jué)。
然而,要成為高手,就免不了從新手開(kāi)始,吃那些必須吃的苦,踩那些繞不開(kāi)的坑。
你還是要在一次次挫敗中嘗試「手搓紅黑樹(shù)」、嘗試拋開(kāi)AI獨(dú)立寫(xiě)bug-free的小型程序,積累自己的編程經(jīng)驗(yàn)。
一顆紅黑樹(shù)
為了成為高手,AI是你的強(qiáng)力助手和答疑導(dǎo)師,但絕不能替代你親自學(xué)習(xí)這些基礎(chǔ)知識(shí)。
經(jīng)驗(yàn)源于實(shí)踐,只通過(guò)看和想是無(wú)法真正學(xué)會(huì)編程的。
Vibe Coding
賦能與挑戰(zhàn)并存
總結(jié)下來(lái)的結(jié)論就是:AI不會(huì)讓軟件工程消亡,至少中短期內(nèi),經(jīng)驗(yàn)豐富的高級(jí)軟件工程師的地位,是AI無(wú)法動(dòng)搖的。
Vibe Coding讓編程變得容易,卻少了自己摸索能得到的鍛煉。
Vibe Coding為我們帶來(lái)的真正的挑戰(zhàn)是,學(xué)會(huì)在便利中保持清醒,不讓理解力和判斷力被AI「偷走」。
對(duì)我們而言,或許下一次Vibe Coding時(shí),不要只看是否「0 Error(s), 0 Warning(s)」了,而應(yīng)該試著去理解AI為什么這樣寫(xiě)代碼。
理解,才是從「會(huì)寫(xiě)代碼」到「會(huì)做工程」的關(guān)鍵,才能讓我們從Vibe Coder蛻變成真正的軟件工程師。
參考資料:
https://www.theverge.com/ai-artificial-intelligence/767973/vibe-coding-ai-future-end-evolution
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(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.