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 )关注我们。
评论