Go:
- 设计哲学: make your life easier
- Go does the right things for you by default
- 屏蔽底层复杂性,足够简单,足够高效,可成为云语言。
- 由于自动垃圾回收,学习门槛低,开发速度快。
- 由于垃圾回收,也带来潜在的性能问题,不可预测系统什么时候垃圾回收,一旦垃圾回收介入,对系统系统产生或多或少的影响
- 开发者不需要care、理解垃圾回收细节,容易导致不经意滥用内存,比如说创建大量的不必要的对象
Rust:
- 设计哲学: teach you to do the right thing
- 没有垃圾回收,通过暴露他出来帮助你理解他,在编程阶段迫使你做正确的事情,由于没有垃圾回收,程序性能更加好,内存天生安全。
- 基于所有权和借用的内存管理机制导致对开发者的要求比较高,开发速度相对Golang慢。
总结:
Go 更像一个比较温和,为你遮风挡雨的老师, 而Rust像一个要求比较严格,让你自己面对挑战的老师。