跳至主要内容

幾個禮拜嘅工作量,20 分鐘搞掂!Redis 之父:手動敲程式碼嘅時代永遠終結咗

幾個禮拜嘅工作量,20 分鐘搞掂!Redis 之父:手動敲程式碼嘅時代永遠終結咗

本文作者 antirez 係著名嘅記憶體數據庫軟件 Redis 嘅創造者。佢嘅軟件作品正支撐住全球數千萬家企業嘅業務運行。antirez 曾係 AI 懷疑論者,甚至透過寫小說表達對人工智能自動化取代人類嘅擔憂。但佢最近嘅實踐證明,程式設計嘅現實已經永遠改變咗。 喺 antirez 嘅測試入面,Deep Code 展現出咗跨時代嘅效率。佢能喺 5 分鐘內編寫出 700 行邏輯嚴密、性能卓越嘅 C 語言程式碼。佢能自主迭代,再現並修復 Redis 中極其棘手嘅死鎖同定時漏洞。甚至連複雜嘅 Redis Streams 內部架構修改,佢亦僅需 20 分鐘即可完成。 antirez 認為而家嘅程式設計師唔應再執著於逐行敲擊程式碼,因為呢個喺大多數情況下已唔再明智。antirez 建議大家應該學習點樣成為 AI 嘅優秀合伙人,將精力集中於定義問題同設計方案。 並鼓勵每一位開發者開始學習並深度使用 Deep Code。正如 antirez 所講嘅,唔好因為拒絕現實而錯失掌控未來嘅機會。花幾個禮拜時間去測試呢啲新工具,搵到倍增自己效率嘅方法。程式設計最純粹嘅樂趣在於「構建」,而 AI 將讓你構建得更多、更好、更快樂。

我鍾意寫軟件,一行一行咁寫。可以講,我嘅職業生涯,就係不斷追求寫出簡潔、優雅、有品味嘅軟件。 老實講,我唔希望 AI 喺經濟上大獲全勝。我亦唔在乎而家嘅經濟體系是否被 AI 顛覆——如果佢朝住大規模財富再分配嘅方向走,我甚至會感到高興。 但如果因為自己對軟件同社會嘅睇法,而故意扮睇唔到現實,咁我就對唔起自己嘅理性。事實就係事實,AI 正在、而且必將永遠改變電腦程式開發工作

2020 年,我辭咗份工,去寫一部小說。內容係 AI、全民基本收入,以及一個為咗適應勞動自動化、喺各種挑戰下發生改變嘅社會。 2024 年尾,我開咗一個播主頻道,專門討論 AI,佢喺程式設計任務中嘅用法,以及可能帶嚟嘅各種影響。 雖然我好早就意識到呢啲變化會發生,但我一直以為,我哋至少仲有幾年時間,程式設計才會被徹底重塑。而家我唔再咁諗。 如今,借助最先進嘅大型語言模型,只要你畀出一組清晰嘅目標說明,就能幾乎唔需要人手輔助,獨立完成大型子任務,甚至中等規模嘅項目。 效果好唔好,取決於你做嘅係邊類程式設計(越係相對獨立、越容易用文字完全描述嘅任務越適合,例如系統程式設計),亦取決於你將問題喺腦入面諗清楚,並準確傳達畀模型嘅能力。 但總體嚟睇,而家已經好清楚:除咗純粹為咗好玩,喺大多數項目入面親手寫程式碼,已經唔再係最理性嘅選擇

過去一個禮拜,我幾乎只係喺寫提示詞,偶爾檢查一下程式碼、畀啲指導。就咁樣,我喺幾個小時內完成咗下面四件事,以前要花我幾個禮拜時間。

我修改咗自己嘅 linenoise 函式庫,讓佢支援 UTF-8。 我仲做咗一個行編輯測試框架,入面有一個模擬終端機能,能報告每個字元格入面顯示嘅內容。 呢件事我一直想做。但過去好難說服自己,為咗一個細細嘅子項目,只係為咗測試就投入咁多精力。 而家只需要將想法描述清楚,佢就能變成程式碼。情況完全不同。

我修復咗 Redis 測試入面偶發嘅失敗。 呢類工作非常煩人,涉及時間配合、TCP 死鎖之類嘅問題。 Deep Code 持續迭代,花足夠嘅時間去再現問題,檢查各個進程嘅狀態,搞清楚發生咗咩嘢,然後將 bug 修掉。

尋日,我想要一個純 C 函式庫,能做 BERT 類嵌入模型嘅推理。 Deep Code 用 5 分鐘就將佢寫出嚟。AI 喺 5 分鐘入面寫嘅函式庫嘅輸出效率同 PyTorch 差唔多,只係慢咗 15%。 成個函式庫只有 700 行 C 程式碼。仲順手寫咗一個 Python 工具,用嚟轉換 GTE-small 模型。

過去幾個禮拜,我改動咗 Redis Streams 嘅內部實現。 我為呢啲工作寫咗一份設計文檔。 我將文檔丟畀 Deep Code,佢喺大概 20 分鐘內就將我嘅工作全部重做咗一次。 耗時較長嘅部分係我自己喺檢查同確認命令。

而家發生嘅一切,已經冇可能視而不見。 大部分情況下,人類已經唔再需要自己寫程式碼。 更有意思嘅部分,變成咗搞清楚該做咩、點樣做。 喺「點樣做」呢一點上,大型模型亦係好好嘅搭檔。 至於 AI 公司能唔能收回投資,股市會唔會崩盤,從長遠睇都唔重要。 某間獨角獸公司嘅 CEO 講嘅嘢幾咁刺耳或荒謬,亦唔重要。 無論點樣,程式設計已經被永久改變咗。

對我嚟講,我寫過嘅程式碼被大型模型用嚟訓練,係一件好正嘅事。 我將呢個睇作係我一生追求嘅延續:讓程式碼、系統同知識更大眾化。 大型語言模型會幫我哋更快咁寫出更好嘅軟件。 亦會讓小團隊有機會同大公司競爭。 就好似 90 年代嘅開源軟件做過嘅咁。

作為程式設計師,而家我比以往任何時候都更想寫開源。 我想將一啲因為時間唔夠而被擱置嘅倉庫重新執返嚟改進。 我想喺自己嘅 Redis 工作流入面全面用上 AI。 先改進 Vector Sets 嘅實現,然後再輪到其他數據結構,就好似我而家喺改 Streams 咁。

但我為嗰啲會被裁嘅人感到擔心。 而家仲睇唔清楚具體會發生咩嘢變化。 公司或許會想要更多人,去做更多嘢。 亦有可能相反,只留下更少、但更擅長使用 AI 嘅程式設計師,以此壓縮薪資成本。 我亦擔心,喺其他好多行業入面,人類可能會變得幾乎完全可被替代。

關於點樣程式設計。 我只有一個建議,送畀你呢位朋友。 無論你心入面認為咩係「正確嘅事」,都無法透過否認現實嚟影響佢嘅發展。 選擇唔用 AI,對你同你嘅職業都冇好處。 好好諗吓。 認真咁去試呢啲新工具。 花上幾個禮拜時間,而唔係隨便玩五分鐘,只為咗證明自己原本嘅睇法。 想辦法讓自己「倍增」。 如果一開始冇搵到合適嘅用法,隔幾個月再試一次。

或許你會諗,自己當初咁辛苦學識程式設計,而家機器卻替你寫程式碼。 但嗰時支撐你捱夜寫到深夜,只為睇到項目跑起嚟嗰團火,其實係「創造」。 如果你搵到適合自己嘅方式,高效咁用好 AI,你就能創造得更多,亦能創造得更好。 樂趣仍然喺度,完好無損。