最近连续在 Quora
看到几个关于 Go 和 Rust 的问题,讨论的都是为什么看起来 Rust 的设计、性能等许多方面都优于 Go,但为什么就是没有 Go 流行呢?
以下是一些回答:
图片
- 首先 Go 是背靠 Google,受到了大量的资金、人员的支持。
- 两者的领域不同, Go 更擅长网络和通用的开发,而 Rust 更擅长系统开发。
- Rust 的主要竞争对手是 C 语言这样有深厚底蕴的编程语言。
图片
- Go 很简单,开发者想要写点东西只需要花很少的时间来学习,而相反的 Rust 的学习线路更佳陡峭。
- Rust 的语言设计很好,但是编译器有时候非常苛刻(不过也正是因为这一点,Rust 写的代码更加安全高效)。
- Go 有许多好用的标准库,而 Rust 的标准库较少(说到标准库那还是 Go、Python、C# 这类语言的标准库更加强大)
图片
- 因为 Rust 现在并不是“更好”语言的唯一选择,有以下一些原因不选择一门语言。
- 团队对一门语言的掌握程度
- 还有迁移成本、现有的代码库、工具链等。
图片
- Rust 语言更接近 C++ 而不是为应用设计的语言
应用程序开发的广度肯定比系统语言的用户更多。
- 速度和资源占用并不是主要的问题,开发者的时间成本比服务器成本更高。
其实 Go 的资源占用已经很好了,相对于 Java 来说。
总的来说 Rust 和 Go 本质上都不是解决同一类型的语言。
Rust 的更加偏向于系统编程,而 Go 可以拿来做应用开发,更多的是做云原生开发。
Go 的学习曲线也比 Rust 低很多,同时背靠 Google 也带来了许多杀手级的应用(kubernetes、Docker 等)
参考链接: