Rust 2018 年调查结果

2018 年 11 月 27 日 · Rust 调查团队

又一年过去了,这意味着又一轮 Rust 调查,今年是 Rust 的第三次年度调查。今年,调查首次以多种语言发布。除了英语外,总共覆盖了 **14** 种语言。非英语语言的结果占所有回复的 *25%*,并帮助将回复数量推向新的记录 **5991 个回复**。在开始分析之前,我们只想对所有抽出时间回复并分享想法的人说一声“谢谢!”。正是因为你们的帮助,Rust 才能年复一年地不断改进。

Do you use Rust

尽管回复数量有所增加,但今年 Rust 用户的比例也出现了增长。从去年的 66.9% 的 Rust 用户增长到今年的近四分之三的回复来自 Rust 用户。

Rust 用户

使用 Rust 的时间

How long have you worked in Rust

我们看到源源不断的用户涌入 Rust。在调查时,约 23% 的 Rust 用户使用 Rust 不超过 3 个月。同样,近四分之一的用户使用 Rust 至少 2 年了。

How long did it take to be productive

超过 40% 的 Rust 用户在使用 Rust 不到一个月的时间内就感觉到了生产力,超过 70% 的用户在第一年就感觉到了生产力。不幸的是,用户之间存在明显的困难,超过 22% 的用户尚未感受到生产力。

How long have you been unproductive

仔细观察这些在 Rust 中感觉没有生产力的用户,只有大约 25% 的用户是在使用 Rust 的第一个月。这里的挑战是找到方法帮助用户提高生产力,这样他们就不会被卡住。

您使用 Rust 的频率?

Size of summed Rust projects

Rust 项目的规模正在不断扩大,整体投资也在不断增加。对 Rust 的中等和大型投资(分别超过 10k 和 100k 行代码)从 2016 年的 8.9% 增长到 2017 年的 16%,到今年的 **23%**。

How often do you use Rust

我们还看到了 Rust 定期使用的增长。从去年的 17.5% 增长到今年的近四分之一的用户每天使用 Rust。总的来说,Rust 的每周总使用量从 60.8% 上升到 66.4%。

Rust 专业知识

How would you rate your Rust expertise

Rust 专业知识并非简单的曲线,而是有两个峰值:一个在“3”附近,另一个在“7”附近,表明用户往往认为自己只是略高于初学者或经验丰富,而不一定是专家。

How difficult are Rust concepts

Rust 用户普遍认为枚举和 Cargo 是比较容易理解的概念;其次是迭代器、模块和特征。更具挑战性的概念是特征边界和不安全代码。最后,最具挑战性的概念是宏、所有权和借用以及生命周期。这些挑战与我们过去几年听到的反馈非常吻合,并且一直是持续提高生产力的重点,例如 NLL 和持续的宏系统改进。

What programming languages are you familiar with

有趣的是,我们发现 Rust 并不是用户最熟悉的编程语言。相反,它排在 Python 之后,位居第二。

Rust 工具链

Which Rust version do you use

我们看到自去年以来,当前稳定版本的用户的数量也比较相似。也许令人惊讶的是,我们继续看到使用 Nightly 编译器进行工作流程的用户数量不断增加。连续第二年,Nightly 的使用量继续上升,现在超过了 56%(从去年的 51.6% 上升)。

当被问及为什么使用 Nightly 时,人们给出了各种各样的原因,包括:访问 2018 版、asm、async/await、clippy、嵌入式开发、rocket、NLL、proc 宏和 wasm。

Has upgrading the compiler broken your code

自去年以来,在例行编译器更新期间遇到故障的人的比例保持不变,7.4% 的人表示他们遇到了故障。

If so how much work to fix it

故障通常需要进行一些小的修复,但有些人报告说需要进行中等或重大的修复才能升级到下一个稳定版本的编译器。

Preferred install method

我们再次看到 rustup 表现出色,它继续保持在 90% 的 Rust 安装中。Linux 发行版紧随其后,位居第二,为 17%。

Experience with Rust tools

rustfmtrustdoc 等工具表现出色,获得了大量积极的支持。紧随其后的是 clippy 工具——尽管用户较少,但它的用户很喜欢这个工具。IDE 支持工具 Rust Language Serverracer 获得了积极的支持,但不幸的是,在调查的工具中,它们产生了更多的不喜欢投票和评论。bindgen 工具的用户群相对较小。

Rust 工作流程

Which platform are you developing on

Linux 继续在 Rust 开发人员中占据主导地位,大约 80% 的 Rust 开发人员使用 Linux。Windows 的使用量从去年的 31% 增长到今年的 34%,连续第二年增长。

Which platforms are you developing for

Linux 和 Windows 继续作为 Rust 应用程序的目标平台表现出色。其他平台与去年基本保持一致,只有一个例外:WebAssembly。这项新技术取得了令人印象深刻的增长,从去年的 13% 增长到今年的 24%,几乎翻了一番。

What editors do you use

Vim 连续两年成为编辑器中的领跑者,现在终于被 VSCode 超越,VSCode 从今年的 33.8% 的 Rust 开发人员增长到 44.4%。

Rust 在工作中

Do you use Rust at work

Rust 在工作场所继续稳步增长。我们现在看到全职和兼职 Rust 的同比增长,从去年的 4.4% 的全职和 16.6% 的兼职增长到今年的 **8.9% 的全职** 和 **21.2% 的兼职**,全职 Rust 商业用途翻了一番。总的来说,Rust 商业用途从 21% 增长到超过 30% 的 Rust 用户。

Is your company evaluating Rust

Rust 有更大的空间进入更多公司,超过三分之一的用户报告称,他们目前没有计划在未来一年评估 Rust。当与调查数据表明,近一半的非用户需要公司支持相结合时,这表明需要进一步进行公司推广或提供更多关于 Rust 的公司重点信息。

感觉受欢迎

Do you feel welcome in the Rust community

Rust 社区努力的一个重要部分是确保 Rust 项目对用户来说是一个友好的地方。新用户应该感到鼓励去探索、分享想法,并自由地做自己。

当被问及这个问题时,现有的 Rust 用户和非用户都普遍感到受欢迎,尽管超过四分之一的回复不确定。这些回复也存在一些地区差异。例如,俄罗斯版调查的回复显示,不欢迎的感觉比例是 4%,是其他地区的两倍。中国大陆的比例更高,为 8%。

这里的挑战是帮助全球的 Rust 社区感受到自己是 Rust 独一无二的一部分,因为 Rust 正在不断地在世界更多地区建立强大的影响力。

Are you underrepresented in tech

在 Rust 中,自认为属于技术领域代表性不足群体的人数正在逐年缓慢增长。调查还强调了一些挑战,因为女性人数仍然低于编程领域女性的行业平均水平。

Rust 非用户

一个友好的 Rust 社区的重要组成部分是接触非用户。正如我们过去几年所做的那样,我们再次询问了人们不使用 Rust 的原因。

How long before you stopped

对于那些停止使用 Rust 的人,超过 50% 的人在不到一个月的时间内就停止了使用 Rust。同样,大约 50% 的离开 Rust 的人设法在停止使用之前使用 Rust 超过一个月。

Why are you not using Rust

许多非用户回复说他们确实想学习 Rust,但有一些因素阻碍了他们。其中最重要的是,回复者所在的公司本身不使用 Rust。近一半的非用户因为缺乏公司支持而被阻碍。

此外,每 4 个非用户中就有 1 个被 Rust 太吓人或太复杂的感觉所阻碍。改进 Rust IDE 支持的工作已经有所帮助(从 25% 下降到 16%),但我们仍然看到非用户强烈要求提供更好的 IDE 支持。

挑战

正如我们过去几年所做的那样,我们征求了您关于 Rust 可以改进的地方的意见。今年,我们在这些反馈中看到了一些熟悉的主题,也有一些新的主题。今年的前十个主题是

  1. 需要更好的库支持
  2. 改进的 IDE 体验
  3. 需要更广泛地采用 Rust
  4. 更丰富的工具和支持生态系统
  5. 改进的学习曲线
  6. 需要重要的语言特性和板条箱稳定并得到支持
  7. 支持异步编程
  8. 支持 GUI 开发
  9. 更好的文档
  10. 改进的编译时间

今年的新主题是越来越需要 **支持 GUI 开发**,表明 Rust 不仅在服务器端不断发展,而且人们也越来越需要将 Rust 扩展到应用程序开发领域。

"改进 Rust 的营销。许多人不知道 Rust。"

评论提醒我们,虽然 Rust 在某些圈子里可能很有名,但它仍然有很大的发展空间,在许多科技圈子里,Rust 可能还不为人知。

"关注采用/教程/书籍/新手体验将在未来几年带来回报。"

除了推广之外,更广泛的文档集将反过来帮助接触更广泛的受众。

"开发工具的稳定性和成熟度,使获得可用的设置和调试应用程序变得更容易。"

许多人对 IDE 支持发表了评论,指出 RLS 不仅不稳定或不准确,而且还需要一个更强大的 IDE 故事,涵盖更多领域,例如更轻松的调试。

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

一个常见的主题是需要推动库的完成并扩大用户可以使用的“标准”库集。一些评论指出,这不是维护人员的错,他们已经非常努力地编写和发布板条箱,而是总体上需要更多公司参与并提供商业支持。

"“将它们组合在一起”文档的人机工程学和可发现性。"

有些人指出,人机工程学与更丰富的文档密切相关,认为这些不是独立的概念,而是一些应该通过统一的方法共同解决的挑战。

展望未来

今年的调查是迄今为止最强大的调查。它不仅是规模最大的社区调查,而且是首次涵盖英语以外的语言。Rust 继续稳步增长,随之而来的是,它的优势和挑战都呈现在更广泛的受众面前。

我们期待着在 2019 年的规划中使用您的反馈,我们很高兴看到我们能将 Rust 带到哪里。