众多语言中,Rust 作为一款小众的现代系统编程语言,近几年间,接连受到了各大企业的青睐。
正如不久前,AWS 开源团队宣布聘用 Rust 编译器联合创始人 Felix Klock,未来致力于进一步改进 Rust。对于 AWS 本身而言,也是 Rust 的忠实用户,其基于 Rust 研发并支持了多款内部产品,如虚拟化技术产品 Firecracker,以及 Amazon Simple Storage Service(Amazon S3)、Amazon Elastic Compute Cloud(Amazon EC2)、Amazon CloudFront和Amazon Route 53 等服务。
此外,另一大科技巨头微软宣布未来将使用 Rust 作为 C/C++ 等编程语言的替代方案,尤其在构建基础设施软件过程中,对此,微软认为 C/C++ 无法胜任编写关键任务的软件,业界非常需要高性能、内存安全的编程语言来开发底层系统,而当今市场上最好的选择就是 Rust。
同时,今年 3 月,苹果也表示对将 C 代码移植到 Rust 感兴趣,希望投身到使用 Rust 编写代码的潮流中。此前通过苹果的一则招聘公告可以看出,其想要在基于 Linux 的服务器端平台上将 C 过渡到 Rust。
对此,我们不禁好奇,近 600 种编程语言中,为何 Rust 能够脱颖而出?它究竟有着怎样的魔力?日前,Rust 官方在调研了全球 8323 位开发者后,最新发布了 2020 年 Rust 调查报告,我们不妨回顾过往这一年 Rust 的发展来一探究竟。
开发者对 Rust 的信任度较高
通过报告,我们发现 Rust 开发者的用户黏度较高,有 83% 的受访者表示他们一直在使用该语言,仅有 7% 的开发者称曾经使用过 Rust,现在因为一些因素不再使用它。
至于放弃 Rust 的原因主要是,一方面,有 35% 的受访者称在一定的时间内还没有学会 Rust 语言;另一方面,34% 的受访者表示公司的业务用不到 Rust,所以也没有太多理由继续使用 Rust;除此之外,还有 19% 的开发者表示,和当前正在使用的其他编程语言相比,Rust 会让其程序变慢。
Rust 稳定性增强
众所周知,当提及 Rust 语言时,安全、性能、并发等特性是其优势。因此,Rust 的稳定性也经过了多轮的验证,不过具有较高稳定性的 Rust 并不意味着在任何场景下都能保证代码运行不会出现问题,尤其是在新版本的编译器下。对此,过去一年中,Rust 的迭代主要聚焦于清理代码库和提升稳定性。不过这项工作还尚未全部完成,但不少受访者表示,相比过往,Rust 的性能的确有很大的提升。这也是稳定版占主流版本的原因。
其次,开发者最喜欢 Rust 的 Nightly 版本。不过相较去年,这一版本的使用人数从 30.5% 下降到了 28%,只有 8.7% 的受访者表示他们一直在使用。当问及为什么使用时,开发者表示最主要的原因是因为该版本使用了 Rocket Web 框架,此前,官方也仅宣布该框架将在 Rust 下一稳定版本中使用。其次,使用 Nightly 版本的原因还包含了 const 泛型功能,不过,随着 const 泛型功能即将实现稳定版,预估计开发者会减少对此功能的依赖。
值得注意的是,Rust 官方指出,使用 Nightly 版本的用户大多处于习惯,因为“Nightly 版本足够稳定”。
谁在使用 Rust?
除了文章伊始所提及的大厂企业之外,对于开发者而言,他们主要将 Rust 应用于哪些场景?根据调查报告显示,Rust 作为一种用于生产的语言而广受欢迎,其中,有 40% 的软件开发者表示,他们在日常工作中经常使用 Rust。同时,也有近一半的受访者表示,自己所在的企业正在计划在新的一年中招聘 Rust 相关的开发者,这也意味着,Rust 人才的需求量将进一步扩大。
随着 Rust 的发展,它被用于越来越大的项目之中,有 44% 的受访者表示,他们产出的 Rust 代码在 1 万行及以上,而在去年这一比例仅有 34%。
开发者:Rust 太难学了!
虽然和一些老牌语言 C/C++ 相比,Rust 正在迅速捕获开发者的关注,但是据官方调查报告显示,Rust 仍有许多亟需完善之处。譬如以下几点:
与 C++ 的互操作需要进一步提升
有些出乎意料的是,Rust 与 C ++ 的互操作是开发者最为期待的,其次分别是 C、Python。实际上,对于使用大型代码库(100,000 行代码或更多)的开发者而言,实现与 C ++ 的互操作是改善 Rust 编程体验以及缩短编译时间最为直观的方法。
Rust 太难上手,尤其是生命周期
当被问及如何提高 Rust 的采用率时,不少开发者提到降低 Rust 的门槛,让 Rust 更容易被学习。其中,15.8% 的受访者直言,如果“不那么令人恐惧,或更容易学习以及不太复杂”,他们会想要更多地使用 Rust。至于怎么降低 Rust 入门门槛,开发者的建议是增加官方文档和培训。
当我们要求受访者对Rust的专业知识进行评分时,在10人中有7人是一个明显的高峰。很难说这是跨语言比较的,但是似乎很少有人愿意声称拥有全部专业知识。但是,与去年相比,Rust社区似乎确实在获得该语言的专业知识。
当问及具体是哪部分很难时,61.4% 开发者大呼 Rust 的生命周期难度最高。因为 Rust 的生命周期是一个非常难以理解的概念,同时这也是 Rust 独有的概念。
不过,根据调查报告,拥有系统编程知识(至少具备一定的 C/C++ 经验)的开发者在使用 Rust 会更得心应手一些。对此,Rust 官方在进行调研时,也让受访者进行了自评,结果显示,如果具有系统编程经验的开发者在自己的 Rust 专业知识中自评为 5.5 分(满分10);诸如学过 Java 或 C# 等语言的开发者自评为 4.9 分;如果仅具有动态类型语言(如 Ruby、JavaScript)经验的开发者,自评为 4.8 分。这其中存在一定的差异。
编译时间需要缩短
Rust 社区及其开发团队一直在致力于缩短 Rust 的编译时间,好在效果有些明显。有 50.5% 的受访者表示,感受到了编译时间已经缩短。对于拥有大型代码库(10,000 行代码及以上)的受访者而言,这种改进尤为明显,其中 62.6% 的受访者表示改进,不过,还有 2.9% 的受访者表示情况变得更糟。对此,Rust 官方在报告里面表示,缩短编译时间也将是 2021 年 Rust 功能继续完善的方向。
库的支持
根据调查发现,开发者对 Rust 生态系统中库支持的增长感到满意,其中 65.9% 的受访者表示,他们至少看到了一些改进,只有 4.9% 的受访者说他们没有看到任何改进。
当被问及最缺少哪种类型的库支持时,GUI 编程是一个压倒性的答案。
Rust 的未来
最后,对于业界而言,微软、苹果等公司都在深度拥抱 Rust,同时,Rust 在开发者圈中也越来越受欢迎。Rust 官方也带来了一些令人兴奋的特性,如 const 泛型、2021 版泛型关联类型(GATs),改进了异步功能、Bevy 游戏引擎等。不过,Rust 的学习门槛让不少开发者望而却步,在此,欢迎大家关注 CSDN 的「 Rust语言中文社区」:https://blog.csdn.net/u012067469 ,与我们共同成长。
更多内容详见:https://blog.rust-lang.org/2020/12/16/rust-survey-2020.html
更多精彩推荐 ☞美团回应“大数据杀熟”;Docker开发者预览版支持M1芯片;GTK 4.0发布|极客头条
点分享 点点赞 点在看
文章评论