为什么要学习 Rust?

996 阅读2分钟

Rust 安全性

  • Rust 的思想和优点

    1. 思想:明确/(零成本)抽象/赋能
    2. 优点:兼具高性能/安全性/表达力
  • 代码缺陷的纠正

    1. 语法缺陷 -> RLS/Rust Analyser
    2. 类型安全缺陷 -> 类型系统
    3. 内存和资源安全缺陷 -> 所有权/借用检查/生命周期
    4. 并发安全缺陷 -> 所有权/借用检查/生命周期 + 类型系统
    5. 错误处理缺陷 -> 编译器告警
    6. 逻辑缺陷 -> 单元测试
    7. 功能缺陷 -> 集成测试
    8. 用户体验缺陷 -> 端到端测试/手工测试
  • 代码缺陷的代价

    1. 不引入任何缺陷 -> 不可能
    2. 在输入代码时发现 -> 毫秒
    3. 下次构建/测试时检测到缺陷 -> 秒/分钟
    4. 提交 PR 后 CI 发现 -> 分钟/小时
    5. Code Review 时发现 -> 小时
    6. 集成到 master 时发现 -> 小时/天
    7. 部署时发现 -> 天/周
    8. 在用户使用时发现 -> 周/月/年

Rust 目前的生态

大量高质量的顶级开源项目,一线公司纷纷采用。应用场景广泛,从嵌入式到 Web 应用。

  • 数据库
    1. Sled
    2. TiKV
  • 游戏引擎
    1. Bevy
    2. Amethyst
  • 数据处理
    1. Arrow
    2. Ballista
  • 图形界面
    1. Tauri
    2. Druid
    3. Iced
  • 区块链
  • 高性能网络及 I/O 开发
    1. Tokio
    2. smaltcp
    3. Warp
    4. Tonic
    5. Tungstenite
    6. Quiche
  • 运行时
    1. Deno
    2. Wasmer
  • 编程语言
    1. Rhai
    2. mun-lang
  • 硬件相关场景(OS、Hypervisor、Device Driver...)
    1. Firecracker
    2. RedoxOS
    3. Fuchsia
    4. Linux*
    5. Android*

Rust 的现在和未来

  • 国内外主要 Rust 职位方向

    1. 后端高性能网络服务开发
    2. 数据库/存储
    3. 跨平台基础类库/SDK
    4. 可信计算/数据与网络安全/隐私
    5. 边缘计算
    6. 区块链
  • 大厂使用情况及未来潜力

    1. 字节:飞书
    2. PingCap:TiKV
    3. Dropbox/Figma:文件同步引擎
    4. Cloudflare:边缘计算
    5. Facebook:区块链、SCM工具
    6. Amazon:AWS(e.g. firecracker VMM)
    7. Discord:状态服务

使用 Rust 的感受

  • 大部分应用场景,Rust 已经足够成熟
  • Rust 让重构代码变得轻松
  • Rust 体现了软件开发的诸多实践,学习 Rust 能让你成为更好的程序员
  • Rust 可以帮助你提升其他语言的能力
  • 思维转换,接纳所有权和生命周期
  • 抓住现象后面的本质
  • 在实践中学习