newsence
來源篩選

Farewell Rust

Hacker News

The author reflects on his programming journey from learning Pascal and C in school to his professional evolution, sharing his deep appreciation for low-level memory control. This personal narrative sets the stage for his transition away from the Rust programming language.

newsence

告別 Rust

Hacker News
9 天前

AI 生成摘要

我回顧了從中學時期學習 Pascal 到愛上 C 語言精準記憶體控制的編程歷程,並分享了我在成為專業軟體工程師路上的成長故事,以此作為我告別 Rust 語言的前奏。

背景

本文作者 Dmitry Kudryavtsev 分享了他從熱愛 C 語言到擁抱 Rust,最後卻決定在 Web 開發領域「告別 Rust」並轉向 Node.js 的心路歷程。作者強調,雖然 Rust 在效能與記憶體控制上表現卓越,但對於追求開發效率與生態系成熟度的 Web 專案而言,Rust 帶來的開發摩擦力與編譯負擔,最終讓他選擇回歸更高階的動態語言。

社群觀點

Hacker News 的討論焦點主要集中在「工具與場景的適配性」。許多評論者指出,這並非 Rust 語言本身的失敗,而是「Rust 用於 Web 開發」這一特定領域的權衡問題。有觀點認為文章標題若改為「告別 Web 領域的 Rust」會更精確,因為在 Web 環境中,效能瓶頸通常存在於資料庫、磁碟或網路 I/O,而非 CPU 運算,這使得 Rust 的低階優勢難以發揮。

針對開發體驗,社群對 Rust 的編譯時間與開發摩擦力有深刻共鳴。有網友提到,隨著專案規模增長,長編譯時間會成為開發者揮之不去的陰影,即便升級硬體也只能暫時緩解。此外,TypeScript 與 React 生態系的成熟度被視為難以逾越的門檻,其熱重載、除錯工具以及與 DOM 的原生整合,提供了 Rust 難以企及的開發流暢度。部分開發者直言,在 Web 專案中浪費「創新額度」去處理 Rust 的生命週期或複雜的錯誤處理(如不斷鏈接 ok_or 與 map_err),往往得不償失。

然而,社群中也不乏支持 Rust 的聲音。支持者認為 Rust 在後端服務中能顯著減少半夜被維運警報吵醒的機率,其嚴格的型別檢查與窮舉式列舉匹配提供了極高的穩定性。關於資料庫操作,有討論指出作者抱怨 sqlx 難以處理動態查詢是設計使然,目的是為了安全性,而改用 Sea-ORM 等工具能獲得更接近高階語言的開發體驗。

此外,討論也延伸到了 Go 語言的對比。部分開發者偏好 Go 的標準庫穩定性與向後相容承諾,認為 Rust 生態系過於碎片化且依賴項膨脹嚴重。但反對者則認為,Go 的保守導致其標準庫中充斥著過時的設計,而 Rust 透過生態系的快速迭代,能更有效地完善技術方案。

延伸閱讀

在討論串中,開發者們提到了幾個能改善 Rust 或 Web 開發體驗的工具。在 Rust 資料庫操作方面,Sea-ORM 被推薦為比 sqlx 更具彈性的選擇,特別是在需要強大查詢構造器(Query Builder)的場景下。針對 Web 效能與跨語言協作,有留言提到使用 Claude Code 輔助開發 Rust 並編譯為 WebAssembly 的工作流。此外,在 Node.js 生態中,Kysely 被視為一個能在不犧牲型別安全的情況下,提供優雅動態查詢體驗的工具。針對 Python 開發者,uv 與 Polars 則被提及作為現代化且高效能的替代方案。