天天看點

強大的Rust還是簡單的Go?我選擇了Go

一名後端開發者講述了自己如何在 Rust 和 Go 之間做出選擇。

“Rust 還是 Go,我該選擇哪一個?”是我經常遇到的一個問題。不過我的答案也很簡單 —— 選擇 Go。

之是以這樣選擇,不是因為 Go 是更好的語言,而是因為對于一個(看似)簡單的問題,人們更想要一個簡單的答案。

強大的Rust還是簡單的Go?我選擇了Go

兩門語言似乎都在競争同一使用者群,而且它們似乎都是“系統程式設計語言”,是以它們之間一定會分出輸赢,是這樣嗎?

下面介紹一些實際情況。Rust 具有以下的一些特性:

能安全應對空指針、競态條件和各種低級威脅

可預測的運作時行為(零代價抽象 zero cost abstractions,無垃圾回收)

(幾乎)擁有對硬體的整體控制(記憶體布局,處理器功能)

與其他語言的無縫互操作性

如果您不需要任何這些功能,Rust 可能不是很好的選擇。這是因為這些功能帶來了成本:ramp-up time。

使用 Go,你可以快速完成任務。Go 是我使用過的最有生産力的語言之一。它的準則是:解決今天真正的問題。

我不認為 Go 是一門優雅的語言。它最大的特點是簡單,Go 甚至不是系統程式設計語言,盡管使用它在後端基礎架構上編寫微服務和工具非常棒,但我不希望使用它編寫核心或記憶體配置設定器。

相對來說,Rust 比較難。我花了好幾個月的時間,才讓它能有點提升我的生産力。Rust

是一門強大的語言,而且它每天都在變得更強大。對我而言,Rust 更像是一個“實用的 Haskell (pragmatic

Haskell)”,而不是“更安全的 C (safer C)”.

99% 的時間,Go 的表現是足夠好的,剩下的 1%,你知道的。然後再看看 Rust,你會發現這兩門語言互相補充得很好。

本文作者:佚名

來源:51CTO

繼續閱讀