随着 Rust 官方正式发布1.0 版的日期临近,Mozilla 研究部门的Niko Matsakis 已经开始初步评估未来要添加到这门语言中的新特性的优先级,以此来引发一场关于Rust 未来发展方向的公开讨论。InfoQ 就此与Matsakis 进行了对话。
Matsakis 的评估报告将新特性分为三个优先级,基于它们的时间敏感性(随着时间推移,加入新特性的难易度)、对 Rust 开发者社区的影响力、可以解决的问题范围分为高、中、低三等。
Matsakis 列举了以下几个最高优先级的特性:
- 稳定库 API,例如,文件系统 API 和内存分配 API。
- 更好地支持 Windows 和 ARM,也就是去除 Rust 对于 MinGW 的依赖并支持 ARM64 平台。
- 更快的编译速度。
- 更好的工具支持。
- 分配器和跟踪器提供更多的内存分配控制。
- 专门化,允许定义一组给定类型的给定 trait 的多种实现。
- 虚拟结构体,允许在结构体上实现某种形式的继承。
Matsakis 还介绍了几个有可能获得高优先级的特性,例如改进宏和语法扩展。其余特性仍被列为中等优先级或长期计划。InfoQ 借此机会与 Niko Matsakis 畅谈,了解更多有关 Rust 目前和未来的情况.
现在 Rust 1.0**** 几乎快要发布了,你感觉如何?你是否认为这门语言已经到达比较成熟的境界?
快速发展的社区和生态系统使我对发布 Rust 1.0 感到非常自信,crates.io 仓库上现已有几乎 2000 个 crates 可以使用,而且许多非常重要的项目使用 Rust 进行构建(例如,Rust 编译器本身,Servo 以及 Skylight)。
Rust 目前的的设计成果历经了数次迭代,我认为这些迭代有所收获。尽管我们为发布 1.0 版本感到兴奋,不过我认为这的确只是一个开端。我们已经有了许多改进计划,我期待看到他们未来被一一实现。
我非常喜欢这个开源项目,一大群贡献者帮助我们设计和改进 Rust,我认为 1.0 版本发布后这样的开发模式会发展得更好。
Rust**** 支持现代编程语言思想,例如可选类型、泛型、类型推断等,虽然这些编程思想更面向低阶编程,但是仍然吸引了许多人的注意力。你是否可以详细说明一下那些思想对于低阶编程的重要性?
对于那些性能非常重要的情况,拥有机器的低阶控制权是一个绝对的优势。但是目前看来,想要获得低阶控制权通常只会使生产力代价高昂。我们总是期盼着 Rust 可以吸引一些 C++ 程序员,但我们没有意识到的是对于从高阶语言过来的人们来说 Rust 到底有多诱人。
类型系统非常关键:Rust 通过类型系统来增强安全模式,例如所有权和借入,既避免了程序无端崩溃,又可让低阶编程更好更快。这进一步表示,如果你想在生产环境部署一个 Rust app 或者为 crates.io 写一个库,那么你无须储备专家级系统编程经验就可以轻松完成。从语言极客的角度来看,我们从现代语言中借鉴了许多优秀的思想并把它们融入系统编程领域,而我们所做的这一切正是为了让低阶编程远离崩溃,没有烦恼!
除了功能优先级以外,在您看来,Rust正在朝什么方向发展?在未来的 Rust中我们可以期待什么样的特性呢?
Rust 的目标永远是将低阶语言的控制能力和高阶语言的表达能力相结合(不向任何一方妥协)。就语言本身而言,我期望我们将继续同时向这两个方向发展。
这意味着 Rust 会加入更多低阶特性,例如自定义分配器,但同时拥有更多高阶表达能力,例如支持元编程。展望这门语言的未来,我认为 Rust 将会被广泛应用于工具和基础设施领域。
最后,新加入的使用者和社区将会使 Rust 更稳定,不断为其设计新特性并持续改进,对此我倍感自信,新鲜血液终将为我们带来目前无法想象的更伟大的新思想。
查看英文原文: Rust Beyond 1.0: Where It Stands, Where It is Headed
感谢邵思华对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论