2024年度最佳: AI程式設計, “一人公司”時代的真正開端
Web3天空之城·城主:
2024即將結束。
在這一年裡,AI發展如我們所料,只能用突飛猛進來形容。如果從1月到12月列一個時間表,那每個月都是熱鬧非凡的AI大模型進展和AI新產品發佈;當然,還有各種AI圈子的江湖八卦。
在一整年的AI處理程序中,原本而言,最引人矚目的當數AI視訊生成的突破性進展。自年初OpenAI發佈了Sora的概念性視訊,大部分關心AI的人們才忽然意識到,原來除了效果一言難盡的從AI繪畫模型衍生出的動畫視訊生成,AI視訊生成還有一個原生方式,即通過transformer模型來直接訓練視訊片段資料,這個方式能到達的高度我們現在都看到了,那是2023年底大家想都不敢想的AI視訊生成效果,2024年的我們習以為常。
視訊內容,包含了聲音,畫面,三維空間動態,以及表現為語音的語言文字資訊。除了互動遊戲,視訊內容的AI生成就是內容生產的金字塔頂端了。自生成式AI誕生以來,從文字內容到音樂,再到視訊內容的AI生產,我們可以看到,人類所需要消費的資訊內容正完整被AI生產所覆蓋,考慮到在2024年裡視訊AI生成的爆髮式成長,本來今年的AI最佳奧斯卡獎大機率就是它了。
橫空出世的新一代AI程式設計工具
但是!Q4到年底的這段時間,另外一個新形態的AI生成產品忽然崛起,在大家措手不及間,迅速建立了自己的大規模使用者群體和商業版圖,這就是現在最熱門的“AI程式設計”,其中最具代表性的兩個產品是Cursor和Windsurf。
有多熱門呢?根據GitHub的統計,2024年AI程式設計工具的使用量同比增長了300%。在Stack Overflow的年度調查中,超過60%的開發者表示正在使用或計畫使用AI程式設計工具,這一數字在2023年僅為15%。更令人驚訝的是,在Q4季度,AI程式設計相關的開放原始碼專案數量激增,GitHub上新增的AI程式設計相關倉庫數量達到歷史新高,平均每天新增超過100個。這些資料無不表明,AI程式設計正在到達一個全新的火爆程度。
AI程式設計,其實並不是一個新鮮概念,早在OpenAI GPT3等級的模型引入了程式碼訓練後,GPT模型就擁有了初步閱讀程式碼的能力,從而成為了人類編碼的輔助工具。在Cursor和WindSurf爆發之前,AI輔助程式設計的代表性產品,就是微軟CEO薩提亞納德拉永遠掛在嘴邊的CoPilot了。微軟的全家桶CoPilot正是從爆火的Github CoPilot概念衍生而出。在OpenAI一家獨大的時代,Github憑藉Copilot輔助程式設計風靡了程式設計師圈子。
但Copilot和Cursor/WinSurf所代表的新一代AI程式設計工具相比,差距是巨大而明顯的,如以下表格所示:
最關鍵的一點是,Copilot只能針對局部程式碼進行輔助提示,基本上還是需要人工去編輯修改驗證;而Cursor/WinSurf都是在整個檔案甚至整個項目等級來進行AI理解和自動程式碼生成:
GitHub Copilot:局部程式碼輔助
- 核心機制: GitHub Copilot 主要基於上下文 (contextual) 的程式碼補全和生成。它的核心機制是在你編寫程式碼時,根據當前游標所在位置、周圍的程式碼片段、註釋、變數名等資訊,預測你接下來可能要輸入的程式碼,並給出建議。
- 輔助範圍: 它的輔助範圍通常是局部的,主要針對你正在編輯的程式碼行或程式碼塊。它會根據你當前正在編寫的內容提供建議,而不是對整個檔案或項目進行全域的理解和分析。
- 需要人工編輯: 因此,GitHub Copilot 更像是你的一個智能程式碼助手,幫助你更快地編寫程式碼。但程式碼的整體結構、邏輯以及不同程式碼模組之間的關係,仍然需要你手動進行編輯、修改和驗證。
Cursor/WindSurf:全域程式碼理解和生成
- 核心機制: Cursor 和 WindSurf 這類工具,更傾向於對整個檔案甚至整個項目進行 AI 分析和理解。它們會嘗試理解程式碼的結構、邏輯、不同模組之間的關係,從而進行更智能的程式碼生成和重構。
- 輔助範圍: 因此,它們的輔助範圍更廣,不僅侷限於局部程式碼。它們可以根據對整個檔案或項目的理解,生成更完整的程式碼片段、建議重構方案,甚至可以幫你快速生成整個 API 呼叫的程式碼。
- 自動程式設計傾向: 這類工具在一定程度上具備自動程式設計的能力。它們可以基於對你意圖的理解,生成相對完整的程式碼邏輯,減少你手動編寫程式碼的工作量。
不僅於此,它們還可以直接運行終端指令,來即時驗證程式碼的運行結果,甚至根據結果的反饋進一步自動的修改程式碼。整個全域自動化的過程,可以負責任的說,只要是碼農用上了,就離不開了。
正因為有這個重要的差別,在推出項目等級的程式碼自動化能力後,Cursor和WinSurf都迅速實現了自己的商業化,付費訂閱收入呈爆髮式增長 。當然了,這塊大蛋糕,顯然已經被各大公司以及其他創業團隊盯上了。比如最近有個出了一個火起來的項目級AI程式設計工具Lovable,號稱實現了歐洲創業公司裡商業化的最快記錄。完全可以判斷的是,在2025年,類似Cursor/Winsurf的項目級程式設計自動化工具將會百花齊放,開源社區也一定會有強大的平替出現。
有趣的是,基本上所有的AI程式設計工具,都是借助了微軟的力量 -- 這些AI程式設計工具基本都是基於開放原始碼的微軟VS Code程式碼編輯器來二次開發-- 基礎的編碼偵錯等互動UI都是現成的,苦活髒話累活VS Code全搞定了,創業團隊只需要想辦法在VS Code裡整合進大模型來對程式碼進行分析修改即可。當下AI程式設計工具爆發的景象,微軟的VS Code開源絕對功不可沒。
微軟自家的Github CoPilot AI輔助程式設計概念起了一個大早,目前恐怕有一點點趕晚集的危險。顯然,微軟絕對不會把AI程式設計蛋糕拱手讓人,在2025年,AI程式設計工具是大廠和創業公司兵家必爭之地。而最終受益的, 顯然還是我們這些使用者。
就城主目前使用的情況而言,和大語言模型類似, AI程式設計工具並沒有一個絕對的粘性,除非未來AI程式設計工具把使用者資料/程式碼以某種雲端儲存的方式做了繫結,否則項目程式碼甚至可以在開發中途直接切換到另外一個AI程式設計工具上(如果工具都是基於VS Code那就更方便了)而不會影響到使用者的開發。
(當然,要推動使用者換工具就必須要有明顯的功能/性能提升。說到這裡有一個小插曲是WindSurf的爆火,很大程度上是因為WindSurf在自動化程式碼模式上步子邁得更快,比Cursor更先一步實現了程式碼的全自動編寫和偵錯,才在Cursor已然成名之時異軍突起,成就了當下雙雄的局面。)
有一點是可以確定的, 在2025年,所有專業程式設計師所用的,都必定是Cursor/WindSurf或者更好的項目級AI程式設計工具。缺少AI支援的程式設計工具,現在就可以斷言已經被淘汰了。無它,只因項目級AI程式設計工具的效率提升太明顯。根據城主的親身使用,結合當年的一些工作經驗,可以毫不誇張的說,AI時代之前的一個普通軟體工程師一天的工作量,在當前AI程式設計工具的加持下,5分鐘即可完成。其效率的提升,是8小時x60/5分鐘=96,即100倍左右的提升。考慮到在大規模項目中一些效率損耗,我們把這個打個折上摺,最後怎麼算下來, 20~30倍的效率提升肯定是有的。
故此,不必展望未來,只看當下,使用AI程式設計工具的程序猿和程序媛必定勝出。不使用AI程式設計工具的程式設計師 - 如果還有的話,需要認真做好首先被公司裁員的準備。
至此,我們完全可以理解為什麼Cursor/WindSurf出道即巔峰,商業收入一飛衝天:效率提升太明顯,效果太好了,實在忍不住付費了。
普通人的玩具,程式設計師的神器
儘管一些媒體文章有所渲染,一個完全不懂得程式設計的人也可以使用Cursor/WindSurf,動動嘴皮子就可以完成指令碼程式設計 - 這在某種程度上的確是事實,也是Cursor/WindSurf強大的地方, 在一個可控的程式碼規模內(可控的意思,大概在幾百行程式碼之間吧)它們能完全自主的根據自然對話,實現一些簡單功能的程序指令碼,比如文字處理,或者一些小遊戲等等。基於內建的終端運行和偵錯能力,Cursor/WindSurf還可以絲滑的自動測試甚至進行簡單的自動部署。
但至少在當前的大模形狀態下, 這個全自動黑盒的完美程式碼能力是有限的 -- 我們也可以反過來想,如果AI程式設計工具已經實現了沒有複雜度規模上限和程式碼量上限的完美自動程式設計,這個工具就不能叫做AI程式設計工具,必須要稱之為AGI程式設計工具了。到那一天,人類科技歷史真的要翻過新篇章。
當下的情況是,在AGI誕生之前, AI程式設計工具的能力必定在一個有限範圍。“不懂程式設計的人用Cursor/WindSurf就能當程式設計師”這種炒作聽聽就算了 。不會程式設計的同學使用這些AI程式設計工具,其實有點像哆啦A夢的口袋,可以開出各種好玩的工具,但需要碰運氣看看是否好用。
這裡的本質問題還是上下文窗口。其中有一個細節, WindSurf一次只能讀取200行的程式碼,超過200行的程式碼會分批讀取,依靠上下文記憶來實現連續性。當程式碼檔案足夠長的時候(上千行以上),讀取分析程式碼檔案和修改本身都將導致不穩定性。顯然,這和當前大模型真正有效的上下文窗口有關。我們可以期待當新一代具有超長上下文窗口的大模型被AI程式設計工具更好的整合後,這個問題會得到一定的緩解。
只是,在達到AGI之前,我們仍然有這個限制:AI程式設計工具並不能100%完美和正確;而希望使用AI程式設計工具的人做出真正產品等級項目的同學必須擁有的三個能力是
1,技能一,具備項目程式碼組織能力。
簡單而言,你大致上要知道做這個事情,有那幾塊模組需要實現, 如何分拆這些模組到不同的檔案以便更好的組織管理;重要的是,當AI出錯時,合理的檔案拆解能方便定位錯誤/恢復正確邏輯。同時,如果需要,這個人必須有對程式碼片段的閱讀理解能力。如果只是指望靠AI來把握一大坨黑箱程式碼,那麼能做的就只有祈禱AI下一次更新程式碼時項目還能繼續保持運轉:當程式碼行數不斷增長時,複雜度將很快爆炸到AI無法自持的程度。
所以,這也是為什麼,目前還是只有具備專業程式設計能力的人,才能最大程度發揮AI程式設計工具的能力。就好比一把屠龍寶刀,拿在一個成人手裡和一個小孩手裡,那是完全不一樣的。
2 技能二,需要會問問題。
學會提問,其實是AI時代的核心技能。
Cursor/WindSurf這些AI程式設計工具有一個很大的特點,它既是苦力,也是老師,關鍵是看你能否問得出合適的問題。當然我們可以簡單描述一個功能,讓AI使勁折騰,然後開一個寶箱看看是否正確。
但如果你能深入的問一些技術向的問題,與AI有更好的互動,甚至給AI一點啟發性提示比如使用什麼庫來實現什麼,或者大致怎麼劃分功能,AI會很輕易的給出更驚喜的表現。
顯然,能否問出合適的問題,完全要靠自身實際程式設計經驗的積累。
3 技能三,迅速學習的能力
AI程式設計工具之於人類程式設計師的加成,一方面是編碼速度;另一方面,則是程式設計知識能力的擴展。
人的知識庫是有限的, 但AI程式設計時會覆蓋已有的所有可能選擇,挑選最合適的元件/程式碼庫來實現功能,AI程式設計工具的專業使用者,需要第一時間跟上AI工具的節奏,迅速理解AI引入的新技術,才能持續把項目牢牢掌控在手裡。
這一點聽起來玄乎,其實是每一位合格的程式設計師的標準技能而已。所有靠譜的程式設計師,都是終身學習的高手,都是在工作中不斷學習中成長。因此,與AI老師+勞工的互動交流,只會是一個更良性的循環。
年輕人的雙刃劍
全流程AI編碼工具的出現,對於專業程式設計師,意義相當深遠,這些工具徹底改變了編碼工作的流程和方式。
未來在程式設計工作崗位能站穩腳跟的只有一種人,那就是掌握AI工具進行程式碼生產,且同時知道自己在做什麼的人。
問題恰恰在於,和AI工具動嘴皮等待輸出結果開寶箱很爽;但要知道自己在做什麼,同時知道AI在做什麼,這就有點難了。
這還是回歸了前面一直表達的一點,只有理解程式設計,具有學習擴展的能力,才能最好的發揮AI程式設計工具的能力。
這對當下立志進入軟體行業的年輕人提出了很大挑戰。
有經驗的程式設計師都知道,一個人的編碼能力是通過大量痛苦的練習,反覆的熬夜偵錯,各種踩坑積累而來。從一個新人到一個熟練的程式設計師需要經歷千錘百煉。而在現在AI碾壓的工作效率下,工作環境裡純新人是沒有任何機會的 -- 老闆們是願意付一個ai工具的少許訂閱費用,還是願意花不菲的價格去培養編碼新人,不言而喻;更不用說編碼新人的能力已經無法和AI工具媲美了。
對今後立志進入軟體行業成為“AI編碼操作員”的同學們來說,唯一的機會就是在大學學習期間不要只顧風花雪月和遊戲天地,而是花足夠的時間默默積累足夠的程式設計經驗,並向公司證明自己能和老員工一樣,熟練使用AI程式設計軟體解決真正的產品等級問題,生成和管理足夠複雜度的程式碼項目。
這些要求其實也是合理的,甚至可以暢想,未來的程序新人面試方式,不再是考現場解演算法題目,而是給一個ai程式設計工具和幾個小時時間,現場去實現一個相當複雜度的實際軟體項目。
在這樣的新形勢下,如上一節所提到,技能3 “迅速的學習能力” 就是立志進入這個行業的新同學所必須擁有的,然後選擇一個如良師的AI程式設計軟體,陪伴自己走完從新人到熟練老手的那段時光,成為一個合格的程式碼生產者。
都是AI生成,程式碼生產和內容生產的最大區別在於,前者是在製造生產工具,這個生產工具可以自行產出包含後者的內容。 比如,最簡單的例子,通過AI程式設計工具, 我們可以很快寫出一個對全文進行自動總結的指令碼,當然你可以說通過web端的AI問答也可以做到這一點。但如果這個指令碼可以自動遍歷一個目錄自動生成所有檔案的總結呢?這就是程式碼自動化的強大之處了。
AI程式設計自動化,本質上是在幾近科幻的自動打造生產力機器,打造速度超越前AI時代百倍。
未來的AI時代裡,人類也許將分幾個階層,最高一個層次是會掌握AI程式設計軟體的人,這是最高等級的生產者,可以生產自己所需的工具。第二個層次是會使用AI生成內容(文字,音樂,視訊,等等),這也是合格的生產者,第三種人屬於只能當消費者的無法掌握AI的人, 我們的後代最好成為第一層次的人。
一人公司的開端
在AI概念和應用開始普及的2024年,一個有趣的概念“一人公司”開始進入大眾話題。顧名思義,就是借助生成式AI的能力,以前需要多人協作的工作有可能一個人就搞定了;聰明人有機會以一人之力,成為一家公司。
這個美好的設想在不同的領域是不一樣的,對於需要大量人與人面對面交流的領域,這顯然要打一個問號;但對於大量和電腦打交道工作的網際網路/科技行業,這個美好的設想的確讓人心動。從生成式AI的表現來看,包括財務資料處理,文案處理,市場行銷規劃等等各方面在過去需要專業人士做的事情,AI已經可以參與並且扮演一個重要甚至獨立的角色。
只是,我們都知道,網際網路/科技行業的核心還是程式碼,無論其他各種AI輔助角色多麼給力,科技界的一人公司核心問題仍是,一個人的程式碼輸出能力通常很難和一個團隊相比。大神可以解決核心問題,但程式碼生產和軟體構架,需要很多基礎工作,髒活累活太多了。一個人的認知可能足夠,但無奈時間太少,需要做的事情太多,用傳統的方式靠一個人去堆程式碼實現大規模的軟體或者線上應用是一個太挑戰的事情。
但現在不同了。
按照前面城主所說,即使除去各種可能的效率損耗,AI程式設計工具對於程式設計師的效率加成也在數十倍的量級,我們可以說,熟練掌握了項目級AI程式設計工具的資深技術人員完全相當於傳統編碼時代的10~20人的技術團隊的輸出效率。
甚至更高,我們知道,技術團隊越大,人與人溝通的邊際成本就越高。所以真正核心的技術團隊,永遠都是小幾十人的規模。而且,資深的技術主管往往對下屬都有一種恨鐵不成鋼的情緒,如果不是為了培養團隊以及時間不夠,還不如自己沖上去手碼程式碼得了。
現在,技術高手擁有了AI程式設計工具,自己就是一個產品技術團隊。這種曾經的奢望,現在已然是現實。
如果這樣的高手還擁有產品/營運/市場思維,那就是妥妥的真·一人公司。
(那有些技術大佬不善於營運和marketing怎麼辦?很簡單,求助AI或者拉太太一起嘛)
人類的公司制度已經有不短的時間了。除了個別內容生產者,比如作家,畫家,以及最近的自媒體,絕大部分的人的工作都需要在一個團隊裡完成。
在網際網路/科技行業,也有一些獨立開發者的例子,以單槍匹馬之力,通過web/app/遊戲方式實現了一些商業回報。只是,網際網路行業的個體生產雖然美好,但在此前的軟體編碼條件下無法保持規模擴大後的的程式碼輸出效率和版本迭代,因此大多數的結果都需要轉化為小團隊作坊模式。
如今全域AI程式設計工具的出現,賦予了一種極大的可能性,在2025年我們將目睹科技圈裡真正的一人公司開始湧現。
在中國當下的大環境下,這個可能性顯得更有意義。從短期來看,技術的突破性進展為眾多有能力的人提供了更多的選擇和想像力;長遠而言,它將改造我們整個社會協作的模式。 (Web3天空之城)