为什么要使用Rust,复杂性来自哪里?
——Dragan Rakita 在twitter上做了关于Rust的分享
1.Rust看起来很受人喜欢。自2016年以来,Rust每年都在Stack Overflow开发者调查中被评为“最受欢迎的编程语言”。
2.工具和生态很赞。Cargo是你期望从新一代语言中获得的工具。cargo run/build/fmt/clippy/doc和crates.io统一了生态中Rust项目。
3.项目/代码组织做的很好。Rust允许将一个包拆分为多个crate(lib/binaries),并将一个crate拆分为模块,以便可以在一个模块中引用另一个模块的内容。
4.对抽象和数据类型很轻。具有预期的原始类型和控制流。有Struct/Enum/Tuple等复杂类型,抽象在Traits上完成。Traits很nice,使用“孤儿规则”,不能用他们的代码破坏你的代码。
5.枚举和模式匹配用途广泛且令人赞叹。枚举是标记的联合,模式匹配允许部分匹配复杂数据类型的值以进行条件分支或分解数据。
6.具有内存安全。所有权让我们有垃圾回收的感觉,但是在编译时。
7.引用和生命周期:生命周期是规则的副产品,引用始终需要有效且所有权在编译时完成。它有一个陡峭的学习曲线,且可能会变得繁杂。
8.无惧并发和async/await:所有权和生命周期消除了数据竞争。async/await是Rust的绿色线程,它的运行时只是外部库,且速度很快。
9.具有函数式编程特性:闭包和迭代器是对语言很好的补充。
10.泛型和卫生宏。
11.一些小却能拯救你生活的特性:编译错误是上帝赐予的,也是Rust流行的主要原因之一。让错误传播更简单。