Skip to main content

Rust 笔记: Rust 是什么?

它是一门偏向底层的通用编程语言, 注重安全性(内存安全)以及高效率(零开销抽象). 和其他语言相比(比如 go), 肯定是各有所长, 因此并不期望将它作为万能神器, 还是以实用主义为主进行学习和开发.

实用主义:

  1. 在 Unix 系统编程时, 它与 C 之间的桥接非常简单且高效, Rust 语言中的许多元素都是直接可以和 C 互操的. 并且拥有 nix 等直接和标准库/系统调用进行对接的中间层, 这样在系统编程时就非常简单了.
  2. 它的内存处理方式非常特别且高效, 以 borrow checker + 编译器检查, 替代内存管理时候需要人脑的时刻关注, 这样出错的概率会小很多, 没有野指针, 空指针, 缓冲区溢出等.
  3. 不存在同时读写问题, borrow 的时候只允许多个读者或一个写者, 不允许读者写者同时存在.
  4. 提供了大型工程所需的一切支援, 模块系统, 包管理系统, 接口, 面向对象, 泛型等等.
  5. 以最小的性能代价换来了最大的开发效率提升
  6. 拥有优秀的文档, 活跃的社区以及友好的编译错误提示, 优秀的周边工具支持(开发/测试以及部署等).
  7. 近期 Rust 也慢慢进入了 Linux 的内核中, 并有可能在内核编译时默认开启支持.
  8. Rust 可以脱离标准库, 这样的能力和 C 一致, 没有额外的 runtime 等.
  9. 和 go 等新一代编程语言相比, 各有优劣, 适用的环境和开发目标不同, 因此并不需要去比较语言间哪个更好. 比如编译时间, 语言中的各种功能支持等, 因为本身不同语言适用的场景就不一样.

目前用的 mdbook 工具就让人眼前一亮, 比目前任何已知工具都更快, 并且开发这个工具的人对需求的理解也非常深入, 使用起来简直不要太爽, 无论是 HTML 生成速度, 生成的界面操作便捷性, 写书时候的流畅感, 都是无与伦比的.

有时间的话会将这个工具的源码分析一遍.

资源:

  1. Rust for Linux
  2. CommandLine Tools written in Rust
  3. Awesome Rust