2017,Rust 将何去何从?

  • Sergio De Simone
  • 张健欣

2016 年 10 月 31 日

话题:语言 & 开发

Rust 的核心团队敲定了 Rust 语言将在接下来的一年何去何从的规划提案。一定程度上基于 2016 年在 Rust 用户中的调查结果,Rust2017 规划方案优先考虑在不牺牲速度和可靠性的前提下提升 Rust 的生产力。

值得一提的是,Rust2016 调查暴露出了一些阻碍 Rust 接受度提升的问题,例如,Rust 的学习曲线、程序库和集成开发环境的缺乏、语言成熟度的担忧以及编译性能。Rust2017 规划方案重点强调了这些问题,并提供了一份详细的改进方案。

学习曲线

在 Rust2016 调查中,有近四分之一反馈者提到 Rust 的学习曲线。这可能一定程度上跟 Rust 基于所有权概念的非主流的内存管理模型有关。Rust 团队制定的改进策略包括:改进文档,改进语言诊断系统语言功能,改进工具。

工具

在工具方面,Rust 团队将会改进“编辑-编译-调试”循环,并提供一个集成开发环境。在提升“编辑-编译-调试”循环方面,Rust 团队已经完成了一些工作。他们提出了一种中间代码(MIR)来帮助编译 Rust 源代码,并且提供了一种更简单的类型检查和转换的表示方法。他们提供了增量编译功能,并且已经处于 alpha 测试阶段。此外,Rust 目前的调试版本“运行得非常慢”,而 Rust 的发行版本“构建得非常慢”。Rust 团队将试图在这两者间取舍一个更平衡的方案。

Rust 生态

Rust 生态成熟度是 Rust 团队提高 Rust 生产力的另外一个关注点。一方面,Rust 生态需要提供开发高质量工具箱的方法,包括信号质量预测、更好地支持持续集成、在特定工具上支持 API 审核等等。另外,Rust 生态系统应该成长并提供一套基本成熟的能够帮助完成基础任务的工具箱,特别是在服务器端的并发编程(Concurrent)、异步编程(Async)、并行编程(Parallel)方面。

互操作性

在生产环境使用 Rust 经常需要它能够和已有的构建系统集成,并且能够和 C++ 代码交互。综合这两方面的考量,Rust 团队计划让 Rust 能够更简单地与现有系统集成。特别是,在 Rust 中使用 C++ 库应该不会比直接在 C++ 中使用 C++ 库复杂太多。

以上只是 Rust2017 规划方案的概要,如果想知道更多 Rust 技术规划的细节,包括在缺陷和替代方案方面的讨论以及尚未解决的问题等,可以参考RFC文档。

作者简介

Sergio De Simone是一位有 15 年以上编程经验的软件工程师。他曾任职于各种不同工作氛围的企业,例如西门子、惠普和一些初创企业,并参与许多不同的项目。近几年来,他专注于移动平台开发相关的技术。他目前供职于 BigML(一家在机器学习领域的初创企业),负责 iOS 和 OS X 开发。

查看英文原文:Where Rust is Heading in 2017


感谢冬雨对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

语言 & 开发