Rust 1.0 即将发布:现状与展望

ec3y 9年前

原文  http://www.infoq.com/cn/news/2015/05/rust-beyond-10


随着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