用 Rust 比较多,Go 就用过一点点,就说一下我对 Rust 的感受。
我喜欢 Rust 的点:
1. 小写+下划线命名
2. 后缀式调用写着方便(不用倒回去加函数再加左右括号),格式化自动分行
3. trait 的设计思想,一个东西是什么,就取决于它的 trait (一个东西看起来像鸭子、游泳像鸭子、叫声像鸭子,那么它可能就是只鸭子)(虽然我基本不用)
4.
crates.io 提供的丰富的库(很多比 std 性能高,功能也强,比如 crossbeam_channel/mpsc::channel )
5. cargo 提供的便捷构建体验
6. 方便、无忧(编译过的话)的并发
7. 高性能( blazing fast!)
8. 所有权机制让我掌控每个变量
9. 方便的格式化(默认左大括号不另起一行正合我意)
10. 编译器帮我检查出来很多 bug
11. std 丰富的函数(如 split_ascii_white_space ,虽然很长吧...)
12. 某些时候函数式调用很舒服(大多时候还是循环用着爽,不必拘泥于一种模式)
13. 方便的测试(虽然我不怎么写测试)
14. 方便的文档,函数上用 ///注释,还可以用 markdown 语法,里面的代码还可以纳入测试
15. 强大的类型系统,特别是 enum ,表达能力很强
16. 编译型语言,出来的可执行文件不需要额外的环境,顶多需要一些动态链接库
17. 可以使用 C/C++写的很多库,如 OpenCV 、GStreamer 等,都有相应的 bindings
18. Option 和 Result 非常方便
19. match 模式匹配表达能力很强
我不喜欢 Rust 的点:
1. 编译太慢(极其重要的一个缺点)
2. move || {}的时候,经常需要在外面定义一个 clone 的新变量
3. 宏内的代码没法格式化
总的来说,Rust 的大多数设计都很符合我对编程语言的审美,所以我很喜欢 Rust 。