取代不了 C/C++ 的 Rust 如何“逆袭”?
回忆 Rust 的出现,最初是 Mozilla 为了解决软件开发中存在的一个问题,即软件在语言级别上无法真正利用多核计算带来的性能提升而创建的。不过在后来的发展过程中,很多人经常将其和高性能的 C++ 做对比,甚至不少 Rust 开发者表示,Rust 将取代 C/C++。
但现实来看,Rust 无论是在性能还是语法上均无法比拟 C/C++,除此之外,Rust 内部管理也比较混乱,而近日,Rust 核心团队更是为了整肃 Rust,发布了 2019 年 Rust 路线图。
作者 | Rust 核心团队
译者 | 弯月
责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
每年 Rust 社区都会聚在一起制定总规划。今年除了调查问卷之外,Rust 团队还在 12 月举行了博客文章征集活动,并在几个星期内收集到了 73篇博客文章。最近,其将这些信息融合到一起,总结出了 2019 年的总规划RFC(https://github.com/rust-lang/rfcs/blob/master/text/2657-roadmap-2019.md)。
接下来,这篇文章将介绍其中的一些重点。
主题:成熟
简单来说,2019年是Rust项目注入活力并走向成熟的一年。去年我们发布了许多东西,而且也成长了许多。现在需要反过来充实现有的内容,并为未来做准备。
今年,我们计划的工作内容主要分为三大类:
- 加强管理:改进项目运作的方式;
- 处理积压已久的请求,完成那些我们已经动手做但还没有做完的工作;
- 改进:改进语言和工具的整体质量。
加强管理
在过去三年中,Rust项目成长了许多。以前Rust的核心团队只有8名成员组成。2015年我们增加了子团队,发展到了23人。现在我们已经超过了100人,规模比许多公司都大!当然,除了团队之外,Rust社区的规模也有所扩张。然而,在发展的同时,我们发现以前在小项目时代运作良好的流程现在开始拖后腿了。
许多团队都发布了计划,准备改善流程。一般来说,我们只需要简单地把之前不成文的规定正式地写下来,但有时候也需要建立新的流程。
由于许多人对项目管理感兴趣,所以我们还成立了新的“管理工作组”。这个工作组将专注于与各个团队合作,改善管理的流程,并推进各个团队之间传播经验和策略。
此外,RFC流程曾经非常适合Rust,但随着我们的成长,有时候也会遇到RFC不合适的情况。今年我们也会考虑改进该流程。
积压已久的请求
我们有许多非常有意思的提议都处于待定的状态,主要的设计已经做完,但由于种种复杂的原因,我们一直没有时间处理这些请求。今年我们希望能重新审视这些问题,并努力解决这些积压已久的问题。
这些工作包括:
- Cargo团队和自定义注册项;
- Language团队在审查async/await、专有化、常量泛型,以及泛型关联类型;
- Libs团队希望完成自定义分配器。
改进
最后,近年来我们也做了许多基础的工作。例如,编译器大部分被重构,可以支持增量编译,并更好地适应IDE。现在这些部分都已经完成,我们希望能“改进”这些工作,以提供最好的体验。
比如:
- 编译时间和IDE支持;
- 改进语言标准,如改进参考手册,并编写不安全代码指南;
- WebAssembly工作组今年的工作包括打磨wasm的支持,如调试。
对于 Rust 的未来,网友并不一致
这篇文章只介绍了Rust 2019的部分计划。不过基于此,网友对其看法不一:
评论1:Rust项目最让人担心的问题就是他们的管理越来越混乱。我喜欢的每一门语言都由一名BDFL(终身仁慈独裁者)负责协调,而那些设计得不太好的语言(C++、Java)恰巧都是通过协作的方式管理的。如果Rust项目由工作组来做决策,怎样保证它不会误入歧途呢?
评论2:语言本身仍然主要由语言团队负责设计,该团队的人数并不多。如果非要说团队膨胀,也是因为我们认为Rust不仅仅是语言。你喜欢的那些由BDFL设计的语言,也不是由BDFL做出一切决定,比如包管理器、网站、文档、甚至会议。这些都不是一个人的力量能够完成的。
我们的核心团队会提供所有的高层观点,以保证各个团队的协调。
评论3:当初由BDFL设计时,JavaScript非常糟糕,后来在大型社区接管后,就变成了优秀语言。
虽然JavaScript不是最好的语言,但目前来看它比许多类似的语言(如Python或Ruby等)都好,它有优秀的异步处理,优秀的类型系统,优秀的模块系统,也不存在几十年之久的版本危机。
原文:https://blog.rust-lang.org/2019/04/23/roadmap.html
本文为CSDN翻译,转载请注明来源出处。