Rust 1.8 发布,放弃了 Unix 系统传统 Make 编译系统

2016-04-21 08:53


Mozilla 上周发布了 Rust 1.8,这是一个系统级别的编程语言,提供与 C 语言相当的编译速度,和高级别的安全性。这次更新最值得关注的是,Rust 放弃了 Unix 系统传统的 Make 工具,使用 Rust 自己的 Cargo 包管理工具

为了实现自举,减少对外部工具的依赖,Rust 必须通过自己的语言构建一些工具。其他语言也大多都经过这个过程。Google 的 Go 语言,从1.5版本开始,其编译器和解释器都由 Go 语言实现(有一小部分用了汇编),放弃了基于 C 语言的工具。

从 Make 换到 Cargo 的原因,是因为很多程序员抱怨,部署大型的应用时,会遇到很多多语言方面的困难。比如,他们说现在的基于 Make 的编译系统“在这个星球上只有一小部分人能够熟练使用”,就是说,对大多数 Rust 开发者来说并不友好——这对以友好的开发环境著称的 Rust是不能容忍的。

Rust 放弃 Make 编译系统的另一个原因是可移植性。在 Windows 环境下使用 MSVC 工具需要“疯狂、古怪的技巧运行不同版本的工具,特别是配置脚本和编译工具的时候。” ,Rust的 开发者说。随着兼容性的信息逐渐分离出来,社区可以更好地应用这些信息。

同样,改变编译系统使 Rust 标准库和编译器可以使用4600以上个已存在的 Cargo 包

Rust 并没有解决 MSVC 编译的问题。很多新的开发语言——当然并不是微软支持的——的用户都会因为平台古怪的编译过程使用户受挫。Rust 已经解决了自身的问题,从1.8版本开始,32位 Windows 系统可以正常地处理错误。长期来看,这项举措可以有效地避免这个坑。