Rust 2017 年调查结果

2017 年 9 月 5 日 · Jonathan Turner

又到了我们通过向广大社区(包括 Rust 用户和非用户)征求意见,来全面了解现状的时候了。哇,你们的回应真是太棒了!

今年我们收到了 **5,368 份回复**。这比去年的回复数量多了 2,000 多份

反馈的规模既令人鼓舞,又令人谦卑,我们已经努力阅读了所有评论和建议。人们分享了许多有用的想法和经验,我们真的非常感谢。话不多说,让我们来看看吧。

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

正如我们去年看到的那样,三分之二的回复来自 Rust 用户,其余来自非用户。今年,我们将“不使用 Rust”的选项分开,以区分那些曾经使用过 Rust 但已停止使用的人和从未使用过 Rust 的人。看到如此多的开发者愿意帮助我们改进 Rust(即使他们不使用它!),以便它能够触及更多人,这真是令人鼓舞。

我们将在本报告的后面部分详细讨论 Rust 非用户,但首先让我们看看 Rust 用户的回复。

使用 Rust

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

今年,我们看到越来越多的经验丰富的用户坚持使用 Rust,其中“超过一年”的用户群增长到超过 42%(比去年增长了 30%)。初学者也相当庞大,其中“少于一个月”的用户群约为 18%,这意味着我们目前每月吸引了近五分之一的用户群规模,即使用户群规模不断扩大。

图表: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 等库迁移到稳定版方面付出了努力,但我们仍然需要做更多工作来鼓励人们从 nightly Rust 编译器迁移。今年的数据显示,nightly 用户数量有所增加,现在有 1,852 票,占受访者的 51.6%,比去年的 48.8% 有所上升。

我们如何使用 Rust

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

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

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

Linux 仍然是 Rust 开发者选择的主要平台之一。值得注意的是,我们还看到 Windows 作为开发者平台的使用率有所上升,在 3,588 名受访者中,有 1,130 名受访者使用 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 社区的一个重要组成部分是,对新用户(无论是当前用户还是未来的潜在用户)都表示欢迎。我们很高兴看到超过四分之三的受访者表示他们在 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 的人分开,以便更好地了解他们停止使用 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% 的回复谈到了创建 **更好的文档** 的重要性。这些内容涵盖了从帮助用户从其他语言过渡到 Rust,创建更多示例和示例项目,帮助人们开始使用各种任务或板条箱,以及创建视频资源来促进学习等主题。
  • 15% 的回复指出 **库支持** 需要改进。人们提到了需要一套强大的核心库支持,难以找到高质量的板条箱,板条箱和板条箱生态系统的整体成熟度,需要库涵盖广泛的领域(例如 Web、GUI、网络、数据库等)。此外,人们还提到,根据库的 API 设计和文档数量,库可能很难上手。
  • 9% 的回复鼓励我们继续构建 **IDE 支持**。今年再次强调,有相当一部分开发人员需要在他们的 IDE 和工具中支持 Rust。Rust 语言服务器是广泛支持 IDE 的一项持续努力,它被认为是人们今年最期待的项目之一,评论指出,这些努力需要达到稳定状态,并将其支持扩展到其他 IDE,以及继续增加可用功能的数量。
  • 8% 的回复提到了 **学习曲线**。随着越来越多的开发人员尝试学习 Rust 或将其教授给同事和朋友,他们发现没有足够的资源来有效地做到这一点,并且 Rust 本身阻碍了流畅的学习体验。
  • 其他重要的主题包括:**更快的编译时间**、**更多公司对 Rust 的支持**(包括工作机会)、**更好的语言互操作性**、**改进的工具**、**更好的错误消息**、**更多营销**、**更少营销**以及 **改进对 WebAssembly 的支持**。

结论

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