在本文中,我们将回顾该Rust的当前状态(它到底有多老还是多年轻?),一个语言长期存在的三个标志是什么(剧透一下,Rust在这三个方面都做得很好)。
下图是众所周知的采用一项技术的生命周期。不用说,Rust仍处于早期阶段。
从广义上讲,我们可以说Rust在web/后端和系统编程等大多数领域都处于早期采用者阶段,因为像谷歌、Facebook和微软这样的公司都在大力投资Rust,并用Rust编写了大型系统,为他们的云产品提供动力。
例如,微软Azure的首席技术官Mark Russinovich表示,新项目应该用Rust编写,而不是C或C++。现在Linux内核和Windows内核都包含Rust代码。
在嵌入式开发中,我们必须将不同的行业分开。例如,在汽车项目中,由于有了 Ferrocene 和 OxidOS,Rust已经过了创新者阶段,进入了早期采用者阶段。至于其他行业,如航空航天、国防和医疗行业,Rust仍处于创新者阶段。
有些游戏(如:《Way of Rhea》)是用Rust编写的,可以在Steam上看到,但整个游戏行业仍处于创新阶段。
这对于一个10年前才发布了第一个稳定版本的语言来说,Rust在各行各业的广泛渗透是相当令人印象深刻的。
一项技术要想跨越鸿沟,或者成为主流,它需要在一个非常特定的领域或使用场景中被认为是非常有效的。
在数字基础设施中,(由Google, Microsoft, Apple等)已经确定,大型C/C++代码库中约70%的安全漏洞是内存安全问题,这意味着内存不安全是所有软件都需要解决的问题,而Rust已经被证明可以消除这类漏洞。
在确定Rust“非常成功”地解决了关键基础设施中普遍存在的内存安全问题之后, 我们能够确定Rust语言超越了鸿沟。但问题仍然存在:Rust在10年内还会存在吗?
判断一门编程语言是“有生命力的”,通常有三个标准:
- 许多公司(而不仅仅是业余爱好者)都在使用它;
- 有一个稳定和成熟的生态系统;
- 它不仅在核心方面,而且在外围工具和库方面都在进行开发。
重要的用途
从长远来看,一种语言要保持广泛的使用,它需要被行业采用,并应用于不同的领域,这说明它的可靠性和多功能性。强劲的就业市场、活跃的社区和坚实的教育资源,突显了它的广泛接受度和生命力。
大公司的投资
一些大公司(如谷歌、Facebook、微软、亚马逊)已经在Rust上押下了重注。他们不仅在自己的代码库中使用这种语言,而且还在其生态系统中进行投资。这些公司的支持对于语言的长期可持续性非常重要。
最近投资的一些例子:
- 谷歌向Rust基金会捐赠了100万美元用于互操作计划,以改进工具的互操作性。
- 微软对Rust进行了投资,其中包括对Rust开发工具的1000万美元投资和对Rust基金会的100万美元捐款
商业产品和支持
一些以安全为目标的工具链已经在Rust中开发出来,并且提供了长期的商业支持。
- Ferrocene是一种Rust编译器,用于汽车行业的安全关键用途,并已通过ISO 26262认证。
- AdaCore使用Rust开发了Gnat Pro,目标是航空航天行业。
- HighTec为英飞凌AURIX开发了ISO 26262认证的Rust编译器开发平台,这对汽车行业至关重要。
- 安全关键Rust联盟由AdaCore、Arm、丰田和其他公司成立,其目标是支持在安全关键软件中负责任地使用Rust编程语言。
生态系统的成熟
Rust生态系统的成熟度很难量化,但它自诞生以来一直在稳步增长。它获得了“大型科技公司”、专业人士和爱好者的关注、使用和支持。
增长
众所周知,自2016年以来,Rust一直是Stack overflow“最受欢迎的语言”,并在2023年成为“最受尊敬的语言”。同样,Rust(连同Dart)是2023年增长最快的社区(即开发人员数量),从2022年到2024年,规模几乎翻了一番。
从crate.io中下载的crate的数量呈指数级增长:
图片
截至目前,GitHub上有355k个Rust项目。
经费
大多数编程语言都是由一家大型科技巨头支持的。以谷歌开发的Go和苹果支持的Swift为例。
Mozilla与四家科技巨头(AWS、华为、谷歌和微软)联手创建了Rust基金会:
“Rust基金会是一个独立的非营利组织,致力于管理Rust编程语言,培育Rust生态系统,并支持一组维护人员管理和开发项目。”
这意味着没有一家公司在幕后操纵一切。此外,许多帮助形成这种语言的志愿者现在被亚马逊和华为等公司雇佣,全职从事编译器的工作。因此,Rust所建立的基础(包括财务和技术)比大多数其他语言更强大、更多样化。
内存安全
Rust是唯一一种将内存安全与c语言的性能和系统语言的功能结合在一起的语言。我们看到,在日常使用和依赖的软件中,对内存安全的需求正变得越来越普遍。
持续发展
Rust是一种具有广泛使用的语言,其用于从嵌入式设备到后端服务到高性能存储引擎等各种项目。由于Rust的高适应性,这是可能的。由于其出色的C/C++兼容的外部函数接口,它可以集成到现有的代码库中。它还通过多个运行时(如Wasmtime和Cloudflare的wrangler)提供了一流的WebAssembly支持。
我们之前提到Rust包的下载量正以指数级的速度增长,开发者的工作效率也在提高,可用的crate数量每年翻一番,这表明大多数Rust开发都是在与工作相关的项目中进行的。
持续的发展不会止步于生态系统层面,语言本身也在不断发展。
Rust的挑战
赞助可能会枯竭:正如我们之前提到的,Rust的赞助并不依赖于单一的大型科技公司,而是一个财团,所以我们认为这种情况不太可能发生,但也不是不可能。
- 生态系统可能会分裂:Node生态系统之前就发生过这种情况(并且已经有了一个Rust分支)。这当然不是我们可以预测的事情。
- Rust可能会变得过于复杂:虽然我们承认Rust在发展过程中可能会增加复杂性,但我们的印象是Rust社区正在积极地平衡新特性与可维护性和可用性。事实上,除了异步Rust之外,该语言已经达到了相对成熟的程度。
- 雇佣Rust开发者是一个挑战:这个,我们必须承认。
总结
Rust正处于其历史上一个激动人心的时刻。随着大公司在Rust上的大量投资和工程师对这门语言的拥抱,我们相信Rust有一个光明的未来。