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系统可以正常地处理错误。长期来看,这项举措可以有效地避免这个坑。
原文:Rust 1.8 takes steps to replace the Make build system
译者:赖信涛
责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN Rust语言交流群」,内有Rust布道师、自身研究者等,如果你想零距离接触大牛和贡献者,欢迎师加微信qshuguang2008申请入群,备注姓名+公司+职位+Rust。
编辑推荐本站Rust资源:
- 【专家极力推荐】Rust开发技术学习路线(你想要的都在这里!)
- 【专家极力推荐】Rust 1.0发布半年后社区涌现的项目集锦
- 【在线视频分享】以coroutine-rs为例深入浅出Rust协程库
- 【微信群分享】冯耀明:Java和Rust在实现多线程编程时的异同
- 【微信群分享】王川:Rust与异步并发的那些事儿
- 【微信群分享】唐刚:Rust是近15年最佳工程实践的集大成者
- 【技术文章】D语言架构师Andrei Alexandrescu谈D、Go、Rust取代C/C++
- 【技术文章】批判Rust语言,以及C/C++为什么永远不会死
- 【技术文章】为什么你需要近距离接触Rust 1.0
- 【技术文章】使用Nickel开发Web应用:从第一行代码到Heroku部署
- 【技术文章】我眼中的编程语言Rust和GO
- 【专访】专访冯耀明:Rust具有C的速度且不用担心内存泄露
- 【专访】专访Elton:浅谈C++、Go的挑战者Rust
- 【专访】专访Liigo:我为什么要选择Rust?
- 【Rust一周集锦】(一)、(二)、(三)