写点什么

争议与热度并存,越来越多开发者正在抛弃他们的旧语言转向 Rust

  • 2024-02-05
    北京
  • 本文字数:4614 字

    阅读完需:约 15 分钟

争议与热度并存,越来越多开发者正在抛弃他们的旧语言转向 Rust

采访嘉宾 | 王兴、李原、侯培新

编辑 | 蔡芳芳


“用 Rust 重写”的表情包广为流传,是 Rust 空前影响力的证明。


如果要选出过去一年开发者群体关注度最高的编程语言,可能非 Rust 莫属。从正式发布 1.0 版本之后的 2016 年至今,Rust 已经连续 8 年在 Stack Overflow 开发者年度调查报告中被评为“最受欢迎”编程语言。也有关注其他编程语言的社区专家向我们反馈,在微信群里经常看到“使用 Rust 重写”的表情包,这也从一个侧面反映了 Rust 的影响力。


本次年度技术盘点与展望,InfoQ 邀请了多位在华为从事 Rust 开发工作的技术专家,与我们一同回顾 Rust 编程语言过去一年在功能特性、应用场景、社区生态等方面取得的进展。

争议和冲突不断,不妨碍 Rust 加速“出圈”


如果要回顾 2023 年 Rust 编程语言的大事件,第一个被提起来的一定是 5 月份 RustConf 2023 Keynote 事件。当时,JeanHeyd Meneide 在网站上发布了一篇文章 《I Am No Longer Speaking at RustConf 2023》 正式拒绝参加 RustConf 2023 并且不再演讲,在社区中激起千层浪花(详见 InfoQ 报道1)。由于 JeanHeyd 计划演讲的部分内容是得益于 Rust 基金会的赞助,Rust 基金会也第一时间在官方 Blog 上对事件做出了回应,并开始讨论是否未来由 Rust 基金会来主办 RustConf,以避免这类乱象。6 月份 Rust 社区宣布调整组织架构,成立新的顶级治理机构:领导委员会(Rust Leadership Council)。由 Rust 各团队成员合力创建一份新的、名为 “ Rust 领导理事会” 的 RFC 草案,并确立了以下内容:移除 Rust 核心团队,由各团队出一个代表,成立一个顶级的治理团队“领导委员会”。


Rust 领导委员会将从 Top-level 的角度协调整个社区的工作,同时 2023 年由领导委员会选举了 5 名社区专家进入到了 Rust 基金会的董事会、代表社区和董事会一起工作。此外 Rust 基金会引入了新的会员类型 Associate Membership Tier, 非盈利组织、高校和科研机构可以作为成员加入到基金会,进一步提升社区成员的多样性。


虽然以上举措旨在解决社区纷争,但纷争并没有就此完全终结(详见 InfoQ 报道 2),不过这并不影响 Rust 社区以惊人的速度发展。


据了解,作为 Rust 生态基础工具包的聚集地,Crates.io 网站上 Rust 第三方库在 2023 年突破了 500 亿下载次数。


JetBrain 发布的 《2023 开发者生态系统现状》调研报告也证明了 Rust 的持续加速“出圈”:在今年最受欢迎的编程语言中,Rust 创造了新的使用记录,其用户群在过去五年中稳步增长,有望凭借其严格的安全性和内存所有权机制取代 C++;此外,Rust 今年首次取代 Go 成为希望迁移到其他语言的开发者的首选,而 Go 用户也是第一批准备采用 Rust 的人,JetBrains 数据表明,有六分之一的 Go 用户正在考虑采用 Rust。多年来,Rust 一直是最流行的学习语言之一 ,2023 年 Rust 首次占据榜首,即有最多开发者计划未来 12 个月内从原来使用的编程语言迁移到 Rust 编程语言。



透过上述纷争我们可以看到当前整个 Rust 生态的现状:Rust 编程语言由社区驱动前行, 虽然有不同意见和争吵,但同时也保持着强大的发展动力和潜力。候培新表示,Rust 基金会会一直与 Rust 社区保持紧密合作,通过各种方式支持推动 Rust 生态继续扩大,被更多的开发者使用。


李原表示,在他个人的社区交流开发过程中,没有人对纷争有过多的关注。他认为这和 Rust 社区以技术为根本、项目演进采取由下至上、以技术驱动为主的社区氛围和传统有着重要的关系。当然,社区也采取了动作,比如以各个团队技术代表来重组领导小组,来避免日后再次出现类似的纷争。在王兴看来,每个社区都有适合自己的治理方式,虽然 Rust 社区遇到了一些问题,但只要社区的目标是持续解决开发者的问题,最终开发者还是会支持这门语言的发展。


面对冲突不断的 Rust 社区,曾有人向 Rust 的创造者 Graydon Hoare 提出这样一个问题:“你有没有想过在 Rust 项目中 BDFL(终身扮演仁慈的独裁者?)”而如果他真的这样做了,Rust 项目的发展会不会更好?Graydon Hoare 在自己的博客文章和关联的 Reddit 评论区回应了这个问题,他认为如果是由他来治理的话,方向肯定会很不一样,但是 Rust 就不太可能像现在这样“出圈”。同时,尽管如今的 Rust 跟 Graydon Hoare 最初想象中的 Rust 存在巨大差异,但他也对 Rust 语言如今获得的成功抱有巨大的成就感和满足感。

Rust 正在走进越来越多企业和场景


作为 Rust 基金会创始成员和一以来编程语言潮流的引领者,谷歌和微软在 Rust 的采用上先行一步。


在 2022 年 Linus 接受 Rust 作为 Linux Kernel 的第二编程语言时,社区反馈褒贬不一,持各种意见的人都在观望如何把 Rust 编写的内核模块运用到生产上。当 2023 年 12 月谷歌提交 Android Binder 进入内核,越来越多开发者相信 Linus 的决定是正确的。Android 13 新增 Native 代码中 Rust 的比例已经接近 20% ,在 Android 14 中预计接近 25% ,谷歌不仅在 Android 中大量采用内存安全的 Rust 编程语言,也在 Chromium 中引入 Rust ,让浏览器变得更加安全。


而微软不仅提供了 windows-rs 帮助开发者使用 Rust 开发 Windows 的程序,更在 Windows 11 Insider Preview Build 25905 版本中发布了用 Rust 编写的 Windows 内核。当然这不是完全替代,而是部分用 Rust 开发,其中包含了一个 GDI 引擎的实现。相信未来微软会越来越多地在 Windows 上使用 Rust ,以打造一个更加安全的操作系统。


而在国内,华为内部也有了越来越多使用 Rust 的场景,比如在嵌入式、云服务、中间件等领域都有 Rust 的应用;又如由华为开源并捐赠给开放原子开源基金会的 OpenHarmony 项目实现了与 Rust 互相支持,并基于 Rust 重写了上传下载等模块,性能显著提升。在和国内很多头部互联网公司交流的过程中,王兴也看到大家在积极拥抱 Rust,并且很多公司已经有了不少 Rust 资产。比如 Vivo 就在近期推出了基于 Rust 语言的 BlueOS 操作系统。可以看到,2023 年 Rust 支持的操作系统和体系架构变得更加丰富,在 musl、移动平台等场景的支持上也取得了明显的进步。


采用“技术采用生命周期”来评估 Rust 的发展现状,王兴认为 Rust 目前处于早期大众阶段,而李原则略微保守一点,他认为处 Rust 在早期采用到早期大众的过渡阶段。


在王兴看来,大多数有一定技术能力的公司已经度过了试水阶段,使用 Rust 作为一门主力开发语言是一件正在发生的事情。国外谷歌、微软等公司在 Rust 发展上的声量显然比国内公司大不少,但国内公司的进展也超出了王兴的想象,他认为或许差距并没有想象中那么大。


李原则认为,近年来 Rust 的使用者确实在快速增长,越来越多的公司开始采用 Rust 做开发。然而 Rust 本身还需要更加正规化以支持大规模开发的需求,比如语言需要规范文件,配套工具需要快速及安全的协议,项目构建效率需要提升等等。国内外的差异主要在使用人数和职业开发者数量上,但发展阶段没有明显差距,都处于逐步成熟和扩张的阶段。


值得一提的是,2023 年 11 月,对于任何一个编程语言都至关重要的厂商 JetBrains 加入 Rust 基金会成为银牌成员。不仅仅是加入,JetBrains 还带来了为 Rust 编程语言打造的 IDE——Rust Rover,与此同时 JetBrains 的下一代编辑器 Fleet 也是使用 Rust 编程语言开发的。这既是 Rust 生态扩大的一个体现,也预示着未来 Rust 生态和应用场景进一步扩大的可能。

2023 年语言本身值得关注的变化


从 Rust 编程语言本身的技术特性看,2023 年有几个变化值得关注。


第一点是性能提升,除了通过完善编译时常量表达式特性来获得更多运行时性能优化,Rust 在编译性能、三方库获取性能方面也取得了明显进步。尤为重要的一点是,Rust Nightly 版本中引入了并行编译的技术,开始着手解决编译速度的问题。在侯培新看来,这标志着 Rust 编程语言更多进入到生产环境进行大型项目的开发,编译速度已经成为影响开发效率的关键问题。


第二点是 Rust 语言规范化。2023 年,Rust 社区 Language Team 下成立了 Specification Team, 由 Mara Bos 和 Felix Klock 任 Team Leader,开始了 Rust 编程语言规范的编写工作。侯培新认为,这是一个标志着 Rust 逐渐成熟的里程碑事件,且不提一个规范对于语言本身的重要性,它对于商业发展也起到了至关重要的作用。2023 年 11 月, 德国公司 Ferrous Systems 宣布使用了 Rust 编译器的一个子集通过了 ISO 26262 和 IEC 61508 的认证,打开了 Rust 编程语言进入汽车和工业自动化领域的大门。可预见 Rust 社区官方的 Specification 将大力推动 Rust 进入更多的商业领域,为 Rust 的大规模应用铺平道路。


第三点是安全性补齐短板,Rust 2023 年通过支持更多安全编译场景如异步 trait 方法、优化编译告警如默认关闭 debug 信息等,优化了用户的体验,使用户得以更好地获取 Rust 安全性的优点。


上述变化实际上反映出了 Rust 的主要演进方向:首先是降低整体学习曲线,使语言的学习和使用更为简单方便;其次是配套工具更加成熟及正规化。而这两个演进方向背后的根本原因,正是因为 Rust 的主要用户已经从较少数的技术爱好者变成了诸多企业规模开发中的开发者。


为了让更多人学习和使用 Rust ,Rust 基金会在 2023 年 11 月启动了 Developer Training 和 Certification Program ,以帮助开发者跨过学习曲线成为合格的 Rust 开发者。


李原表示,降低学习曲线、适配更广泛的场景以优化开发者体验仍将是 Rust 社区未来重点投入的方向。2024 年最值得期待或者说最有可能出现重大突破的方向包括:语言规范化 RFC 将会逐步成型;嵌入式场景的支持将会快速成熟;诸多提升构建效率的方法如并行编译前端、默认 LLD 链接器支持等将会取得重大进展,等等。

大模型时代 Rust 的机会


提及 Rust 在大模型时代的发展趋势,王兴和李原都认为,大模型时代的到来对于 Rust 的推广会起到正向作用。


在王兴看来,Rust 在大模型本身的训练和使用中的应用还有待观察,但在大模型时代,学习 Rust 的开发者能够借助大模型更容易地理解 Rust(比如帮你指出为啥编译不过?:)),这对 Rust 来说是一个好消息。同时大模型也有助于熟练的 Rust 开发者提高生产力,王兴进一步解释道:“当前大模型的能力来讲,AI 对高水平编程开发者来讲是更好的武器,他们具备更好的能力从 AI 中得到更好的结果,也具备能力判断结果的正确性。编程的过程可能比以往会更贴进核心的逻辑和抽象,细节和体力活 AI 可能要和语言的语法糖来竞赛来看谁更适合解决。”


李原同样认为大模型的出现对于 Rust 的推广来说意义重大,他表示:“初学者可以通过将需求告知大模型、将其他语言交给大模型翻译等途径快速获得较高质量的 Rust 代码,这很大程度上降低了 Rust 的学习曲线。而未来场景化的大模型软件的大量涌现,此时也是使用 Rust 代码替代传统 C/C++ 语言的重要机会。”


正如候培新所说,在 2024 年,可以期待 Rust 生态系统会继续蓬勃发展, 随着企业和开源社区对 Rust 的持续兴趣和投资,Rust 应用领域可能会进一步扩大,覆盖更多技术领域,吸引更广泛的开发者群体,期待 Rust 重塑软件生态。


采访嘉宾介绍:


  • 李原  Rust 编译器 committer

  • 王兴  华为 OpenHarmony Rust 技术专家

  • 侯培新  Rust 基金会董事


如果你觉得本文对你有帮助,或者你对 Rust 未来发展有自己的思考,欢迎在文末留言告诉我们!


InfoQ 2023 年度技术盘点与展望专题重磅上线!与 50+ 头部专家深度对话,探明 AIGC 创新浪潮下,重点领域技术演进脉络和行业落地思路,点击订阅/收藏内容专题~


2024-02-05 09:5013736
用户头像
蔡芳芳 InfoQ 总编辑

发布了 813 篇内容, 共 589.1 次阅读, 收获喜欢 2805 次。

关注

评论 1 条评论

发布
用户头像
我不信,华为是自研语言 自研系统 不可能用rust [/狗头]
2024-02-05 21:25 · 湖北
回复
没有更多了
发现更多内容

再添新誉!浪潮云斩获年度领先品牌等多项殊荣

云计算

GraphQL 初探

wangwei1237

RESTful API graphql

一文读懂云原生 go-zero 微服务框架

晨雨听风

GitHub Web Go 语言

Flink State 和 Fault Tolerance(二)

Alex🐒

flink 翻译 flink1.13

鸿蒙 和 Fuchsia OS,你更期待谁?

Bob

华为 Google 作业一 Fuchsia 鸿蒙系统

中年程序员转行第1年的感悟|2021 年中总结

王磊

Java 编程 编程之路 编程故事

项目管理100问 | 一个完整的缺陷管理流程是什么样的?

万事ONES

项目管理 研发管理 bug ONES

推理综艺的正确打开方式!爱奇艺玩转智能技术,“互动+内容”引爆迷综季

爱奇艺技术产品团队

模块六作业

Chris Cheng

架构训练营

EasyRecovery Pro绿色破解版,免序列号激活

淋雨

数据恢复 EasyRecovery 文件恢复 Easyrecovery破解 恢复软件

BoCloud博云获评2021云计算PaaS创新领导者

BoCloud博云

容器

恭喜埃文科技入选“2021年中国网安产业潜力之星”!

郑州埃文科技

2021中国边缘计算企业20强榜单出炉,EMQ强势入围!

EMQ映云科技

开源 边缘计算 计算 emq

618技术特辑(三)直播带货王,“OMG买它”的背后,为什么是一连串技术挑战?

华为云开发者联盟

CDN 直播 618 低时延 视频直播

架构之:数据流架构

程序那些事

架构 系统架构 软件架构 程序那些事

如何有效地管理项目变更?

万事ONES

项目管理 研发管理 ONES

HarmonyOS学习路之开发篇——Service Ability

爱吃土豆丝的打工人

Server HarmonyOS 路由 Ability Server

OpenKruise :SidecarSet 助力 Mesh 容器热升级

阿里巴巴云原生

容器 云原生

云图说|数据仓库服务 GaussDB(DWS) 的“千里眼、顺风耳”—数据库智能运维

华为云开发者联盟

数据库 数据仓库 GaussDB(DWS) 云图说 数据仓库服务

物联网发展,行业新领域

anyRTC开发者

音视频 WebRTC 智能硬件 智能安防 实时通讯

标准物模型:设备无缝对接,IOT界的福音

华为云开发者联盟

物联网 IoT 物模型 标准物模型 IoT Stage

react源码解析15.scheduler&Lane

全栈潇晨

React

WorkPlus即时通讯-通讯录功能大全

BeeWorks

即时通讯 IM 移动开发 开源安全

618技术特辑(四)疯狂剁手的同时,电商隐私安全你注意到了吗?

华为云开发者联盟

电商 数据安全 云安全 618 隐私安全

有了这个组合拳,不再写bug

看山

DevOps 6月日更

bzz节点挖矿分发系统开发案例

薇電13242772558

区块链

【架构师训练营】电商业务微服务拆分设计

eoeoeo

好的目标管理:SMART原则

石云升

创业 职场经验 管理经验 6月日更

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

阿里巴巴云原生

容器 云原生

【Flutter 专题】101 何为 Flutter Elements ?

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

测试开发之网络篇-常用服务协议

禅道项目管理

IP HTTP 协议

争议与热度并存,越来越多开发者正在抛弃他们的旧语言转向 Rust_编程语言_蔡芳芳_InfoQ精选文章