限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

争议与热度并存,越来越多开发者正在抛弃他们的旧语言转向 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:5013766
用户头像
蔡芳芳 InfoQ 总编辑

发布了 814 篇内容, 共 593.0 次阅读, 收获喜欢 2810 次。

关注

评论 1 条评论

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

淘宝商品类目API的获取与应用探索

科普小能手

API 接口 API 测试 淘宝API接口 淘宝数据采集 淘宝评论API

测试外包服务 | 从人员外包到测试工具、测试平台,提供全方位的测试解决方案~

测吧(北京)科技有限公司

测试

香港 Web3 宣言两周年专访:传统企业转型 Web3 遇阻,香港虚拟资产之路如何走得更远?

TechubNews

1024程序员节:合合信息“百宝箱”开启智能文档处理新纪元

颜淡慕潇

智能文档图像解析技术 textlin acge

Java EasyExcel 导出报内存溢出如何解决

不在线第一只蜗牛

Java 内存

专业的技术、卓越的服务,为企业提供一体化测试服务,赋能企业发展创新

测吧(北京)科技有限公司

测试

crossover破解版Mac下载教程,crossover苹果电脑无限试用免费激活码分享

阿拉灯神丁

软件包 crossover mac 破解版 CrossOver 24虚拟机

借助ETLCloud工具,轻松同步Doris数据至Inceptor数据库

RestCloud

数据库 Doris ETL 数据集成 lnceptor

GitHub Star 数量前 5 的开源应用程序生成器

NocoBase

GitHub 开源 低代码 无代码 应用程序

【开源鸿蒙】OpenHarmony 5.0轻量系统最小开发环境搭建

码匠许师傅

OpenHarmony risc-v Hi3861

研发效能度量核心三问:看什么、怎么看、怎么说服团队

思码逸研发效能

研发效能 绩效管理 软件研发 研发效能管理 思码逸

2024年中国IT用户满意度调研结果公布

极客天地

阿里巴巴商品搜索API返回值中的关键信息点

技术冰糖葫芦

API 接口 API 测试 API 协议 API 优先

Laravel后台极速开发框架 - 集成日历组件

YangGe

laravel

深度解读GaussDB逻辑解码技术原理

不在线第一只蜗牛

数据库 oracle

BOE(京东方)首度全面解读ADS Pro液晶显示技术众多“真像” 倡导以创新推动产业高价值增长

爱极客侠

到底什么学历可以胜任程序员?

秃头小帅oi

利用 Vector 将 Kafka 中的日志数据高效写入 GreptimeDB

Greptime 格睿科技

kafka 时序数据库 vector

鸿蒙生态崛起,开发者如何抓住这波“红利”?

最新动态

袋鼠云产品功能更新报告12期|让数据资产管理更高效

袋鼠云数栈

语音识别模型

霍格沃兹测试开发学社

Vector 增加 GreptimeDB 日志写入支持,连接数十种数据源

Greptime 格睿科技

数据库 vector 集成

高可用负载均衡实践

俞凡

架构

Gamma是什么意思?5款可替代Gamma的ppt软件推荐!

职场工具箱

人工智能 PPT 办公软件 AIGC AI生成PPT

腾讯云的相关DDoS攻击问题概览

网络安全服务

腾讯云 服务器 DDoS 腾讯云服务器 DDoS 攻击

有数还要有术,数据洞察助力研发效能提升

思码逸研发效能

DevOps 研发效能 敏捷研发 研发效能管理 思码逸

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