最近 Rust 社区发表了针对 Rust 开发者的调查问卷结果,我们翻译了这份报告,方便中国开发者能够更好地了解 Rust 开发者的2019年。原文:https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html

我们很高兴介绍我们对 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 开发者的 2019 年_java
Rust 开发者的 2019 年_java_02Rust 开发者的 2019 年_java_03Rust 开发者的 2019 年_java_04Rust 开发者的 2019 年_java_05Rust 开发者的 2019 年_java_06Rust 开发者的 2019 年_java_07Rust 开发者的 2019 年_java_08Rust 开发者的 2019 年_java_09Rust 开发者的 2019 年_java_10总体而言,Rust 语言的许多方面在2018年的版本中被认为“更好”。会议与社区我们注意到英语和其他语言的结果之间存在一些差异。非英语的调查组与英语调查组在大多数问题和关注点是相同的。但是,在非英语国家中,有一个趋势很突出:希望使用其母语或接受调查的语言编写 Rust 文档。在中文组中,这一点尤其明显,尽管这很可能存在代表性较高的原因。我们正在使用“ Translation” GitHub 问题标签跟踪正在进行的翻译工作。我们收到了很多关于如何改善 Rust 以及使 Rust 更受欢迎的反馈。我们无法在此处将所有内容包括在内,下面是一些引人注意的反馈摘要。人们通常要求获得更多有关 Rust 的学习材料。就专业知识而言,主要是要求初学者和中级水平的材料。这些请求中的大部分明确要求了视频内容。人们提到参与其中的常见障碍是他们有社交焦虑和可及性。提到的常见原因之一是阅读障碍者难以阅读某些资源。以下是对“我们可以采取什么措施使您感到更受欢迎?”这一问题的一些具体答复。
 

  • 我觉得自己经验不足,缺乏技巧,无法加入Rust社区
  • 宣传更多的新人贡献/参与方式
  • 更有组织的指导,在线课程
  • 提供有关如何为编译器做出贡献的视频教程。我很乐意贡献自己,但是我感到被吓到了
  • 为新手找到资源,让他们了解 Rust 在开源项目中的使用情况并不容易,以便他们在学习语言时能看到动作。
  • 为纯初学者提供更多的讲解简单 Rust 以及编码概念的教程/博客
  • 更多的中级教程,我们已经有一百万本“ Rust简介”。
  • 较小的帮助人群,例如,社交焦虑让人很难在 Discord 中交流
  • 在后欧盟时期,不要举行同步会议。更少的同步会议或/和更一致地发布和汇总团队会议的会议记录。

谁在使用Rust,其用途是什么?Rust 开发者的 2019 年_java_11Rust 的日常使用量略有上升,达到27.63%(去年略低于25%,2017年为17.5%)。每日或每周使用量也继续略有上升的趋势。今年为68.52%,去年为66.4%,2017年为60.8%。Rust 开发者的 2019 年_java_12我们还询问了用户如何评价 Rust 水平。在“7”附近有一个明显的峰值。为了更深入地了解这一点,我们将用户 Rust 的自我评价与他们使用 Rust 的时间联系起来。在更大的范围内,我们研究了全职使用 Rust 的用户在其组织中倾向于拥有哪些职位(调查受访者可以选择多个)。毫无疑问,到目前为止,Rust 用户最常见的职位是程序员/软件工程师。为了获得更多的背景信息,我们要求 Rust 调查的受访者确定他们从事的行业。

对于全职使用 Rust 的用户,到目前为止,最常见的行业是后端 Web 应用程序。
大多数 Rust 项目(43%)是1,000-10,000行代码。中型到大型(总代码行超过1万行)的 Rust 项目继续呈上升趋势。他们从2016年的8.9%增长到2017年的16%,然后到2018年的23%,再到2019年的34%。为什么不使用Rust?受欢迎的 Rust 社区有一部分也正在与非用户接触。当我们询问为什么有人停止使用 Rust 时,最常见的回答是“我的公司不使用Rust”。这表明 Rust 采用仍然是最大的原因。之后,学习曲线、缺少所需的库,因切换到 Rust 而减慢了速度以及缺少 IDE 支持是用户停止使用 Rust 的最常见原因。对于表示以前从未使用过 Rust 的用户,大多数人表示“我还没有学会 Rust,但是我想”或“我的公司没有使用 Rust” 。这再次指出采用是主要障碍。为了获得更多的背景信息,我们还研究了非 Rust 用户认为最与他们角色匹配的职位。与 Rust 用户一样,到目前为止,最常见的头衔是程序员/软件工程师。Rust 开发者的 2019 年_java_13与 Rust 用户一样,到目前为止,最常见的行业是后端 Web 应用程序。Rust 开发者的 2019 年_java_14我们还询问了用户什么会导致他们更频繁地使用 Rust。大多数人表示,如果公司采用它,Rust有更多需要的库,并且 IDE 支持更好,他们将更多使用 Rust。这些最常见原因指出需要改善学习曲线和互操作性。由于采用似乎是阻止某些受访者使用Rust的最大问题,因此让我们更深入地研究它。Rust 采用,近距离观察首先,我们询问如何才能提高 Rust 的采用率。Rust 开发者的 2019 年_java_15一些用户给出了具体示例:

  • “尽可能平滑的学习曲线,对于一个甚至要在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

Rust 开发者的 2019 年_java_16我们还询问了用户使用了多少1.0版或更高版本的依赖项。

  • 0.8% 的人表示“全部”
  • 6.7% 的人表示“最多”
  • 65.9% 的人表示“有”
  • 5.2% 的人表示“无”
  • 21.4% 的人表示“我不知道”

IDE 和工具,近距离观察IDE 对 Rust 的支持也被认为是采用的障碍。当我们询问用户使用什么编辑器时,目前为止最受欢迎的是 Vim 和 VSCode ,其次是 Intellij。我们还询问了用户使用了哪些 IDE 设置:

  • 43.3% 表示是 RLS
  • 21.7% 表示是 Intellij
  • 15.2% 表示是 Rust-analyzer
  • 12.4% 表示否(或CTAGS)
  • 4.2% 表示只有 Racer

Rust 开发者的 2019 年_java_17至于用户开发的平台,Linux 和 Windows 继续占主导地位。

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

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

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

令人惊讶的是,在工作流程中使用 Nightly 编译器的用户数量下降了20%。去年,这一比例超过了56%。学习曲线,近距离观察Rust 以陡峭的学习曲线而闻名Rust 开发者的 2019 年_java_18大约37%的 Rust 用户在不到一个月之内就能有效率地使用它,这与去年的百分比(40%)相差无几。超过70%的人在第一年内能达到有效率地使用。不幸的是,与去年一样,很多用户仍在挣扎,21%的用户表示尚未熟练掌握 Rust。Rust 开发者的 2019 年_java_19有趣的是,我们选择了对自己 Rust 水平尚未满意的用户子集,并询问了他们对自己 Rust 专业水平的评价。结果是对自己水平未满意用户的 Rust 专业水平在低至中级,而这些群体需要我们在学习材料,文档方面提供最大的支持。互操作性,近距离观察多年来,一些用户表达了对 Rust 与其他语言的互操作性的渴望。Rust 开发者的 2019 年_java_20当我们询问用户他们希望与 Rust 进行互操作的语言时,答案范围很广,但是 C 占主导地位,R 紧随其后(有点令人惊讶)。要注意的是,受访者可以针对此问题选择一种以上的语言。这些百分比基于总回答。Rust 开发者的 2019 年_java_21
至于使用何种平台实现其为应用程序定位的目标,Linux 仍然是第一选择:36.9%,Windows 则是第二选择:16.3%。紧随Windows 之后的是 macOS 和 WebAssembly,它们各占14%。我们还看到越来越多的用户将 Android 和 Apple iOS 作为目标。结论总体而言,我们的用户表示,生产效率仍然是他们工作的重要目标(无论是否使用Rust)。结果表明,阻碍使用 Rust 的首要问题是采用。学习曲线仍然是一个挑战,我们似乎最需要提高对中级用户的关注度,库和工具也是如此。

感谢所有参与此调查的人。这些结果对我们很有帮助,特别是我们如何改善 Rust 语言和整个 Rust 生态系统。我们期待在2020年及以后继续为您服务!