AI Engineer Europe 2026 · 演講 · 2026-05-27 · 16 分
為什麼 vibe coding 該選 Rust
Why Rust is the Ideal Language for Vibe-Coding · Daniel Szoke,Sentry
Daniel 是 Sentry 的 Rust SDK 維護者,主張 LLM 容易出錯,所以該選編譯器限制多的語言,而不是看起來最好寫的 Python 或 TypeScript,並以 fearless concurrency 的範例說明。
概要
- 慣例選語言的理由Daniel 說 Python、TypeScript、JavaScript 被視為 vibe coding 首選,因為常見、框架範例多、好上手、容易跑起來看結果,模型也很會輸出可執行的程式碼。
- 好寫不等於好Daniel 認為「模型寫起來容易」的重要性被高估,動態又有彈性的特性讓模型好寫,同時也讓錯誤更容易發生。
- LLM 一定會出錯LLM 本質上是非決定性的系統,錯誤不會完全消失;光靠測試和 code review agent 擋不住,因為測試可能寫在實作之後、也無法窮舉輸入,測試本身還可能是 LLM 寫的。
- Harari 的「異類智慧」觀點Daniel 讀了 Yuval Noah Harari 的《Nexus》,引用書中把 AI 稱作 alien intelligence 的說法,推論 LLM 的失誤模式可能完全出乎人類預期。
- Rust 編譯器是決定性的防線型別嚴格、沒有通用 null、編譯器檢查多執行緒共享資料,程式能編譯,就能相當放心許多種 bug 不在裡面,錯誤訊息還帶足夠脈絡讓 agent 自己修。
- 取捨Rust 較難一次寫對,但 agent 在迴圈裡能自己編譯、看錯誤、修正;Daniel 認為編譯時間再慢,也比讓 AI agent 審程式快。
原話
▶ 05:10“just like the smartest humans make mistakes and we need to guard against human error,”
最聰明的人也會犯錯,所以我們得防人為錯誤,LLM 的錯誤也一樣要防。後半句緊接在下一行
▶ 06:14“because it's impractical to test every single possible input combination.”
因為要測遍每一種輸入組合並不實際
▶ 07:32“he actually likes to call it alien intelligence instead,”
Harari 其實更喜歡把 AI 稱作 alien intelligence
▶ 14:27“Rust is harder for LLMs to get right on the first try because there's so many rules they need to follow.”
Rust 對 LLM 來說更難一次寫對,因為要遵守的規則太多
▶ 15:01“but I guarantee you that it's faster than letting an AI agent review your code”
但我向你保證,這還是比讓 AI agent 審你的程式快
延伸
- Null 的處理:Rust 沒有通用的 null,要能為空就得明確定義成 option 型別,編譯器會強制你在取值前先檢查。
- Daniel 不是叫大家別用 AI 審程式,code review agent 還是該用,Rust 編譯器是多加的一層安全。
章節
點時碼直接跳到原片的那一段。
- 開場與主張Daniel 自我介紹是 Sentry 的 Rust SDK 維護者,提出 Rust 是 vibe coding 最理想的語言。
- 慣例的答案Daniel 問 ChatGPT 哪個語言最適合 agentic coding,得到 Python 第一、其次 JavaScript 與 TypeScript;自己的經驗則是 TypeScript 最近才是首選,並提到 GitHub 一篇文章說,以貢獻者人數算,AI 把 TypeScript 推上 GitHub 第一名。
- 這些語言好在哪常見又熟悉、框架與範例多、動態語言容易鷹架與執行,加上型別支援,模型本來就擅長輸出可執行的程式碼。
- 質疑「好寫」Daniel 認為模型好寫這件事的重要性被高估,有些情況反而是壞事,因為同一份彈性也讓錯誤很容易出現。
- LLM 必然出錯LLM 是非決定性的系統,不會完全不犯錯,就像最聰明的人也會犯錯,所以要防範 LLM 的錯誤。
- 測試與審查的缺口測試能幫上大忙,但只靠測試和 code review agent 有問題:測試常寫在實作之後、只能在失敗時證明有錯、也可能由 LLM 寫錯。
- Nexus 與異類智慧引用 Harari 的《Nexus》,LLM 是第一個非人類卻能產生人類語言的東西,思考方式不同,所以失誤模式可能出乎意料。
- Murphy's Law沒有決定性防線的語言,失敗遲早會發生,在 JavaScript、Python、TypeScript 這類缺少防線的語言裡會更常發生。
- Rust 是什麼編譯式語言,目標是跟 C、C++ 一樣快,同時記憶體安全、型別安全,編譯器嚴格到能編譯就能相當放心。
- 對 agent 友善的特性編譯器錯誤提供大量資訊,方便 agent 修復;型別嚴格不能用 any 繞過、沒有通用 null、並行由編譯器檢查。
- Fearless concurrency 範例100 個執行緒各替計數器加一,使用了只適合單執行緒的型別;TypeScript 可能能編譯、偶爾才出錯,Rust 直接編譯失敗,錯誤訊息還指出是哪個型別不能跨執行緒。
- 取捨與結論Rust 較難一次寫對,但 agent 在迴圈裡能編譯、檢查、修正,每個編譯錯誤都可能是一個避開的 production bug,編譯再慢也比 AI agent 審程式快。
名詞
- Sentry
- Daniel 任職的公司,在那裡維護 Rust SDK
- Rust
- 編譯式語言,Daniel 主張用它來 vibe coding,靠嚴格的編譯器擋掉好幾類 bug
- Nexus
- Yuval Noah Harari 的書,Daniel 從中借來「LLM 是異類智慧」的觀點
- Yuval Noah Harari
- 歷史學家,Daniel 轉述 Harari 的看法:LLM 是第一個非人類卻能產生人類語言的東西
- fearless concurrency
- Rust 編譯器檢查多執行緒間共享資料是否以執行緒安全的方式處理
- Murphy's Law
- 任何可能出錯的事遲早會出錯,Daniel 用來說明缺少決定性防線的風險








