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