首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是时候开始重写编译器了,2023年的 Rust 将会有哪些新改变?

作者 | Nick Cameron

译者 | 禾木木

出品 | CSDN(ID:CSDNnews)

首先,感谢您在 2022 年使用 Rust!

感谢所有贡献者、团队、基金会、社区和用户。这是忙碌的一年,如果没有很多人,例如志愿者为此付出了很多努力,这一切都不会发生。

对于即将到来的2023年, Rust 会优先考虑哪些内容呢?

两件大事

首先,这也是最重要的,Rust 项目需要解决开发者治理和领导力问题。目前这些阻碍了很多有潜力的工作,而且持续的时间越长,项目累积的“治理债务”就越多,问题就会越多。令人尴尬的是,在 Rust 核心团队崩溃一年后,仍然没有关于新领导团队的提议。

Rust 治理还有很多工作需要完成,主要是更新 RFC 流程,并重新审视团队和工作组织结构。但这些在领导团队和完成当前变革方面受到阻碍。其次,由于缺少项目领导者,我认为我们需要重新审视“稳定而不停滞”的战略。

避免停滞是非常重要的,不能停止创新,但也不能无限制地发展语言。编程语言的复杂性和规模是有代价的,这与 Rust 赋予人们权力编写可靠和高性能软件的使命不一致(IMO 要求使语言更简单、更小巧、更易于使用)。如果仅仅因为保持向后兼容性,这并不意味着我们实现了稳定性。

无论如何,不应该停止创新或只是放慢速度,但确实认为需要找到超越“实验 -> nightly  -> 稳定”管道的创新方法。我们需要一个框架,以便创新可以发生在核心社区之外,而不需要所有工作都发生在用户依赖稳定和成熟的语言上。

同样,我认为是时候开始重写编译器了。是的,重写这个主意通常很糟糕,重写的缺点会让我们放慢当前编译器的工作速度,我认为在 Rust 成熟的这一点上,这并不是一件可怕的事情。

如果项目没有成功,我们仍然应该学习一些东西。另一方面,它的潜在好处是巨大的!目前的架构已经很难实现增量编译、并行编译等。重新开始会让我们应用从头开始学到的一切,这将有机会认真改进编译时间,并使未来的开发更加容易。与语言 2.0 相结合,我们可能会因为向后兼容而丢弃一堆技术债务,并对语言进行更改从而可以支持更快的编译。

一些“较小”的东西

Cargo(和 crates.io)是一个非常重要的工具,并且在很多重要事情的关键路径上(供应链安全、通用安全、与其他语言的集成、与其他构建系统的集成、构建时间……)都存在,但资源严重不足,取得进展很慢(目前的团队不应该受到责备,他们在恶劣的条件下已做得很好)。

我认为现在有机会解决这个问题:向 Cargo 和 crates.io 团队中任何愿意接受它的人投资,集中指导潜在的新团队成员(如果缺少这些人,需要说服一些大公司支持 Rust 找到人,每个人在 Cargo 上工作 1/4 的时间),与这些人一起快速扩大团队(即使他们只对代码库等有部分了解),开始鼓励贡献和新功能。希望一旦激动人心的事情发生并且有足够的审查机制,将会产生一个贡献的良性循环,我们就会摆脱当前困境。

异步。Rust 中异步编程的工作进展顺利,我希望能在 2023 年开始融合并产生成果。我对自己的缓慢进展感到有些沮丧,大多数异步工作组都忙于其他事情,但是事情也正在发生好的变化。对于异步来说,2023 年将是激动人心的一年,它应该仍然是该项目的高优先事项。

不安全的编程。不安全代码指南、定义 Rust 内存模型以及为不安全编程提供工具和指南方面做了大量工作。我认为在这方面进一步推进,对 Rust 来说非常重要。安全是 Rust 的主要卖点,开发者们可以做的越多,这使不安全的编程更安全、更容易。

完成和打磨。我经常要求团队更多地关注完成事情,并且要打磨粗糙的边缘,而不是开始新事物。有太多不稳定的和部分实现的功能,还有太多计划已久但缺失的功能。

结语

以通配符做为本文的结束,我很高兴看到 Rust 的数据分析/数值计算明年将如何发展。这是一项完全由社区主导的工作,并且今年发生了一些非常令人兴奋的事情。尤其是 Polars 非常酷,我认为它非常适合 Rust,它在成熟方面似乎达到了一个拐点,我也很好奇它是否能够起飞,还有它将会走向何方。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221223A0175200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券