主要观点:作者写代码常选 Rust 是因其编程愉悦,Rust 有诸多优点,如表达性强的类型安全、不易崩溃、抗数据竞争、可灵活控制、兼具函数式和命令式编程风格、有帮助的编译器错误等。
关键信息:
- Rust 类型系统兼具类型安全和表达性,如在表达想法方面比 Go 更易,且编译器能确保类型使用正确,但类型系统有时会导致代码启动运行时间变长、泛型代码难读。
- Go 存在“十亿美金错误”即空指针,可能导致程序崩溃,而 Rust 尽量避免崩溃,需用
unsafe
处理可空值,可配置clippy
拒绝使用unwrap
的代码。 - Rust 的借用检查器能有效防止数据竞争,使并发代码编写更难出错。
- Rust 能让程序员比其他语言更了解 CPU 和内存操作,有更多控制,预测性好。
- Rust 可支持函数式和命令式编程风格,且两种范式可相互转换,效率损失小。
- Rust 的编译器错误消息通常能准确指出错误并提供修复建议。
- 作者认为 Rust 有趣,虽有学习痛苦期但总体很棒,性能和安全是其优点之一,即使不需要顶级性能也值得考虑。
重要细节: - 作者曾受 C++编译器错误之苦,对比之下更觉 Rust 编译器错误有用。
- 作者因工作引入 Go 语言,若工作中使用不够会在业余时间使用,虽认为 Go 有用但不是最喜欢的类型系统。
- Go 中的空指针用
nil
表示,是零值等价于其他语言的null
。 - 若对成为更有效的软件工程师感兴趣,可考虑作者的教练服务。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。