提供 中文 | Chinese 翻译
各位 Rustaceans,大家好!
我们很高兴地发布第四次年度 Rust 社区调查的结果。在深入分析之前,我们要衷心感谢所有抽出时间回复的人!你们对于 Rust 年复一年的持续改进至关重要!
让我们先看看调查对象。
调查对象
该调查以 14 种不同的语言提供,我们收到了 3997 份回复。
以下是我们收到的回复的语言分布。
- 英语:69.6%
- 中文:10.8%
- 德语:4.3%
- 法语:3.3%
- 日语:3.0%
- 波兰语:1.2%
- 葡萄牙语:1.2%
- 西班牙语:0.9%
- 韩语:0.8%
- 意大利语:0.6%
- 瑞典语:0.5%
- 越南语:0.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”跟踪 正在进行的翻译工作。
我们收到了很多关于如何改进 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 框架”
- “更好的文档、更多示例、关于使用哪些 crate 的建议”
- “更强调它如何是 C 或 C++ 的更安全替代方案(而且通常真的应该是默认选项)。”
- “改进编译时间。编译开发构建至少要像 Go 一样快,这将是我们考虑 Rust 的基本条件。(发布构建可以慢一些。)”
- “更好的平台支持”
- “安全性和性能,成本效益和“绿色”(低碳足迹)语言”
- “针对 ARM 的嵌入式开发”
- “更好的 GUI 框架,类似于 Qt 或直接通过绑定使用 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 年及以后继续为您服务!