虽然不是同一领域的语言,但我还是觉得 Rust 要比 Go 更「好」,得出这一点是因为我觉得 Go 没有找到一个十分适合的场景。
Rust 显然是瞄准 C++ 去的,零开销抽象、内存安全、类型安全,最后能否替代 C++ 不好说,但至少是有可能的,这可是一个非常大的领域,包括操作系统、浏览器、编译器和虚拟机、图形引擎这些重量级的使用场景。
Go 的话定位就非常尴尬了,和 Python / Node.js 比起来抽象能力太弱(指的是提供的语言特性较为有限,例如异常、泛型、完整的面向对象),面对复杂多变的业务需求显得不那么够用;静态类型当然也有其好处,但似乎并没有比例如 Java 这样其他的语言强多少。从 Go 没有异常这一点来看,可能更适合系统编程(而非业务代码),确实 Go 也被用来一些网络中间件。但 Go 却又是有 GC 的语言,和 C 的互操作又不够高效,导致在系统编程的使用场景也非常狭窄。
https://github.com/ksimka/go-is-not-good