Rust 在許多方面都優(yōu)于 Go,但為什么沒有 Go 流行?
最近連續(xù)在 Quora
看到幾個關于 Go 和 Rust 的問題,討論的都是為什么看起來 Rust 的設計、性能等許多方面都優(yōu)于 Go,但為什么就是沒有 Go 流行呢?
以下是一些回答:
圖片
- 首先 Go 是背靠 Google,受到了大量的資金、人員的支持。
- 兩者的領域不同, Go 更擅長網(wǎng)絡和通用的開發(fā),而 Rust 更擅長系統(tǒng)開發(fā)。
- Rust 的主要競爭對手是 C 語言這樣有深厚底蘊的編程語言。
圖片
- Go 很簡單,開發(fā)者想要寫點東西只需要花很少的時間來學習,而相反的 Rust 的學習線路更佳陡峭。
- Rust 的語言設計很好,但是編譯器有時候非常苛刻(不過也正是因為這一點,Rust 寫的代碼更加安全高效)。
- Go 有許多好用的標準庫,而 Rust 的標準庫較少(說到標準庫那還是 Go、Python、C# 這類語言的標準庫更加強大)
圖片
- 因為 Rust 現(xiàn)在并不是“更好”語言的唯一選擇,有以下一些原因不選擇一門語言。
- 團隊對一門語言的掌握程度
- 還有遷移成本、現(xiàn)有的代碼庫、工具鏈等。
圖片
- Rust 語言更接近 C++ 而不是為應用設計的語言
應用程序開發(fā)的廣度肯定比系統(tǒng)語言的用戶更多。
- 速度和資源占用并不是主要的問題,開發(fā)者的時間成本比服務器成本更高。
其實 Go 的資源占用已經(jīng)很好了,相對于 Java 來說。
總的來說 Rust 和 Go 本質(zhì)上都不是解決同一類型的語言。
Rust 的更加偏向于系統(tǒng)編程,而 Go 可以拿來做應用開發(fā),更多的是做云原生開發(fā)。
Go 的學習曲線也比 Rust 低很多,同時背靠 Google 也帶來了許多殺手級的應用(kubernetes、Docker 等)
參考鏈接: