“AGI将使用Rust而非Python进行构建” — Elon Musk
最近, 这条推文引起了我的注意.
根据Elon Musk的说法, AGI 将使用 Rust 而不是 Python 编写, 而 Python 是当前技术生态系统中构建 ML 模型最常用的编程语言.
Rust有什么优点?
Rust 已连续多年成为Stack Overflow 最受欢迎的语言.
大多数使用 Rust 的开发人员都非常喜欢它, 超过 80% 使用过 Rust 的开发人员希望明年继续使用它.
Rust也越来越受到以编写安全/稳定, 高并发/可扩展应用程序为目标的新开发人员的欢迎.
这里是 Rust 如此出色的 6 个原因!
1. 高速与高性能
Rust 坚信不用的东西不用花钱买的原则.
它提供了高级抽象, 可以编译成高效的机器代码, 就像在 C/C++ 中手工编写底层代码一样.
这些高级功能的运行时开销极小, 甚至没有.
如果不使用特定的功能/抽象, 编译后的代码就不会承担其潜在的开销.
2. 没有垃圾回收器的内存安全
许多语言(如 Java/C#)都使用垃圾回收器来确保内存安全.
垃圾回收器通过定期检查内存中哪些对象仍可访问, 哪些不可访问, 自动释放不再使用的内存.
垃圾回收器的一个大问题是, 它可能会导致程序的执行出现不可预测的停顿. 这对于实时系统来说是个问题, 因为可预测的时间是至关重要的.
这与 Rust 的工作方式不同.
Rust 不需要垃圾回收器也能确保内存安全. 这是通过其所有权和借用系统实现的.
这意味着运行时不会出现垃圾回收暂停.
内存在编译时得到可预测的管理, 因此非常适合实时和性能关键型应用程序.
3. 使用先进的优化良好的编译器
Rust 使用LLVM作为其后台的核心组件.
LLVM是一个功能强大的模块化编译器技术集合, 可优化 Rust 代码, 使其运行速度更快, 并能在各种 CPU 架构上运行.
4. 避免数据抢占
数据抢占是指两个或多个线程可以同时访问同一内存位置.
在编写并发软件应用程序时, 这绝对是一场灾难.
Rust 结合使用了类型系统, 所有权模型和借用规则, 以确保多线程 Rust 程序不会出现数据抢占.
5. Cargo包管理器
C/C++等语言缺乏标准的包管理器.
这与 Rust 不同, 在 Rust 中,Cargo集构建工具, 软件包管理器, 测试运行器和文档生成器于一身.
这使得使用依赖关系编写 Rust 应用程序变得简单而流水线化.
6. 直接访问硬件
Rust 允许开发人员直接访问硬件和内存.
这对于系统编程和编写嵌入式应用程序至关重要.
Rust 支持内联汇编和 特定于平台的板条箱(库), 它们提供了硬件接口.
Rust 还可以调用 C 函数, 并可使用Foreign Function Interface从 C 代码中调用.
这非常有用, 因为许多硬件交互库都是用 C 语言编写的.