Rust 2019 年度调查结果

2020 年 4 月 17 日 · Rust 调查团队

提供以下语言翻译: 中文

Rust 社区的朋友们,大家好!

我们很高兴公布 Rust 社区第四届年度调查的结果。在我们深入分析之前,我们想对所有花时间参与调查的人表示衷心的感谢!你们对于 Rust 日益改进至关重要!

让我们先看看受访者群体。

受访者群体

本次调查提供了 14 种不同语言版本,我们收到了 3997 份回复。

以下是我们收到的回复的语言分布。

  • 英语:69.6%
  • 中文:10.8%
  • 德语:4.3%
  • 法语:3.3%
  • 日语:3.0%
  • 波兰语:1.2%
  • 葡萄牙语:1.2%
  • 西班牙语:.9%
  • 韩语:.8%
  • 意大利语:.6%
  • 瑞典语:.5%
  • 越南语:.2%

在 2019 年的调查中,82.8% 的受访者表示他们正在使用 Rust,7.1% 表示他们目前不使用 Rust 但过去使用过,10.1% 表示他们从未用过 Rust。

如果与 2018 年的调查(其中 75% 的受访者表示他们使用 Rust,8% 表示他们目前不使用 Rust 但过去使用过,8% 表示他们从未用过 Rust)相比,2019 年有更多的受访者正在使用 Rust。

回顾 Rust 2018

我们在 2018 年 12 月发布了 Rust 2018 版本 - Rust 1.31.0。在 2019 年的调查中,92% 的 Rust 用户表示他们正在使用新的版本。85% 的用户表示升级到 Rust 2018 版本很轻松。

接下来,我们请用户对 Rust 语言关键方面的改进进行评分。

How has adoption level improved

How has async io improved

How has compile time improved

How has GUI development improved

How has IDE support improved

How has library support improved

How have stable language features and crates improved

How has Rust documentation improved

How has the learning curve improved

How has tools and support improved

总的来说,许多人认为 Rust 语言的许多方面在 2018 版本中都有了“一些改进”。

会议与社区

我们注意到英语和其他语言的调查结果存在一些差异。在非英语受访者子集中,发现的大多数问题和担忧与英语受访者相同。然而,一个问题/趋势在非英语受访者子集中尤为突出——他们希望 Rust 文档能提供其母语或他们参与调查时使用的语言版本。这在中文受访者群体中尤其明显,但这可能与他们的代表性较高有关。

我们正在通过 GitHub 的“Translation” Issue 标签追踪 正在进行的翻译工作

我们收到了大量关于如何改进 Rust 并使其对更多人更友好的反馈。我们无法在此全部列出,因此在此总结了一些我们认为突出的反馈意见。

总的来说,人们希望获得更多关于 Rust 的学习资料。在专业水平方面,主要是针对初学者和中级水平的资料。许多这些请求还特别提到了视频内容。

人们提到的常见的参与障碍是社交焦虑和可访问性。一个常见原因是,有些资源对于有阅读障碍的人来说难以阅读。

以下是针对问题“我们可以采取什么行动让您感到更受欢迎?”的一些具体回答:

  • 我觉得自己经验不足、技能不够,无法参与 Rust 社区。
  • 宣传更多新人可以贡献/参与的方式。
  • 更多有组织的指导,在线课程。
  • 制作关于如何为编译器做贡献的视频教程。我很想贡献,但我觉得望而却步。
  • 新人很难找到资源来了解 Rust 在开源项目中是如何使用的,这样他们可以在学习语言的同时看到实际应用。
  • 提供更多教程/博客,解释简单的 Rust & 编程概念,就像读者是完全的初学者一样。
  • 更多中级教程。我们已经有无数个“Rust 入门”教程了。
  • 更小的互助小组 - 例如,社交焦虑让在 Discord 中交流变得困难。
  • 不要在欧盟时间深夜召开同步会议。减少同步会议,或者更持续地发布和汇总团队会议记录。

这些问题无疑是我们希望在 2020 年及以后解决的。

谁在使用 Rust?用于什么?

How often do you use Rust

Rust 的日均使用率略有上升,达到 27.63%(去年略低于 25%,2017 年为 17.5%)。每日或每周使用率也持续小幅上升。今年为 68.52%,去年为 66.4%,2017 年为 60.8%。

How would you rate your Rust expertise

我们还请用户对自己的 Rust 熟练程度进行评分——评分在“7”附近有明显的峰值。

How would you rate your Rust expertise

为了更深入地了解这一点,我们将用户的自我评估 Rust 熟练程度与他们使用 Rust 的时长进行了关联分析。

What title best matches your role for Rust users

为了提供更广泛的背景信息,我们调查了全职使用 Rust 的用户在其组织中倾向于拥有哪些头衔(受访者可以选择多个)。

不出所料,Rust 用户中最常见的头衔是程序员/软件工程师。

What industry do you work in for Rust users

为了获得更多背景信息,我们请 Rust 调查受访者指明他们所在的行业。

对于全职使用 Rust 的用户来说,迄今为止最常见的行业是后端 Web 应用。

Size of summed Rust projects

大多数 Rust 项目 (43%) 的代码行数在 1,000-10,000 行之间。中大型 Rust 项目(代码行数总计超过 1 万行)的比例持续上升。它们从 2016 年的 8.9% 增长到 2017 年的 16%,2018 年的 23%,再到 2019 年的 34%

为什么不使用 Rust?

构建一个友好的 Rust 社区很大程度上也包括触达非用户。

Why did you stop using Rust?

当我们问及为什么有人停止使用 Rust 时,最常见的回答是“我的公司不使用 Rust”——这表明 Rust 的采用率仍然是最大的原因。其次,学习曲线、缺乏所需的库、切换到 Rust 导致效率变慢以及缺乏 IDE 支持是用户停止使用 Rust 的最常见原因。

Why have you never used Rust?

对于表示从未用过 Rust 的用户,大多数表示“我还没学 Rust,但想学”或“我的公司不使用 Rust”——这再次表明采用率是主要障碍。

为了更多背景信息,我们还调查了非 Rust 用户认为最符合其角色的头衔。

What title best matches your role for non Rust users

与 Rust 用户一样,迄今为止最常见的头衔是程序员/软件工程师。

What industry do you work in for non Rust users

同样与 Rust 用户一样,迄今为止最常见的行业是后端 Web 应用。

I would use Rust more often if...

我们还问用户什么会促使他们更频繁地使用 Rust。大多数人表示,如果他们的公司采用 Rust、如果 Rust 有更多他们需要的库、以及如果 IDE 支持更好,他们会更频繁地使用 Rust。排在这些之后的最常见原因指向需要改进学习曲线和互操作性。

由于采用率似乎是阻碍一些受访者使用 Rust 的最大问题,让我们深入探究一下。

Rust 采用情况 - 深入探究

首先,我们询问我们可以做些什么来提高 Rust 的采用率。

How can we improve Rust for better adoption

一些用户给出了具体的例子

  • “学习曲线尽可能平滑,对于一家小企业来说,即使是 4-6 周才能变得高效也是一个很高的要求。”
  • “更高的市场渗透率”
  • “更稳定的库”
  • “一个像 Rails、Django 和 Phoenix 这样的全栈 Web 框架”
  • “更好的文档,更多示例,以及推荐使用哪些 crates”
  • “更强调它作为 C 或 C++ 的更安全替代方案(以及通常应该成为默认选项)”
  • “缩短编译时间。开发构建的编译速度至少要和 Go 一样快,这样我们才会考虑 Rust。(Release 构建可以慢一些。)”
  • “更好的平台支持”
  • “安全性和性能,经济高效且“绿色”(低碳足迹)的语言”
  • “面向 ARM 的嵌入式开发”
  • “更好的 GUI 框架,类似于 Qt 或通过 bindings 直接使用 Qt。”

大多数人表示,Rust 的成熟度——例如更多的库、完整的学习资源以及更成熟的生产能力——将使 Rust 更具吸引力。

让我们仔细看看这些方面,首先是需要更成熟的库。

库 - 深入探究

当我们问用户认为哪些库对 Rust 生态系统至关重要时,以下是排名前十的回答

  • serde
  • rand
  • tokio
  • async
  • clap
  • regex
  • log
  • futures
  • hyper
  • lazy_static

What dependencies are 1.0 or above

我们还询问了用户使用的依赖项中有多少是 1.0 或更高版本。

  • 0.8% 表示“全部”
  • 6.7% 表示“大部分”
  • 65.9% 表示“一些”
  • 5.2% 表示“无”
  • 21.4% 表示“不知道”

IDE 和工具 - 深入探究

Rust 的 IDE 支持也被认为是采用的障碍之一。

What editor are you using

当我们问用户使用什么编辑器时,Vim 和 VSCode 是迄今为止最受欢迎的,其次是 Intellij。

我们还询问了用户使用的 IDE 设置

  • 43.3% 表示使用 RLS
  • 21.7% 表示使用 Intellij
  • 15.2% 表示使用 Rust-analyzer
  • 12.4% 表示无(或使用 CTAGS)
  • 4.2% 表示仅使用 Racer

What platform are you developing on

至于用户开发所用的平台——Linux 和 Windows 仍然占据主导地位。

  • 55% 的 Rust 用户在 Linux 上开发
  • 24% 在 Windows 上开发
  • 23% 在 macOS 上开发

我们发现绝大多数用户使用 Rust 的当前稳定版本 (63%)。需要注意的是,本次调查允许受访者选择他们使用的 Rust 版本中的多个选项。

  • 30.5% 使用 nightly 版本
  • 2.5% 使用 Beta 版本
  • 63% 使用当前稳定版本
  • 3.1% 使用较早的稳定版本
  • 0.6% 使用自定义分支
  • 0.3% 不知道

令人惊讶的是,在工作流程中使用 Nightly 编译器的用户数量降至 20%。去年这一比例超过 56%。

学习曲线 - 深入探究

Rust 以其显著的学习曲线而闻名。

How long did it take to be productive

约 37% 的 Rust 用户在使用不到一个月后感到在 Rust 中高效——这与去年 (40%) 的比例相差不大。超过 70% 的人在第一年内感到高效。不幸的是,与去年一样,用户中仍然存在困难——21% 的人表示他们还没有感到高效。

Expertise level of respondents who don't feel productive yet

值得注意的是,我们选取了尚未感到高效的用户子集,并绘制了他们对自己 Rust 熟练程度的评分。这表明那些尚未感到高效的人,其熟练程度处于较低到中等水平——这些群体最需要我们的学习资料、文档等方面的支持。

互操作性 - 深入探究

多年来,一些用户表示希望 Rust 能与其他语言有更好的互操作性。

What languages would you want to use with Rust

当我们问用户希望 Rust 与哪些语言具有互操作性时,答案多种多样,但 C 语言占主导地位,紧随其后的是 R 语言(有点出人意料),然后非常接近的是 C++。需要注意的是,受访者可以对这个问题选择多种语言——这些百分比是基于总回答数计算的。

What platforms are you targeting

至于用户应用程序的目标平台,Linux 仍然是首选,占 36.9%,Windows 位居第二,占 16.3%。紧随 Windows 之后的是 macOS 和 Web Assembly,各占 14%。我们还看到更多用户以 Android 和 Apple iOS 为目标。

结论

总的来说,用户表示生产力仍然是他们工作的重要目标(无论是否使用 Rust)。结果显示,阻碍使用 Rust 的首要问题是采用率。学习曲线仍然是一个挑战——我们似乎最需要改进对中级用户的后续支持——库和工具也是如此。

感谢所有参与本次调查的人——这些结果对我们来说信息量巨大——特别是关于我们如何改进 Rust 语言和整个 Rust 生态系统。我们期待在 2020 年及以后继续为大家服务并与大家共同努力!