发布时间:2020-12-18 21:58:26来源:CSDN
编译|苏宓
头图|CSDN下载自东方IC
出品|CSDN(ID:CSDNnews)
众多语言中,Rust作为一款小众的现代系统编程语言,近几年间,接连受到了各大企业的青睐。
正如不久前,AWS开源团队宣布聘用Rust编译器联合创始人FelixKlock,未来致力于进一步改进Rust。对于AWS本身而言,也是Rust的忠实用户,其基于Rust研发并支持了多款内部产品,如虚拟化技术产品Firecracker,以及AmazonSimpleStorageService(AmazonS3)、AmazonElasticComputeCloud(AmazonEC2)、AmazonCloudFront和AmazonRoute53等服务。
此外,另一大科技巨头微软宣布未来将使用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%的受访者表示他们一直在使用。当问及为什么使用时,开发者表示最主要的原因是因为该版本使用了RocketWeb框架,此前,官方也仅宣布该框架将在Rust下一稳定版本中使用。其次,使用Nightly版本的原因还包含了const泛型功能,不过,随着const泛型功能即将实现稳定版,预估计开发者会减少对此功能的依赖。
值得注意的是,Rust官方指出,使用Nightly版本的用户大多处于习惯,因为“Nightly版本足够稳定”。
除了文章伊始所提及的大厂企业之外,对于开发者而言,他们主要将Rust应用于哪些场景?根据调查报告显示,Rust作为一种用于生产的语言而广受欢迎,其中,有40%的软件开发者表示,他们在日常工作中经常使用Rust。同时,也有近一半的受访者表示,自己所在的企业正在计划在新的一年中招聘Rust相关的开发者,这也意味着,Rust人才的需求量将进一步扩大。
随着Rust的发展,它被用于越来越大的项目之中,有44%的受访者表示,他们产出的Rust代码在1万行及以上,而在去年这一比例仅有34%。
开发者:Rust太难学了!
虽然和一些老牌语言C/C++相比,Rust正在迅速捕获开发者的关注,但是据官方调查报告显示,Rust仍有许多亟需完善之处。譬如以下几点:
有些出乎意料的是,Rust与C++的互操作是开发者最为期待的,其次分别是C、Python。实际上,对于使用大型代码库(100,000行代码或更多)的开发者而言,实现与C++的互操作是改善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
更多精彩推荐
点分享
点点赞
点在看