提供以下语言翻译: 中文
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 语言关键方面的改进进行评分。
总的来说,许多人认为 Rust 语言的许多方面在 2018 版本中都有了“一些改进”。
会议与社区
我们注意到英语和其他语言的调查结果存在一些差异。在非英语受访者子集中,发现的大多数问题和担忧与英语受访者相同。然而,一个问题/趋势在非英语受访者子集中尤为突出——他们希望 Rust 文档能提供其母语或他们参与调查时使用的语言版本。这在中文受访者群体中尤其明显,但这可能与他们的代表性较高有关。
我们正在通过 GitHub 的“Translation” Issue 标签追踪 正在进行的翻译工作。
我们收到了大量关于如何改进 Rust 并使其对更多人更友好的反馈。我们无法在此全部列出,因此在此总结了一些我们认为突出的反馈意见。
总的来说,人们希望获得更多关于 Rust 的学习资料。在专业水平方面,主要是针对初学者和中级水平的资料。许多这些请求还特别提到了视频内容。
人们提到的常见的参与障碍是社交焦虑和可访问性。一个常见原因是,有些资源对于有阅读障碍的人来说难以阅读。
以下是针对问题“我们可以采取什么行动让您感到更受欢迎?”的一些具体回答:
- 我觉得自己经验不足、技能不够,无法参与 Rust 社区。
- 宣传更多新人可以贡献/参与的方式。
- 更多有组织的指导,在线课程。
- 制作关于如何为编译器做贡献的视频教程。我很想贡献,但我觉得望而却步。
- 新人很难找到资源来了解 Rust 在开源项目中是如何使用的,这样他们可以在学习语言的同时看到实际应用。
- 提供更多教程/博客,解释简单的 Rust & 编程概念,就像读者是完全的初学者一样。
- 更多中级教程。我们已经有无数个“Rust 入门”教程了。
- 更小的互助小组 - 例如,社交焦虑让在 Discord 中交流变得困难。
- 不要在欧盟时间深夜召开同步会议。减少同步会议,或者更持续地发布和汇总团队会议记录。
这些问题无疑是我们希望在 2020 年及以后解决的。
谁在使用 Rust?用于什么?
Rust 的日均使用率略有上升,达到 27.63%(去年略低于 25%,2017 年为 17.5%)。每日或每周使用率也持续小幅上升。今年为 68.52%,去年为 66.4%,2017 年为 60.8%。
我们还请用户对自己的 Rust 熟练程度进行评分——评分在“7”附近有明显的峰值。
为了更深入地了解这一点,我们将用户的自我评估 Rust 熟练程度与他们使用 Rust 的时长进行了关联分析。
为了提供更广泛的背景信息,我们调查了全职使用 Rust 的用户在其组织中倾向于拥有哪些头衔(受访者可以选择多个)。
不出所料,Rust 用户中最常见的头衔是程序员/软件工程师。
为了获得更多背景信息,我们请 Rust 调查受访者指明他们所在的行业。
对于全职使用 Rust 的用户来说,迄今为止最常见的行业是后端 Web 应用。
大多数 Rust 项目 (43%) 的代码行数在 1,000-10,000 行之间。中大型 Rust 项目(代码行数总计超过 1 万行)的比例持续上升。它们从 2016 年的 8.9% 增长到 2017 年的 16%,2018 年的 23%,再到 2019 年的 34%。
为什么不使用 Rust?
构建一个友好的 Rust 社区很大程度上也包括触达非用户。
当我们问及为什么有人停止使用 Rust 时,最常见的回答是“我的公司不使用 Rust”——这表明 Rust 的采用率仍然是最大的原因。其次,学习曲线、缺乏所需的库、切换到 Rust 导致效率变慢以及缺乏 IDE 支持是用户停止使用 Rust 的最常见原因。
对于表示从未用过 Rust 的用户,大多数表示“我还没学 Rust,但想学”或“我的公司不使用 Rust”——这再次表明采用率是主要障碍。
为了更多背景信息,我们还调查了非 Rust 用户认为最符合其角色的头衔。
与 Rust 用户一样,迄今为止最常见的头衔是程序员/软件工程师。
同样与 Rust 用户一样,迄今为止最常见的行业是后端 Web 应用。
我们还问用户什么会促使他们更频繁地使用 Rust。大多数人表示,如果他们的公司采用 Rust、如果 Rust 有更多他们需要的库、以及如果 IDE 支持更好,他们会更频繁地使用 Rust。排在这些之后的最常见原因指向需要改进学习曲线和互操作性。
由于采用率似乎是阻碍一些受访者使用 Rust 的最大问题,让我们深入探究一下。
Rust 采用情况 - 深入探究
首先,我们询问我们可以做些什么来提高 Rust 的采用率。
一些用户给出了具体的例子
- “学习曲线尽可能平滑,对于一家小企业来说,即使是 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
我们还询问了用户使用的依赖项中有多少是 1.0 或更高版本。
- 0.8% 表示“全部”
- 6.7% 表示“大部分”
- 65.9% 表示“一些”
- 5.2% 表示“无”
- 21.4% 表示“不知道”
IDE 和工具 - 深入探究
Rust 的 IDE 支持也被认为是采用的障碍之一。
当我们问用户使用什么编辑器时,Vim 和 VSCode 是迄今为止最受欢迎的,其次是 Intellij。
我们还询问了用户使用的 IDE 设置
- 43.3% 表示使用 RLS
- 21.7% 表示使用 Intellij
- 15.2% 表示使用 Rust-analyzer
- 12.4% 表示无(或使用 CTAGS)
- 4.2% 表示仅使用 Racer
至于用户开发所用的平台——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 以其显著的学习曲线而闻名。
约 37% 的 Rust 用户在使用不到一个月后感到在 Rust 中高效——这与去年 (40%) 的比例相差不大。超过 70% 的人在第一年内感到高效。不幸的是,与去年一样,用户中仍然存在困难——21% 的人表示他们还没有感到高效。
值得注意的是,我们选取了尚未感到高效的用户子集,并绘制了他们对自己 Rust 熟练程度的评分。这表明那些尚未感到高效的人,其熟练程度处于较低到中等水平——这些群体最需要我们的学习资料、文档等方面的支持。
互操作性 - 深入探究
多年来,一些用户表示希望 Rust 能与其他语言有更好的互操作性。
当我们问用户希望 Rust 与哪些语言具有互操作性时,答案多种多样,但 C 语言占主导地位,紧随其后的是 R 语言(有点出人意料),然后非常接近的是 C++。需要注意的是,受访者可以对这个问题选择多种语言——这些百分比是基于总回答数计算的。
至于用户应用程序的目标平台,Linux 仍然是首选,占 36.9%,Windows 位居第二,占 16.3%。紧随 Windows 之后的是 macOS 和 Web Assembly,各占 14%。我们还看到更多用户以 Android 和 Apple iOS 为目标。
结论
总的来说,用户表示生产力仍然是他们工作的重要目标(无论是否使用 Rust)。结果显示,阻碍使用 Rust 的首要问题是采用率。学习曲线仍然是一个挑战——我们似乎最需要改进对中级用户的后续支持——库和工具也是如此。
感谢所有参与本次调查的人——这些结果对我们来说信息量巨大——特别是关于我们如何改进 Rust 语言和整个 Rust 生态系统。我们期待在 2020 年及以后继续为大家服务并与大家共同努力!