Rust 笔记: Rust 是什么?
它是一门偏向底层的通用编程语言, 注重安全性(内存安全)以及高效率(零开销抽象). 和其他语言相比(比如 go), 肯定是各有所长, 因此并不期望将它作为万能神器, 还是以实用主义为主进行学习和开发.
实用主义:
- 在 Unix 系统编程时, 它与 C 之间的桥接非常简单且高效, Rust 语言中的许多元素都是直接可以和 C 互操的. 并且拥有
nix
等直接和标准库/系统调用进行对接的中间层, 这样在系统编程时就非常简单了. - 它的内存处理方式非常特别且高效, 以 borrow checker + 编译器检查, 替代内存管理时候需要人脑的时刻关注, 这样出错的概率会小很多, 没有野指针, 空指针, 缓冲区溢出等.
- 不存在同时读写问题, borrow 的时候只允许多个读者或一个写者, 不允许读者写者同时存在.
- 提供了大型工程所需的一切支援, 模块系统, 包管理系统, 接口, 面向对象, 泛型等等.
- 以最小的性能代价换 来了最大的开发效率提升
- 拥有优秀的文档, 活跃的社区以及友好的编译错误提示, 优秀的周边工具支持(开发/测试以及部署等).
- 近期 Rust 也慢慢进入了 Linux 的内核中, 并有可能在内核编译时默认开启支持.
- Rust 可以脱离标准库, 这样的能力和 C 一致, 没有额外的 runtime 等.
- 和 go 等新一代编程语言相比, 各有优劣, 适用的环境和开发目标不同, 因此并不需要去比较语言间哪个更好. 比如编译时间, 语言中的各种功能支持等, 因为本身不同语言适用的场景就不一样.
目前用的
mdbook
工具就让人眼前一亮, 比目前任何已知工具都更快, 并且开发这个工具的人对需求的理解也非常深入, 使用起来简直不要太爽, 无论是 HTML 生成速度, 生成的界面操作便捷性, 写书时候的流畅感, 都是无与伦比的.有时间的话会将这个工具的源码分析一遍.
资源: