本文来自 alabulei1 的翻译投稿:http://www.secondstate.info/blog/rust-2019?from=singlemessage
最近 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 语言的许多方面在2018年的版本中被认为“更好”。
会议与社区
我们注意到英语和其他语言的结果之间存在一些差异。非英语的调查组与英语调查组在大多数问题和关注点是相同的。但是,在非英语国家中,有一个趋势很突出:希望使用其母语或接受调查的语言编写
Rust 文档。在中文组中,这一点尤其明显,尽管这很可能存在代表性较高的原因。
我们正在使用“ Translation” GitHub 问题标签跟踪正在进行的翻译工作。
我们收到了很多关于如何改善 Rust 以及使 Rust 更受欢迎的反馈。我们无法在此处将所有内容包括在内,下面是一些引人注意的反馈摘要。
人们通常要求获得更多有关 Rust 的学习材料。就专业知识而言,主要是要求初学者和中级水平的材料。这些请求中的大部分明确要求了视频内容。
人们提到参与其中的常见障碍是他们有社交焦虑和可及性。提到的常见原因之一是阅读障碍者难以阅读某些资源。
以下是对“我们可以采取什么措施使您感到更受欢迎?”这一问题的一些具体答复。
我觉得自己经验不足,缺乏技巧,无法加入Rust社区
宣传更多的新人贡献/参与方式
更有组织的指导,在线课程
提供有关如何为编译器做出贡献的****。我很乐意贡献自己,但是我感到被吓到了
为新手找到资源,让他们了解 Rust 在开源项目中的使用情况并不容易,以便他们在学习语言时能看到动作。
为纯初学者提供更多的讲解简单 Rust 以及编码概念的教程/博客
更多的中级教程,我们已经有一百万本“ Rust简介”。
较小的帮助人群,例如,社交焦虑让人很难在 Discord 中交流
在后欧盟时期,不要举行同步会议。更少的同步会议或/和更一致地发布和汇总团队会议的会议记录。
谁在使用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行代码。中型到大型(总代码行超过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 用户一样,到目前为止,最常见的行业是后端 Web 应用程序。
我们还询问了用户什么会导致他们更频繁地使用 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 和工具,近距离观察
IDE 对 Rust 的支持也被认为是采用的障碍。
当我们询问用户使用什么编辑器时,目前为止最受欢迎的是 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% 使用自定义的 fork
0.3% 不知道
令人惊讶的是,在工作流程中使用 Nightly 编译器的用户数量下降了20%。去年,这一比例超过了56%。
学习曲线,近距离观察
Rust 以陡峭的学习曲线而闻名
大约37%的 Rust 用户在不到一个月之内就能有效率地使用它,这与去年的百分比(40%)相差无几。超过70%的人在第一年内能达到有效率地使用。不幸的是,与去年一样,很多用户仍在挣扎,21%的用户表示尚未熟练掌握 Rust。
有趣的是,我们选择了对自己 Rust 水平尚未满意的用户子集,并询问了他们对自己 Rust 专业水平的评价。结果是对自己水平未满意用户的 Rust 专业水平在低至中级,而这些群体需要我们在学习材料,文档方面提供最大的支持。
互操作性,近距离观察
多年来,一些用户表达了对 Rust 与其他语言的互操作性的渴望。
当我们询问用户他们希望与 Rust 进行互操作的语言时,答案范围很广,但是 C 占主导地位,R 紧随其后(有点令人惊讶)。要注意的是,受访者可以针对此问题选择一种以上的语言。这些百分比基于总回答。
至于使用何种平台实现其为应用程序定位的目标,Linux
仍然是第一选择:36.9%,Windows 则是第二选择:16.3%。紧随Windows 之后的是 macOS 和
WebAssembly,它们各占14%。我们还看到越来越多的用户将 Android 和 Apple iOS 作为目标。
结论
总体而言,我们的用户表示,生产效率仍然是他们工作的重要目标(无论是否使用Rust)。结果表明,阻碍使用 Rust 的首要问题是采用。学习曲线仍然是一个挑战,我们似乎最需要提高对中级用户的关注度,库和工具也是如此。
感谢所有参与此调查的人。这些结果对我们很有帮助,特别是我们如何改善 Rust 语言和整个 Rust 生态系统。我们期待在2020年及以后继续为您服务!