編輯 | 伊風(fēng)
AI 會(huì)有自己的編程偏好嗎?
如果問 Claude Code “最偉大的編程語言”是什么,它又會(huì)怎么回答呢?
今天,Hacker News 上一篇技術(shù)博客引發(fā)了熱烈討論。作者結(jié)論相當(dāng)直接:靜態(tài)類型語言更適合“Vibe Coding”。
圖片
自從 Claude Code 上線后,這位作者改變了自己十多年依賴 Python 開發(fā)的習(xí)慣。
轉(zhuǎn)而頻繁使用自己并不十分熟悉的 Rust 等強(qiáng)類型語言。
憑借 Claude Code 的功能和編譯器的安全檢查,他即使在并不熟悉的語言中,也能快速生成并驗(yàn)證數(shù)千行改動(dòng),而且?guī)缀醪黄茐姆€(wěn)定性。
他甚至預(yù)測(cè):
在企業(yè)生產(chǎn)環(huán)境中,Python 的采用率將會(huì)下降——盡管我個(gè)人依舊很喜歡它。
然而,這樣的結(jié)論在評(píng)論區(qū)卻遭到不少質(zhì)疑與反駁,尤其是在 Rust 這個(gè)熱門語言上的討論,更是針鋒相對(duì)。
接下來,我們就看看,作者是如何得出“AI IDE 更擅長(zhǎng)靜態(tài)類型語言”這一判斷的,而他的觀點(diǎn),又能否站得住腳?
1.因?yàn)?Claude Code,我轉(zhuǎn)向了 Rust——更快、更安全
作者說,在CC上線后,他超過 10 年的編程習(xí)慣發(fā)生了巨變。
Python 不再是他新項(xiàng)目的首選語言。
如今,他常常管理一些并不精通的語言項(xiàng)目——TypeScript、Rust 和 Go——而且運(yùn)行得相當(dāng)順利。
對(duì)他而言,這很反直覺:過去,他一直習(xí)慣用 Python 把項(xiàng)目“Vibe”出來。
而在 AI IDE 的加持下,他逐漸發(fā)現(xiàn),靜態(tài)類型、編譯型語言在 vibecoding 中反而更適合,因?yàn)樗鼈兲峁┝烁鼜?qiáng)的安全性保障。
當(dāng)項(xiàng)目規(guī)模達(dá)到一定程度后,Claude Code 搭配 Rust 反而比搭配 Python 更快、更安全——哪怕 Rust 的代碼更底層。這完全得益于 AI 工具的加入。
他舉了個(gè)例子:在 TextCortex 重構(gòu)大量 TypeScript 前端代碼時(shí),Claude Code 會(huì)在完成每個(gè)任務(wù)后自動(dòng)運(yùn)行 tsc,確保代碼編譯通過才提交。這樣的工作流,讓他的效率遠(yuǎn)超使用 Python——畢竟 Python 并沒有編譯期的安全網(wǎng)。更讓他驚訝的是,那些在短短幾小時(shí)內(nèi)提交的 3-5k 行改動(dòng),不僅沒有破壞系統(tǒng),反而提升了穩(wěn)定性。
“大語言模型依然是‘有泄漏的抽象(leaky abstractions)’,”作者寫道,“但它們現(xiàn)在已經(jīng)足夠成熟,既能保留過去 Python 的快速原型開發(fā)體驗(yàn),又能避免 Python 在安全性、性能、語義清晰度上的短板?!?/p>
他甚至預(yù)測(cè),未來生產(chǎn)環(huán)境里,Python 可能會(huì)被包括 Rust 在內(nèi)的強(qiáng)類型語言擠壓。
的確,Rust 擁有內(nèi)存安全、零成本抽象、強(qiáng)類型和編譯期檢查等特性,但作者的個(gè)人體驗(yàn),未必能代表大多數(shù)開發(fā)者的現(xiàn)實(shí)感受。
2.網(wǎng)友質(zhì)疑:大模型在生成 Rust 代碼上是出了名的差!
在評(píng)論區(qū),不少有 Rust 經(jīng)驗(yàn)的開發(fā)者對(duì)“更快、更安全”的說法表示質(zhì)疑,甚至給出了完全相反的故事。
許多網(wǎng)友認(rèn)為,AI 生成的 Rust 代碼質(zhì)量堪憂——即便能編譯通過,也常常低效、臃腫、不優(yōu)雅。
“這和我用 Claude 寫 Rust 的體驗(yàn)完全不符。我有 2.5 年的 Rust 商業(yè)開發(fā)經(jīng)驗(yàn),水平不差。Claude 會(huì)在 Rust 代碼上產(chǎn)生幻覺,因?yàn)樗墙y(tǒng)計(jì)模型,而不是靜態(tài)分析工具。即便寫出能編譯的代碼,這些代碼通常也低效、難看?!?/p>
圖片
造成這種現(xiàn)象的原因,當(dāng)然也和 Rust 語言本身的特性密切相關(guān):
1)語義難度高
Rust 的內(nèi)存安全和所有權(quán)系統(tǒng)對(duì) LLM 來說理解門檻很高。
“我看到 LLM 在 Rust 上的主要困難,是理解語言語義——也就是編譯器靜態(tài)驗(yàn)證的那些規(guī)則。比如,它們會(huì)‘以為’存在 use-after-free 或 use-after-move 這種問題,但在安全的 Rust 中,這根本不可能發(fā)生,因?yàn)檎Z言本身保證了不會(huì)出現(xiàn)這種情況。
Rust 是為數(shù)不多真正做了新東西的語言,它的語義和 Go、TypeScript 的差異,比 Go 和 TypeScript 之間的差異大得多。我猜在 Haskell、OCaml、Prolog 這類語言中,LLM 的表現(xiàn)也會(huì)差不多?!?/p>
圖片
2) 邊緣情況多,寫法不統(tǒng)一
Rust 的標(biāo)準(zhǔn)庫龐大、邊緣情況豐富,甚至還有不少“看似應(yīng)該存在但實(shí)際沒有”的特性,例如沒有沒有隱式類型轉(zhuǎn)換,沒有默認(rèn)的沒有默認(rèn)的“空值”/null等等。這些都容易讓 AI 生成錯(cuò)誤代碼。
大語言模型在生成 Rust 代碼上是出了名的差?!?Rust 本身坑很多、標(biāo)準(zhǔn)庫龐大且邊緣情況多,還有很多你以為應(yīng)該存在但其實(shí)不存在的東西。Rust 的寫法種類也很多,而不是像有些語言那樣只有一種慣用法。
3)訓(xùn)練數(shù)據(jù)劣勢(shì)
與 Java、Python 相比,Rust 在 LLM 訓(xùn)練語料中的高質(zhì)量代碼庫相對(duì)較少,這直接影響了模型的生成質(zhì)量。
一方面,Rust 誕生時(shí)間較短(2015 年穩(wěn)定版發(fā)布),成熟項(xiàng)目和大規(guī)模開源庫數(shù)量有限;另一方面,很多 Rust 代碼分布在較小的社區(qū)倉庫中,不像 Java/Python 那樣集中在大型開源項(xiàng)目和知名代碼平臺(tái),爬取難度也更高。
3.不過,這并不表示AI IDE不合適寫Rust
Rust 一直以高性能和內(nèi)存安全著稱,但學(xué)習(xí)曲線陡峭。
如今,Claude Code 等一類好用的 AI 編程工具,正在顯著降低 Rust 的上手門檻。
有網(wǎng)友指出,即便是相對(duì)小眾的語言(如 OCaml、Scala),在 AI 輔助下產(chǎn)出高質(zhì)量結(jié)果的時(shí)間和精力成本都大幅下降——雖然第一次生成幾乎不會(huì)完全正確,但修正和迭代的速度快了很多。
那么,如何利用 Rust 的特性找到適合 AI 輔助的用法?
一位開發(fā)者分享了自己的經(jīng)驗(yàn):
我用 Claude 寫 Rust 的結(jié)果還不錯(cuò)。我的提示語通常是這樣: “我有一個(gè)數(shù)據(jù)庫表 Foo,這是它的 DDL:<SQL>,幫我在 /v0/foo 創(chuàng)建 CRUD 接口;用和 Bar 相同的代碼風(fēng)格?!?我覺得它在模仿現(xiàn)有代碼風(fēng)格方面做得挺好。
原因在于,強(qiáng)類型語言在 AI 編碼中確實(shí)能形成更快的錯(cuò)誤定位與修復(fù)循環(huán)。
另一位網(wǎng)友補(bǔ)充:
“尤其是在 agentic coding 環(huán)境里。強(qiáng)類型/靜態(tài)類型語言配合良好的編譯器提示,能通過解析和類型檢查形成非??斓姆答佈h(huán),而如果配合像 Claude.md 這樣的規(guī)則文件,還能迭代得更快?!?/p>
4.寫在最后:AI并不能直接幫你上手不會(huì)的語言
為什么評(píng)論區(qū)有人說“AI 寫 Rust 出奇地差”,而作者卻有完全相反的體驗(yàn)?
一位網(wǎng)友給出了一個(gè)有趣的解釋——他借用了傳播學(xué)中的“媒介素養(yǎng)”概念:當(dāng)人們?cè)谀硞€(gè)領(lǐng)域是專家時(shí),他們能分辨信息源的好壞;但當(dāng)他們對(duì)主題不熟時(shí),往往會(huì)假設(shè)信息源至少是靠譜的。
他說,自己在用大語言模型做 Web 開發(fā)時(shí),也有和作者類似的感受:看起來 AI 的表現(xiàn)很不錯(cuò)——至少比自己手寫的“爛攤子”要好。但問題是,他其實(shí)沒有資格去判斷 AI 代碼的真正質(zhì)量?!?/p>
他說了一句很扎心的話:“我覺得,AI 的不少價(jià)值,都來自工程師以為自己有資格判斷它寫得好不好?!?/p>
這番話引起了不少共鳴。有人補(bǔ)充說:
“雖然 AI 寫不好 Rust,但如果讓它從零生成可用且優(yōu)雅的 Python 代碼,它反而挺不錯(cuò)的。順便說一句,我并不精通 Python。”
那么,AI 最擅長(zhǎng)寫的,其實(shí)正是你不精通的語言?
在諷刺之余,這也提醒了我們:在 AI 時(shí)代,開發(fā)者的持續(xù)學(xué)習(xí)依然有意義——編程能力既無法被一鍵自動(dòng)化取代,也需要為所謂的“AI 編程神話”降降溫。
不過,像作者這樣,被 Claude Code 改變十年編程習(xí)慣的故事,未來只會(huì)越來越多。
你覺得 AI 更擅長(zhǎng)寫哪種語言?
你有被哪款 AI IDE 改變過編程習(xí)慣嗎?歡迎在評(píng)論區(qū)聊聊。

































