Rust 2017 年调查结果

2017 年 9 月 5 日 · Jonathan Turner

又到了每年的这个时候,我们会通过询问广大社区(包括 Rust 用户和非用户)来好好审视一下情况。哇,你们的反馈真是太踊跃了!

今年我们收到了 5368 份回复这比我们去年的回复多出 2000 多份

反馈的规模既令人鼓舞又使人感到谦卑,我们努力阅读了大家的所有评论和建议。人们分享了很多有用的想法和经验,我们真的很感激。事不宜迟,让我们来看看结果吧。

Chart: 66.9% Rust users, 9.9% stopped using, 23.2% never used

正如我们去年看到的那样,2/3 的回复来自 Rust 用户,其余的来自非用户。今年,我们将“不使用 Rust”的人分离开来,以区分那些使用过 Rust 但后来停止使用的人和那些从未用过 Rust 的人。看到这么多开发者想要帮助我们改进 Rust(即使他们不使用它!),以便它可以接触到更多的人,这真是令人鼓舞。

我们将在本报告的后面讨论更多关于 Rust 非用户的信息,但首先让我们来看看 Rust 用户的回复。

使用 Rust

图表:0.5% 少于一天,4.2% 少于一周,13.1% 少于一个月,39.7% 少于一年,42.5% 超过一年 (悬停以获取更多信息)

今年,我们看到越来越多的有经验的用户坚持使用 Rust,“超过一年”的用户增长到 42% 以上(高于去年的 30%)。初学者也占据了令人印象深刻的比例,“少于一个月”的用户群约为 18%,这意味着我们目前每个月都吸引着接近我们用户群规模的 1/5 的新用户,即使它的规模不断增长。

图表:36.5% 少于 1000 行,46.3% 1000 到 10000 行,14.2% 10000 到 100000 行,2.1% 超过 100000,0.9% 不知道 (悬停以获取更多信息)

人们正在使用越来越多的 Rust 代码,中型和大型规模的代码总量占总数的比例都比去年几乎翻了一番,现在占受访者的 16%(高于去年的 8.9%)。这表明人们越来越有兴趣在更大的项目中使用 Rust,并且越来越需要工具来支持这种增长。

Chart: 17.5% daily, 43.3% weekly, 24.4% monthly, 14.9% rarely

尽管开发人员正在使用的代码量不断增加,但我们看到每日和每周的用户都在小幅下降。每日用户从 19% 下降到 17.5%,每周用户从 48.8% 下降到 43.3%。这可能是我们增长阶段的自然过渡,因为更广泛的开发人员开始使用 Rust。

通往稳定的道路

Chart: 92.5% no, 7.5% yes

在过去的一年中,我们在编译器发布造成的破坏方面取得了巨大进展。去年,16.2% 的受访者表示,升级到新的稳定 Rust 编译器破坏了他们的代码。今年,这个数字下降到了 7.5% 的受访者。这是一个巨大的改进,我们为此感到自豪,尽管我们将继续努力进一步降低这个数字。

Chart show strong support for nightly and current stable releases

开发人员大多选择迁移到 nightly 或最近的稳定版(有些使用 beta 版),这表明开发人员渴望升级并快速升级。这简化了去年的支持结构,当时开发人员使用的版本范围更广。

稳定版用户现在占 Rust 用户的 77.9%。不幸的是,尽管我们努力使用过程宏并帮助像 Serde 这样的 crate 迁移到稳定版,我们仍然需要做更多的工作来促使人们远离 nightly Rust 编译器。今年,nightly 用户有所增加,现在有 1852 票,占使用 nightly 的受访者的 51.6%,高于去年的 48.8%。

我们如何使用 Rust

图表:90.2% rustup,18.9% Linux 发行版,5% homebrew,4.7% 官方 .msi,3.1% 官方 tarball,1.4% 官方 mac pkg (悬停以获取更多信息)

Rust 工具的一个重大成功案例是 Rust 工具链安装程序 rustup。去年,我们看到人们安装 Rust 的方式多种多样。今年,其中许多人已转向使用 rustup 作为安装 Rust 的主要方式,总共有 3205 份回复,使其从去年的 52.8% 上升到 90.2%

Chart: 80.9% Linux, 35.5% macOS, 31.5% Windows, 3.2% BSD-variant

Linux 仍然是 Rust 开发人员选择的主要平台之一。值得注意的是,我们还看到 Windows 作为开发平台的使用率有所上升,在 3588 名受访者中,有 1130 人使用 Windows,占受访者的 31.5%,高于去年的 27.6%。

Chart: 91.5% Linux, 46.7% Windows, 38.2% macOS, 16.8% embedded, 13.2% WebAssembly and asm.js, 9.9% Android, 8.9% BSD-variant, 5.3% Apple iOS

接下来,我们询问了人们的 Rust 项目的目标平台。虽然我们在这里看到了桌面操作系统的类似表现,但我们也看到了越来越多的其他目标。Android 和 iOS 分别为健康的 9.9% 和 5.3%,都比去年的百分比大 10 倍。自去年以来,嵌入式也取得了显著增长。总的来说,自去年这个时候以来,交叉编译有了很大的增长。

Chart: 45.8% vim, 33.8% vscode, 16.1% intellij, 15.7% atom, 15.4% emacs, 12.2% sublime, 1.5% eclipse, 1.5% visual studio

在编辑器中,vim 仍然是王者,尽管我们看到 VSCode 的采用率健康增长,达到 34.1%(高于去年的 3.8%)。毫无疑问,VSCode 是首批获得 Rust 语言服务器支持的平台之一,这对此有所帮助。

图表:4.4% 全职,16.6% 兼职,2.9% 否但公司使用 Rust,57.6% 否,2.4% 不确定,16.1% 不适用 (悬停以获取更多信息)

Rust 在工作场所的使用也持续增长。今年的 4.4% 的全职16.6% 的兼职 Rust 工作者比去年的 3.7% 的全职和 16.1% 的兼职有所增加。

Two charts part-time: 2016: 29.6% less than 1000 lines, 55.3% 1000 to 10000 lines, 14.5% 10000 to 100000 lines, 0.6% 100000 lines. 2017: 18.9% less than 1000 lines, 56% 1000 to 10000 lines, 23.1% 10000 to 100000 lines, 2% more than 100000 lines

在公司使用 Rust 兼职的用户,自去年以来,他们的较大规模项目有所增长,中型和大型项目在本期占总项目的比例更高。

Two charts full-time: 2016: 4.4% less than 1000 lines, 42.6% 1000 to 10000 lines, 39.7% 10000 to 100000 lines, 13.2% more than 100000 lines. 2017: 1.9% less than 1000 lines, 27.9% 1000 to 10000 lines, 52.6% 10000 to 100000 lines, 17.5% more than 100000 lines

同样,全职 Rust 商业用户的中型和大型项目也越来越多,其中代码超过 100,000 行的项目几乎占所有全职商业受访者的 18%,而 10,000-100,000 行的范围从 39.7% 大幅上升到 52.6%

感到受欢迎

图表:75.1% 感到受欢迎,1.3% 不感到受欢迎,23.6% 不确定 (悬停以获取更多信息)

Rust 社区的一个重要组成部分是欢迎新用户,无论他们是当前用户还是未来的潜在用户。我们很高兴看到超过 3/4 的受访者表示他们在 Rust 社区中感到受欢迎,而 23.6% 的人不确定。

chart showing 81.4% not underrepresented, and a variety of underrepresented, with no category above 5%

受访者的人口统计数据与去年基本相同。多样性和包容性仍然是 Rust 项目在各个层面的重要目标。Rust Bridge 倡议旨在提高入门级的多样性。Rust Reach 项目于今年启动,它汇集了来自 Rust 世界中代表性不足的人们的广泛专业知识,并将他们与 Rust 团队成员配对,以使 Rust 更容易被更广泛的受众接受。

停止使用 Rust

今年新增的一项是,我们将停止使用 Rust 的人与从未用过 Rust 的人分开,以便更好地了解他们停止使用的原因。让我们先来看看他们何时停止使用。

图表:3.2% 少于一天,18.5% 少于一周,43.1% 少于一个月,30.2% 少于一年,4.9% 超过一年 (悬停以获取更多信息)

我们在这里的第一个惊喜是人们在停止使用 Rust 之前尝试了多久。我们最初的直觉是,如果 Rust 不适合他们或他们的项目,人们会在第一天,甚至可能在第一周就放弃使用 Rust。相反,我们看到的是,人们尝试使用 Rust 的平均时间要长得多。

停止使用 Rust 的人的主题

  • 23% 的人回答说 Rust 太难用了
  • 20% 的人回答说他们没有足够的时间来有效地学习和使用 Rust。
  • 10% 的人回答说工具不够成熟
  • 5% 的人回答说他们需要更好的 IDE 支持
  • 其余用户提到需要在他们的工作中支持 Rust,他们完成了他们需要使用 Rust 的项目,被 Rust 的语法拒之门外,想不出要构建的项目,或者与 Rust 社区的互动不佳

不使用 Rust

chart: 666 company doesn't use Rust, 425 Rust is too intimidating hard to learn or too complicated, 295 Rust doesn't solve a problem for me, 255 Rust doesn't have good IDE support, 209 Rust doesn't have libraries I need, 161 Rust seems too risky for production, 89 Rust doesn't support platforms I need, 73 Rust doesn't have tools I need

虽然学习曲线和语言复杂性仍然在阻止人们选择 Rust 方面发挥作用,但许多人共鸣的一个方面是,Rust 中活跃的商业项目实在太少,无法让人们参与其中。对于某些人来说,如果有强大的动机,他们可以克服学习曲线。

需要改进的领域

最后,在调查的结尾,我们提供了一个自由形式的区域来谈论 Rust 可以改进的地方。在我们谈到我们看到的主题之前,我们想向所有发表深思熟虑的评论的人表示衷心的“感谢!”。有很多很好的想法,我们将提供给各自的子团队进行未来规划。接下来,让我们看看今年重要的主题

  • 17% 的回复强调需要在语言中实现更好的工效学。人们对如何改进 Rust 的日常使用提出了许多建议,以允许更容易的原型设计、更轻松地处理异步编程以及更灵活地处理更多数据结构类型。与以前一样,人们普遍要求在使用借用检查器以及如何处理生命周期方面获得更轻松、更顺畅的体验。
  • 16% 的回复谈到了创建更好的文档的重要性。这些涵盖了从帮助用户从其他语言过渡、创建更多示例和示例项目、帮助人们开始各种任务或 crate 以及创建视频资源以促进学习等主题。
  • 15% 的回复指出库支持需要改进。人们提到需要一套强大的核心库支持、难以找到高质量的 crate、crate 和 crate 生态系统的整体成熟度、需要库来涵盖广泛的领域(例如 Web、GUI、网络、数据库等)。此外,人们提到,库可能难以入门,这取决于它们的 API 设计和文档数量。
  • 9% 的反馈鼓励我们继续构建我们的 IDE 支持。今年再次强调,有相当一部分开发者需要在他们的 IDE 和工具中使用 Rust 支持。Rust 语言服务器(为广泛支持 IDE 而进行的持续努力)被提及为人们今年最期待的项目之一,评论指出这些努力需要达到稳定,并扩展对其他 IDE 的支持,以及继续增加可用的功能。
  • 8% 的反馈明确提到了 学习曲线。随着越来越多的开发者尝试学习 Rust 或将其教给同事和朋友,他们发现没有足够的资源来有效地完成这项工作,而且 Rust 本身也难以提供流畅的学习体验。
  • 其他强烈的主题包括对以下方面的需求:更快的编译时间更多企业对 Rust 的支持(包括工作机会)、更好的语言互操作性改进的工具更好的错误消息更多 的营销更少 的营销,以及 改进对 WebAssembly 的支持

结论

我们对今年的反馈感到震惊。这不仅比去年的反馈数量多得多,而且我们还看到人们使用 Rust 的用途越来越多样化。非常感谢您们的深思熟虑的回复。我们期待利用您们的反馈、建议和经验来帮助我们规划明年。