Rust 2018 年度调查报告

avatar
花呗借呗前端团队 @蚂蚁集团

原文作者:The Rust Survey Team

译者:UC 国际研发 Jothy


写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。


又是一年过去,意味着 Rust 又出新的调查了,本次是 Rust 的第三次年度调查。 今年的调查问卷首次推出多语言版本,涵盖了除英语外的 14 种语言。今年我们共计回收 5991 份问卷,创历史新高,其中非英语的占比 25%。 在开始分析之前,我们想给所有参与调查、表达想法的大家一份大大的“感谢!”。 正是因为你们的帮助,Rust 才能年复一年地不断进步。

今年 Rust 用户的占比并没有随着调查的人数的增加而下滑,反而也有所增加。 去年 Rust 用户占 66.9%,而今年的调查有近四分之三都来自 Rust 用户。

下面是关于Rust用户的调查结果:



Rust 使用时长

我们看到 Rust 的新用户源源不断。 在调查中,约 23% 的 Rust 用户使用时长少于 3 个月,近四分之一的用户使用 Rust 至少 2 年。

超过 40% 的 Rust 用户在使用不到一个月的时间内明显感受到 Rust 的高效,超过 70% 的人在第一年感到高效。 只不过,这之间也有些争议,超过 22% 的用户尚未感到卓有成效。


仔细观察那些感觉 Rust 没有效果的用户,只有大约 25% 的用户使用了不到一个月。 我们的挑战正是帮助用户找到提效的方法,帮他们摆脱困境。



你用 Rust 到什么程度?

随着整体投入的增加,Rust 项目将继续趋向更大规模。 中到大型的 Rust 项目(分别超过 10k 和 100k 行代码) 从 2016 年的 8.9% 增长到 2017 年的 16%,再到今年的 23%。

我们也看到了 Rust 常规使用量的增长。 对比去年的 17.5%,现在 Rust 每日使用量接近四分之一。 总的来说,Rust 每周的总使用量从 60.8% 上升到了 66.4%。


掌握 Rust 的专业度

Rust 的专业度不仅仅是一条简单的曲线,还有两个高峰:一个围绕“3”,另一个围绕“7”,这表明用户倾向于认为自己只是初学者或经验丰富而不一定是专家。

Rust 用户普遍认为 Enums 和 Cargo 是简单的概念; 其次是 Iterators(迭代器),Modules(模块)和 Traits。 接下来是更具挑战性的 Trait Bounds 和 Unsafe 概念。 最后,最具挑战性的概念是 Macros,Ownership&Borrowing和 Lifetimes。 这些挑战与我们过去几年听到的反馈密切相关,并继续成为持续提高生产力的重点,如 NLL 和持续的宏观系统改进。

搞笑的是,我们发现 Rust 实际上并不是用户熟悉的顶级编程语言。 相反,它的排名落后于 Python。



Rust 工具链

我们看到,当前稳定版本的用户数量与去年的相似。 比较神奇的是,我们仍看到,在工作流程中使用 Nightly 编译器的用户有所增加。 连续第二年,Nightly 使用量持续上升,现已超过 56%(高于去年的 51.6%)。

当被问到为什么使用 Nightly 时,大家的原因各有不同,包括:访问 2018 版本,asm,async/await,clippy,嵌入式开发,rocket,NLL,proc 宏和 wasm。


在常规编译器更新期间遇到 breakage 的人占比与去年相同,7.4% 的人表示他们经历过 breakage。

Breakage 通常只需要做一些小修复,但也有一些中到大型的修复会需要升级到下个稳定的编译器版本。

安装方式上,我们再次看到 rustup 一枝独秀,它继续占 Rust 安装方式的 90%。 Linux 发行版以 17% 的速度紧跟其后。

rustfmtrustdoc 这样的工具表现突出,有很多的支持。然后是 clippy 工具 - 尽管用户较少,但大家都很喜欢它。虽然 IDE 支持工具 Rust Language Serverracer 支持数也不少,但在调查的工具中,dislike 它的投票和评论有点多。 bindgen 工具比较小众。



Rust 工作流

Linux 仍然是 Rust 开发者的强大后盾,占据了大约 80%。 Windows 的使用量从去年的 31% 略微增长到今年的 34%,这是其连续第二年增长。

Linux 和 Windows 作为 Rust 应用的目标平台表现突出。 其他平台与去年大致相同,但有一个例外:WebAssembly。 这项新技术取得了令人瞩目的增长,从去年的 13% 增长到今年的 24%,几乎翻了一番。

领跑两年的 Vim 现在终于被 VSCode 击败了,Rust VSCode 开发者从 33.8% 增长到今年的 44.4%。



在工作中应用 Rust

Rust 继续在工作使用度上保持平稳增长。 我们看到全职和兼职使用 Rust 的同比增长,从去年 4.4% 的全职和 16.6% 的兼职增长到今年的 8.9% 的全职和 21.2% 的兼职 ,全职 Rust 商用增长了一倍。 总的来说,Rust 的商用总量从 21% 增长到了略高于 30%。

让 Rust 走入更多公司还有提升空间,超过三分之一的用户表示尚未考虑在未来一年中使用 Rust。 当与调查数据配对时,近一半的非 Rust 用户表示需要公司支持,这需要公司进一步的拓展或对 Rust 更多了解。




宾至如归的感觉

Rust 社区工作的重点是确保 Rust 对其用户来说是一个温馨的地方。 新用户应该感觉受到鼓舞,自发地去探索,去分享想法。

目前 Rust 用户和非 Rust 用户大都感觉宾至如归,尽管超过四分之一的回复是不确定。 这些答复中也存在一些区域差异。 例如,对俄罗斯版本调查的回复显示,不受欢迎的感觉比例为 4%。 中国大陆的增幅更高——为 8%

这也是一个挑战——让全球的 Rust 社区感觉 Rust 因他们而独特,因为 Rust 正在世界各地发展壮大。

认为自己所代表的群体(译者注:如女性)在技术领域占比不足的人增速有所放缓。 该调查还凸显了其他挑战,因为女性人数仍然低于编程领域女性的行业平均水平。


下面是未使用Rust用户的调查结果:

热情的 Rust 社区的也在向非 Rust 用户伸出援手。 和往年一样,我们再次询问人们为什么不使用 Rust。

对于那些不再使用 Rust 的人来说,只有不到 50% 的人在不到一个月的时间内停止使用 Rust。 同样地,大约 50% 离开 Rust 的人在停止之前坚持使用它超过一个月。

许多非 Rust 用户回答他们确实想学习 Rust,但有些因素会减慢他们的速度。 其中首先是他们工作的公司不使用 Rust。 近一半的非 Rust 用户因缺乏公司支持而受阻。

此外,由于 Rust 给人感觉过于复杂,四分之一的非Rust用户放慢了速度。 改进 Rust IDE 的工作有所帮助(从 25% 降至 16%),但在提供更好的 IDE 支持仍能大力推动非 Rust 用户使用 Rust。



挑战

正如我们过去几年所做的,我们询问了 Rust 可以改进的地方。 今年,我们在这个反馈中看到了一些熟悉的和一些新的主题。 今年十大主题是:

  1. 需要更好的 library 支持

  2. 更好的 IDE 体验

  3. 需要更广泛地采用 Rust

  4. 更丰富的工具和支持生态

  5. 更好的的学习曲线

  6. 需要保证稳定和支持的重要语言功能和 crates

  7. 支持异步编程

  8. 支持 GUI 开发

  9. 更好的文档

  10. 更快的编译时间


今年不断增长的新需要是支持 GUI 开发,这表明 Rust 不仅在服务器上保持增长,而且用户也感觉需要把它延伸到应用开发。

“做好 Rust 营销,很多人不了解它”


评论提醒我们虽然 Rust 在某些圈子中可能比较出名,但它仍有增长的空间,在许多科技领域,Rust 可能还鲜为人知。

“专注于 adoption/教程/书籍/新手经验在未来大有裨益。”


除了扩大服务外,更广泛的文档将反过来帮助更广泛的受众。

“开发者工具的稳定性和成熟度,能设置和调试应用更快捷”


许多人对 IDE 支持发表了意见,不仅指出了 RLS 中的不稳定性或不准确性,而且还表达了对更强大的 IDE 的需要,涵盖更多领域,比如更容易调试。


“生态系统和库的成熟。拥有一个良好的“标准”库生态系统是该语言未来的关键”


推动库完成并增加用户可以使用的“标准”库集是大家的共识。有些评论指出,这不是维护者的错,他们已经在努力编写和发布板条箱,但更多的公司需要参与并提供商也支持。


“文档必须集“人体工程学”和“可发现性”于一身”


有些人指出,人体工程学应该与更丰富的文档齐头并进,认为这些不是单独的概念,而是应该以统一的方法解决的挑战。



期待

今年的调查是最强大的。它不仅是最大的社区调查,还是第一个涵盖英语以外语言的调查。 Rust 继续稳步增长,由此带来的优势与挑战也被更多人所了解。


我们期待在 2019 年的规划中收到您的反馈,并且很期待接下来 Rust 会如何大展身手。

英文原文:

https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html


好文推荐:

V8中更快的异步函数和promises



“UC国际技术”致力于与你共享高质量的技术文章

欢迎关注我们的公众号、将文章分享给你的好友