2020年锈蚀状况调查结果

2020-12-17 05:12:54

又过了一年,随之而来的是每年的Rust调查分析!这项调查是在2020年9月下半年进行的,为期两周。在此,我们要特别感谢那些参加本次调查的人,他们对那些翻译非英语回复的人表示特别感谢。

该调查以14种不同的语言提供,总共记录了8,323份记录。

83.0%的受访者表示他们使用了Rust(历来最高),而7%的受访者表示过去曾经使用Rust,但现在不再使用。当被问及为什么停止使用Rust时,最大的一组(35%)说他们还没有学会(大概是由于时间不够),其次是那些不使用Rust的公司(34%),与当前选择的语言(19%)相比,切换到Rust会“降低他们的速度”。

尽管Rust本身始终具有强大的稳定性保证,但是稳定性通常不仅仅意味着确保在使用新版本的编译器进行编译时用户的代码不会中断。 2020年的Rust主要是关于清理和稳定已经在进行的功能和计划。尽管这项工作尚未完成,但受访者指出,Rust的稳定性总体上一直在提高。

首先,我们要大声疾呼rust-analyzer和IntelliJ Rust插件项目,这两个项目都拥有相对满意的用户群。将近3/4的受访者指出,他们在IDE方面至少看到了一些改进,但是rust-analyzer和IntelliJ的用户尤其满意,其中47%的rust-analyzer用户注意到“很多改进”,而40%的用户对此表示满意。 IntelliJ用户也是如此。

除了改善IDE体验外,至少部分时间依赖夜间编译器的用户数量继续下降-与去年的30.5%相比下降到28%,只有8.7%的受访者说他们每晚使用只。当被问到为什么人们每天晚上都在使用时,最大的原因是使用了Rocket Web框架,该框架已经宣布它将在下一版本的Rust稳定版本中使用。夜间发生的第二大原因是const泛型,但是随着const泛型的最小版本达到稳定,我们应该会减少对每晚使用此功能的依赖。

值得注意的是,每晚使用的用户中有一定比例的人这样做是出于习惯,因为“每晚足够稳定”。当被问到是什么最经常破坏人们的代码时,到目前为止,最大的答案是在代码库中引入新的警告,警告会破坏构建(尽管Rust的设计目的是使添加新的警告永远不会破坏您的代码,但这不是Rust的稳定性保证的一部分)依赖项)。由于我们依靠夜间测试来捕获回归,因此这是一个很好的信号:夜间稳定足够有用,同时仍可以进行连续更改。向Rust基础结构,编译器和libs团队大喊大叫,以确保确保夜间编译器中的内容已经相当稳定!

Rust继续作为一种用于生产的语言而大行其道,大约40%的从事软件工作的受访者表示他们在日常工作中使用Rust。此外,Rust的工作前景光明,将近一半的人说,他们的雇主计划在明年雇用Rust开发人员。

在使用Rust的人中,看似最大的变化似乎是学生,在受访者中,他们是因为是学生或软件爱好者而没有在工作中使用Rust的比例更高(约15%,去年为〜11%)。因此无需从事软件工作。

此外,受访者对Rust的使用工作场所似乎正在变得越来越大,有44%的受访者表示,Rust的工作量为10,000行代码或更多,而去年为34%。

尽管Rust的使用似乎正在以健康的速度增长,但调查结果表明,仍然有很多工作要做,以使Rust成为许多人工作流程中更合适的工具。

有趣的是,C ++互操作是与Rust在C和Python上排名第二和第三的更好互操作的最需要的语言。尤其经常提到改进的C ++互操作,作为专门在工作中改进Rust使用率的方法。实际上,对于使用大型代码库(100,000行代码或更大的代码)的用户而言,C ++互操作和毫不奇怪的编译时间是改善其Rust体验的最常被引用的方法。

当被问及如何提高Rust的采用率时,许多人提到让Rust更容易学习,有15.8%的受访者表示,如果“不那么令人恐惧,更容易学习或不太复杂”,他们将更多使用Rust。另外,当直接问人们如何认为我们可以提高Rust的采用率时,最大的反馈类别是文档和培训。

当我们要求受访者对Rust的专业知识进行评分时,在10人中有7人是一个明显的高峰。很难说这是如何比较各种语言的,但是似乎很少有人愿意声称拥有全部专业知识。但是,与去年相比,Rust社区似乎确实在获得该语言的专业知识。

我们还询问了特定主题的难度。根据调查结果,最难学习的话题是生命周期管理,这一点不足为奇,有61.4%的受访者表示,生命周期的使用既棘手又非常困难。

似乎,拥有C ++知识似乎可以帮助20.2%的至少具有某些C ++经验的受访者指出,一生是“非常困难”的,而22.2%的没有C ++知识的受访者则认为这个话题“非常困难”。总的来说,系统编程知识(至少定义为具有一定的C和C ++经验)倾向于使Rust用户更加自信:那些具有系统编程经验的人在自己的Rust专业知识中将其评为10分中的5.5分,而那些具有静态经验的人诸如Java或C#之类的类型化垃圾收集语言将其自身评为10分中的4.9分。那些只具有动态类型性语言(如Ruby或JavaScript)经验的语言将其自身评为10分中的4.8分。

毫不奇怪,人们使用Rust的频率越高,他们在使用该语言的专家中的感觉就越多,每天使用Rust的人中有56.3%的人将自己在Rust方面的专家比例定为10分中的7分或更高,而22分每月使用Rust的用户所占的百分比。

对Rust社区和Rust团队重要的一个持续主题是缩短编译时间。 50.5%的受访者表示已经感到进步,他们认为编译时间已经缩短。对于具有大型代码库(10,000行代码或更多行)的受访者而言,这种改进尤其明显,其中62.6%的受访者表示改进,而只有2.9%的受访者表示情况变得更糟。缩短编译时间可能是2021年付出巨大努力的源泉,敬请期待!

总体而言,受访者似乎对Rust生态系统中图书馆支持的增长感到满意,其中65.9%的受访者说他们至少看到了一些改进,而只有4.9%的受访者说他们没有看到任何改进。当被问及最缺少哪种类型的图书馆支持时,GUI编程是一个压倒性的答案,只有26.9%的受访者指出,这是去年的一个改进领域。

其他需要改进的主题包括:使异步编程的故事趋于成熟;针对crates.io生态系统尚未涵盖的特定任务的更多库;以及更多的“祝福”的库。常见任务的库。

Rust社区可以改善的方式各不相同,但有两个流行点。首先,为那些不希望或无法参加英语的人改善Rust社区的状况。似乎没有一种特定的语言特别受俄罗斯,普通话,日语,葡萄牙语,西班牙语和法语的欢迎。

此外,许多人表示,在Rust社区中拥有大型公司赞助商将使他们更容易为在工作中使用Rust的情况辩护。

另一个有趣的发现是,到目前为止,欧洲似乎是与欧洲所有地区(西部,东部,北部,南部和中部)举行Rust会议的最受青睐的地方,所有受访者均表示有兴趣的比例超过14%在西欧参加会议的比例最高(占受访者的26.3%)。同一球场中唯一的其他地区是美国,有21.6%的受访者表示对当地的会议感兴趣。

总体而言,受访者似乎不仅对Rust在过去的一年中有所改善,而且对来年也持乐观态度。特别是,许多人指出他们对语言的新功能感到兴奋,例如const泛型和泛型关联类型(GAT)以及2021年版,对异步的改进,Bevy游戏引擎,公司对Rust的更多采用,WebAssembly等!