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 系统可以正常地处理错误。长期来看,这项举措可以有效地避免这个坑。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/50632.html