又一年意味着又一次 Rust 调查,今年是 Rust 的第三次年度调查。今年,该调查首次以多种语言推出。除了英语外,总共涵盖了 14 种语言。非英语语言的回复总计占所有回复的 25%,并将回复数量推至创纪录的 5991 份。在开始分析之前,我们只想对所有抽出时间回复并分享想法的人表示衷心的“感谢!”。正因为有你们的帮助,Rust 才能一年又一年地不断进步。
尽管回复数量有所增加,但今年 Rust 用户比例也有所增加。从去年的 66.9% 的 Rust 用户上升到今年将近四分之三的回复来自 Rust 用户。
Rust 用户
使用 Rust 的时长
我们看到不断有新用户加入 Rust。在调查时,约 23% 的 Rust 用户使用 Rust 的时间为 3 个月或更短。同样,近四分之一的用户使用 Rust 的时间至少为 2 年。
超过 40% 的 Rust 用户在使用 Rust 不到一个月的时间内就感觉效率很高,而超过 70% 的用户在第一年就感觉效率很高。不幸的是,用户之间存在明显的挣扎,超过 22% 的用户仍然没有感到效率高。
仔细研究这些在 Rust 中感到效率低下的用户,只有大约 25% 的人处于使用 Rust 的第一个月。这里的挑战是找到帮助用户提高效率的方法,这样他们就不会陷入困境。
您使用 Rust 的频率如何?
Rust 项目继续趋向于更大的规模,总体投资也更大。对 Rust 的中大型投资(分别超过 1 万和 10 万行代码)从 2016 年的 8.9% 增长到 2017 年的 16%,再到今年的 23%。
我们还看到 Rust 的常规使用量有所增长。从去年的 17.5% 上升到今年的近四分之一的用户每天使用 Rust。总体而言,Rust 每周总使用量从 60.8% 上升到 66.4%。
Rust 专业知识
Rust 专业知识不是一条简单的曲线,而是有两个峰值:一个在“3”附近,另一个在“7”附近,这表明用户倾向于认为自己只是略高于初学者或有经验,但不一定是专家。
Rust 用户普遍认为枚举和 Cargo 是相对简单的概念;其次是迭代器、模块和特征。接下来是更具挑战性的特征边界和不安全。最后,最具挑战性的概念是宏、所有权和借用以及生命周期。这些挑战与我们过去几年听到的反馈非常一致,并且仍然是持续提高生产力(例如 NLL 和持续的宏系统改进)的重点。
有趣的是,我们发现 Rust 实际上并不是用户最熟悉的编程语言。相反,它仅次于 Python,位居第二。
Rust 工具链
我们看到自去年以来,当前稳定版本的用户数量相似。也许令人惊讶的是,我们继续看到在工作流程中使用 Nightly 编译器的用户数量有所增加。Nightly 的使用率连续第二年持续上升,目前已超过 56%(高于去年的 51.6%)。
当被问及为什么使用 nightly 时,人们给出了各种各样的理由,包括:访问 2018 版本、asm、async/await、clippy、嵌入式开发、rocket、NLL、proc 宏和 wasm。
在常规编译器更新期间看到中断的用户比例与去年持平,其中 7.4% 的人表示他们经历过中断。
中断通常倾向于需要较小的修复,尽管有些人报告说需要进行中度或重大的修复才能升级到下一个稳定的编译器。
我们再次看到了 rustup
的强劲表现,它继续保持着 90% 的 Rust 安装率。Linux 发行版以 17% 的比例位居第二。
诸如 rustfmt
和 rustdoc
之类的工具表现出色,获得了许多积极的支持。紧随其后的是 clippy
工具 - 尽管用户较少,但它的用户很喜欢该工具。IDE 支持工具 Rust Language Server
和 racer
获得了积极的支持,但不幸的是,在调查的工具中,产生的反感票和评论更多。bindgen
工具的用户群相对较小。
Rust 工作流程
Linux 继续在 Rust 开发人员中占据主导地位,约占 80% 的 Rust 开发人员。Windows 的使用率从去年的 31% 略微增长到今年的 34%,这是连续第二年增长。
Linux 和 Windows 继续作为 Rust 应用程序的目标表现强劲。其他平台与去年基本保持不变,但有一个例外:WebAssembly。这项新技术取得了令人印象深刻的增长,从去年的 13% 几乎翻了一番,达到今年的 24%。
Vim 作为编辑器领域的领头羊已经两年了,但现在终于被 VSCode 击败,VSCode 从 33.8% 的 Rust 开发人员增长到今年的 44.4%。
工作中的 Rust
Rust 在工作场所继续缓慢而稳定地增长。我们现在看到全职和兼职 Rust 的同比增长,从去年的 4.4% 全职和 16.6% 兼职增长到今年的 8.9% 全职 和 21.2% 兼职,全职 Rust 商业用途翻了一番。总体而言,Rust 的商业用途从 21% 增长到略高于 30% 的 Rust 用户。
Rust 在更多公司中仍有增长空间,超过三分之一的用户报告说他们目前不打算在未来一年内评估 Rust。结合调查数据,该数据显示近一半的非用户需要公司支持,这表明需要进一步的公司宣传或更多以公司为中心的有关 Rust 的信息。
感觉受欢迎
Rust 社区工作的一个重要部分是确保 Rust 项目对用户来说是一个受欢迎的地方。新用户应该受到鼓励去探索、分享想法,并做他们自己。
当被问及时,当前的 Rust 用户和非用户都普遍感到受欢迎,尽管超过四分之一的回复不确定。这些回复中也存在一些地区差异。例如,在俄语版本的调查中,感到不受欢迎的比例翻了一番,达到 4%。中国大陆的比例甚至更高,为 8%。
这里存在一个挑战,即帮助全球的 Rust 社区感受到他们是 Rust 独特之处的一部分,因为 Rust 继续在世界更多地区发展壮大。
在 Rust 中,自我认定为技术领域弱势群体一部分的人数正在逐年缓慢增长。该调查还强调了一些挑战,因为女性人数仍然低于编程领域的行业女性平均水平。
Rust 非用户
欢迎 Rust 社区的一个重要组成部分是向非用户伸出援手。正如我们过去几年所做的那样,我们再次询问人们不使用 Rust 的原因。
对于那些停止使用 Rust 的人来说,略多于 50% 的人在不到一个月的时间内停止使用 Rust。同样,大约 50% 的离开 Rust 的人设法在使用超过一个月后才停止。
许多非用户回答说他们确实想学习 Rust,但有一些因素减慢了他们的速度。其中首要的是,回复者工作的公司本身不使用 Rust。近一半的非用户因缺乏公司支持而受阻。
此外,四分之一的非用户因感到 Rust 太过令人生畏或复杂而放慢了速度。改进 Rust IDE 支持的工作有所帮助(从 25% 下降到 16%),尽管我们仍然看到非用户强烈要求甚至更好的 IDE 支持。
挑战
正如我们过去几年所做的那样,我们征求了您关于 Rust 可以改进方面的意见。今年,我们在这个反馈中看到了一些熟悉的主题,以及一些新的主题。今年的十大主题是
- 需要更好的库支持
- 更完善的 IDE 体验
- 需要更广泛地采用 Rust
- 更丰富的工具和支持生态系统
- 改进的学习曲线
- 需要重要语言功能和 crate 保持稳定并获得支持
- 支持异步编程
- 支持 GUI 开发
- 更好的文档
- 缩短编译时间
今年新增的是对 支持 GUI 开发 的需求日益增长,这表明 Rust 不仅在服务器上继续增长,而且人们感到需要扩展到应用程序开发。
“改进 Rust 营销。许多人对它一无所知”
评论提醒我们,虽然 Rust 在某些圈子里可能很出名,但它仍然有增长的空间,并且在许多技术圈子里,Rust 可能还鲜为人知。
“关注采用/教程/书籍/新手体验将在未来几年带来回报。”
除了宣传之外,更广泛的文档反过来也有助于接触到更广泛的受众。
“开发人员工具的稳定性和成熟度,使其更容易获得可用的设置并调试应用程序”
许多人评论了 IDE 支持,指出不仅 RLS 不稳定或不准确,而且还需要更强大的 IDE 故事来涵盖更多领域,例如更容易进行调试。
“生态系统和库的成熟度。拥有一个良好的“标准”库生态系统对于该语言的未来至关重要”
一个常见的主题仍然是将库推向完成,并增加用户可以使用的“标准”库集。一些评论指出,这不是维护人员的错,他们已经在努力编写和发布 crate,但总的来说,需要更多公司参与进来并提供商业支持。
“人体工程学和‘将其组合在一起’文档的可发现性”
有些人指出,人体工程学与更丰富的文档密不可分,他们认为这些不是单独的概念,而是应该以统一的方法共同解决的挑战。
展望未来
今年是迄今为止最强劲的调查。它不仅是最大的社区调查,而且是第一次涵盖英语以外的语言。Rust 继续稳步增长,随之而来的是,它的优势和挑战都被引入到更广泛的受众中。
我们期待在 2019 年的规划中使用您的反馈,我们很高兴看到接下来我们能将 Rust 带向何方。