别再吹Rust了,它太难学了!

小哈学Java

共 3964字,需浏览 8分钟

 ·

2020-12-26 16:57

2020 年接近尾声,随之而来的是一年一度的 Rust 调查分析!这项调查是在 2020 年 9 月下半月进行的,历时两周。在此感谢所有参加此次调查的人,尤其是那些帮助翻译非英语回答的人。

闲话少叙,言归正题!
别再吹 Rust 了,太难学了

这项调查一共包含了 14 种语言版本,共收到 8323 份回答,创下了纪录。在调查中,83.0% 的受访者表示他们使用 Rust(创历史新高),而 7% 的受访者表示他们过去曾经用过 Rust,但现在已经不用了。

在被问及为什么停止使用 Rust 时,最大的一组(35%)说他们只是还没有学会(可能是因为没有时间,也或者是太难学了),其次是公司不使用 Rust (34%),还有一些人(19%)说改用 Rust 会比他们目前所选择的语言“慢”。

Rust 很好,稳定性强大

尽管 Rust 本身一直都有强大的稳定性保证,但它的稳定性往往不仅仅是确保新版本的编译器编译的用户代码不会崩溃。2020 年的 Rust 主要是清理和稳定已有的功能和计划。尽管这项工作尚未接近尾声,但受访者已经注意到,Rust 的稳定性总体上有所提高。

首先,我们要赞扬 rust-analyzer 和 IntelliJ Rust 插件 项目,这两个项目的用户群都比较满意。近四分之三的受访者指出,他们在 IDE 中看到了一些改进,但 rust-analyzer 和 IntelliJ 的用户尤其满意,47% 的 rust-analyzer 用户表示“有很大的改进”,而 IntelliJ 用户有 40% 也是这样说。

除了 IDE 体验的改进外,依赖 nightly 编译器的用户数量一直在减少,达到 28%:而去年这一数字是 30.5%。只有 8.7% 的受访者表示他们完全使用 nightly 编译器。在被问及为什么使用 nightly 时,最大的原因是为了使用 Rocket Web 框架,该框架已经宣布将在下一个版本中使用 Rust 的稳定版本。对于 nightly,第二大原因是 const 泛型,但随着 const 泛型的最小版本达到稳定,我们应该会看到对 nightly 这个特性的依赖降低了。

值得注意的是,使用 nightly 的大部分用户都是出于习惯,因为“nightly 已经足够稳定了”。当被问到什么东西常常会破坏人们的代码时,到目前为止,最多的回答就是在代码库中引入新的警告,警告会破坏构建(这不是 Rust 稳定性保证的一部分,尽管 Rust 的设计使得添加新的警告永远不会破坏依赖关系)。由于我们依靠 nightly 测试来捕获回归,所以这是一个非常好的迹象:nightly 足够稳定,而且还能允许持续的改变。向 Rust 基础设施、编译器和 libs 团队致敬,因为他们在确保 nightly 编译器中的内容已经相当稳定方面做得非常好!

但是,Rust 需要改进

虽然 Rust 的使用量似乎正在以健康的速度增长,但这项调查的结果清楚地表明,要使 Rust 成为更适合许多人工作流的工具,还有许多工作要做。

重中之重:提高可学习性

当被问及如何提高 Rust 的采用率时,很多人提到让 Rust 更容易学习,15.8% 的受访者表示,如果 Rust“不那么可怕、更好学,或不那么复杂”,他们会更多地使用它。此外,当被直接问到如何改进 Rust 的采用时,最大的反馈类别是文档和培训。

当我们要求受访者对他们在 Rust 方面的专业知识打分时,出现了一个明显的峰值:7 分(满分为 10 分)。很难说这在不同的语言之间有多大的区别,但是很少有人愿意声称自己拥有全部的专业知识,这一点似乎很值得注意。不过,与去年相比,Rust 社区似乎的确在语言专业知识方面取得了长足进步。

我们还询问了具体题目的难度。根据调查结果来看,最难学的题目有点不出所料,是生命周期管理,61.4% 的受访者认为,使用生命周期要么很棘手,要么非常困难。

看来,拥有 C++ 知识确实有帮助,至少有部分 C++ 经验的受访者中,有 20.2% 的人指出寿命周期是“非常困难”的,而没有 C++ 知识的受访者中,有 22.2% 的人认为这个话题“非常困难”。总体而言,系统编程知识(被定义为至少有一些 C 和 C++ 方面的经验),往往使 Rust 用户更有信心:那些有系统编程经验的人给自己的 Rust 专业知识打了 5.5 分(满分 10 分),而那些有静态类型垃圾收集语言(如 Java 或 C#)经验的人给自己打了 4.9 分(满分 10 分)。仅有 Ruby 或 JavaScript 等动态类型语言经验的人,给自己的评分是 4.8 分(满分 10 分)。

不出所料,人们使用 Rust 的频率越高,就越觉得自己是这门语言的专家。每天使用 Rust 的人中,有 56.3% 的人在 Rust 方面的专家评分为 7 分或 7 分以上(满分 10 分),而每月使用 Rust 的人中,这一数字为 22%。

C++ Interop

有趣的是,C++ Interop 是与 Rust 更好互操作的最受欢迎的语言,而 C 和 Python 分别位居第二和第三。改进的 C++ Interop 尤其经常被提及,因为它可以用来改进 Rust 在工作中的具体使用。事实上,对于处理大型代码库(十万行或更多代码)的用户来说,C++ Interop 和编译时间是提高 Rust 体验的最常用方法。

改善编译时间

对 Rust 社区和 Rust 团队来说,一个重要的话题是改善编译时间。目前已经取得了进展,50.5% 的受访者表示他们认为编译时间有所改善。这种改善在拥有大型代码库(10000 行代码或更多)的受访者中尤为明显,其中 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 的未来

作为一种用于生产的语言,Rust 继续取得进展,大约 40% 从事软件开发的受访者表示,他们在日常工作中使用 Rust。此外,近半数的受访者说他们的雇主计划在下一年雇佣 Rust 开发者。

在使用 Rust 的人中,变化最大的似乎是学生,而更大比例的受访者回答说他们不会在工作中使用 Rust,因为他们是学生或者是软件爱好者,因此无需从事软件方面的工作(今年约 15%,去年约 11%)。

此外,Rust 在受访者工作场所的使用似乎越来越多了,44% 的受访者表示,工作场所的 Rust 代码数量达到或超过 1 万行,而去年这一数字为 34%。

总体而言,受访者不仅对 Rust 在过去一年里取得的进步持肯定态度,对未来一年的进步也持肯定态度。尤其是,Rust 语言的新特性让很多人感到兴奋,比如 const 泛型和泛型与关联类型(generic associated types,GATs)以及 2021 版,对 async 的改进,Bevy 游戏引擎,公司更多地采用 Rust,WebAssembly 等等!

原文链接:

https://blog.rust-lang.org/2020/12/16/rust-survey-2020.html

END


有热门推荐?

1. 从Nginx、Apache工作原理看为什么Nginx比Apache高效!

2. 用Java实现天天酷跑(附源码),这个真的有点强了!

3. 网易游戏基于 Flink 的流式 ETL 建设

4. 用了3年CAT,这次我想选择SkyWalking,老板反手就是一个赞!

最近面试BAT,整理一份面试资料Java面试BATJ通关手册,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

浏览 57
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报