Rust 官方博客发布了 2018 年的 Rust
调查报告。

Rust 官方在社区上做了一次调查,以了解用户如何看待 Rust
的发展。调查共收到 5368 份回复,其中有 大约 2/3 的是 Rust 用户,剩下的
1/3 是非 Rust 用户,调查结果如下。

澳门葡萄京官方网站 1

今年是第三次对 Rust
进行年度调查,首次增加了面向英语以外语言环境的调查,在全球 14
种语言背景的调查下,总共收集到了 5991
份调查记录,其中非英语环境占了所有记录的 25%。

点此查看完整调查报告

作者丨小智、赵钰莹调查机构 ActiveStates 今年调研了包括美国、中国在内的
88 个国家、1250 名开发者,得出了这份开发者调查报告。报告显示:超过 61%
的受访者每天花在编程上的时间不超过 4 小时,65%
的受访者表示不参与或维护开…

在受访人群中,有接近 3/4 使用 Rust,这与去年的 66.9% 相比增长了不少。

澳门葡萄京官方网站 2

作者丨小智、赵钰莹

澳门葡萄京官方网站 3

先看正在使用 Rust 的用户情况。在使用年限方面,超过一年的占 42.5%
(高于去年的 30%),有 18% 的用户只使用了不到一个月。

调查机构 ActiveStates 今年调研了包括美国、中国在内的 88 个国家、1250
名开发者,得出了这份开发者调查报告。报告显示:超过 61%
的受访者每天花在编程上的时间不超过 4 小时,65%
的受访者表示不参与或维护开源项目,其中近一半 (49%)
的人将此归咎于时间不够。52% 的受访者认为增加或融入一门新语言非常困难。

下边挑选了今年的报告中一些关注度较高的数据。

澳门葡萄京官方网站 4

InfoQ
对该调查问卷进行了编译、解读,希望完整展示出一个客观的开发者生态。与此同时,我们在文末发起了国内版开发者调查问卷,如果您想了解国内开发者的群体画像,期待您的参加。您可以点击文末阅读原文参与我们的调查活动,我们将在样本数足够以后,制作一份国内版开发者调查报告,以飨读者。

使用 Rust 多久了

Rust 目前主要被用于小型和中型项目,大型项目占比 16%(高于去年的
8.9%),这也表明用户越来越有兴趣将 Rust 用在大型项目当中。

本次调查的 1250
个样本数来自美国、加拿大、中国、德国、俄罗斯、印度等在内的 88
个国家,2018 年的调查样本则来自 92
个国家。参与人数最多的国家是美国,其次为加拿大、德国,中国也有部分开发者参与了本次调查问卷。

澳门葡萄京官方网站 5

澳门葡萄京官方网站 6

受访者中,年龄分布最大的区间是 41-45 岁,年龄小于 25 岁的部分只占
7.76%,30 岁以上的开发者比例高达
84%。不难看出,国外开发者的年龄普遍比较大,这一方面是由于国外开发者接触编程比较早,另一方面也显示出国外的工作环境对大龄程序员相对较为友好。

有接近 1/4 开发者使用 Rust 至少 2 年,而约有 23% 使用不到 3
个月时间,可以看出 Rust 的新用户不少。

不过,尽管开发者用 Rust
编写代码的量在增多,但在使用频率上,每天使用和每周使用的数据都有小幅下滑。
日使用用户从去年的 19% 下降至 17.5% ,周使用用户从 48.8% 下降到
43.3% 。

工作时间安排

感觉 Rust 没有提高生产效率

澳门葡萄京官方网站 7

在 1250 份调查样本中,38.8% 的受访者每天只花 2-4 小时编程。这与 2018
年的调查结果相似,37% 的受访者每天花 2-4 小时编程。相比之下,27.92%
的受访者每天花 5-7 小时编程,而 2018 年的调查结果显示,31%
的受访者每天花 5-7 小时编程。

澳门葡萄京官方网站 8

在稳定性上,Rust 编译器有明显改善。去年有 16.2%
的用户表示,升级到新的稳定版 Rust
编译器会破坏他们的代码。今年,这一数字下降到了 7.5%。 

最让人惊讶的是,2019 年总计有多达 61.52% 的受访者花 4
小时甚至更少的时间编程,而在 2018 年,只有 51% 的受访者花 4
小时或更少的时间编程。10.56% 的受访者花 8 小时或更长时间编程,而 2018
年这一比例为 19%,几乎减少了一半。

生产效率是一个编程语言的重要指标,数据显示,有大约 50% 的受访者表示其在
3 个月内还感觉不到 Rust 的高效,而有大约 20%
的开发者在使用一年后仍然觉得 Rust 生产效率不高。

澳门葡萄京官方网站 9

开发者们花在写代码的时间上越来越少,那么时间都去哪儿了呢?

使用频率

而在版本使用上,开发者除了最新的稳定版之外,还偏向于选择 nightly
版本(每日/夜间构建版),这也侧面说明开发者比较渴望能尽快新的体验和功能。

44%
的受访者表示,他们必须把时间花在各种各样的活动上,包括会议、测试、维护,甚至是社交活动。花费时间最多的单一活动是软件设计
/ 架构,占 11.36%,其次是参加 standups/ 会议,占 8.24%。

澳门葡萄京官方网站 10

澳门葡萄京官方网站 11

开发环境设置的频率与时间

Rust 使用频率有所提高,每天使用 Rust 的开发者从去年的 17.5%
上升到今年的 23.8%,而每周的占比从 60.8% 上升到 66.4%。

Linux 依然是 Rust 开发者最主要使用的平台,Windows 31.5%
的用户有所增长,高于去年的 27.6% 。

调查中,接近 69%
的受访者一年或者一个季度创建一次新的开发环境,只有略超过 31%
的人每个季度创建一到两个新的开发环境。此外,43.68%
的开发者创建一个新的开发环境需要花 2-4 个小时,28.72%
的人只需不到一小时,27.6% 的人需要花费 5 个小时甚至更长时间。

精通程度

澳门葡萄京官方网站 12

从上面的问题可以看出,如果每年只需要不到一小时的时间配置一个新的开发环境,那么对生产力的影响可以忽略不计。与此相反,有人每月都要建立新的开发环境,并且花费
18 个小时来完成。也就是说,一年 2000
个小时的工作时间里,设置开发环境就可能占到总开发时间的 10%。

澳门葡萄京官方网站 13

编辑器方面,vim 仍然最受欢迎,但 VSCode 增速十分迅速,从去年的 3.8%
跃至 34.1%。Atom、Emacs、IntelliJ 占比相差不大。

新软件项目的频率

在 1-10 分的自评中,认为自己对 Rust 掌握了 7 分的人数最多,其次是 3
分,而 10
分占了最小比例,这表明大多数使用者倾向于认为自己是初学者或者顶多是经验丰富,但谈不上是专家。

澳门葡萄京官方网站 14

总体而言,61.4% 的受访者至少每个季度启动一次新项目,这一结果与 2018 年的
61% 几乎相同。然而,2019 年的调查结果显示,每周开工一次的受访者比例从
12% 下降到了 8.24%,每季度开工一次的受访者比例从 26% 上升到了
29.2%。虽然约 32% 的受访者每月或更频繁地启动新项目,但调查显示,只有约
14% 的受访者为该项目构建新的开发环境。

Rust 难在哪里

而对于那些之前用过,现在不再使用 Rust 的用户,调查发现:

花在 issue 上的时间

澳门葡萄京官方网站 15

  • 23% 的人认为 Rust 太难用。

  • 20% 的人表示自己没有足够的时间来有效地学习和使用 Rust 。

  • 10% 的人回答说工具不够成熟。

  • 5% 的用户觉得他们需要更好的 IDE 支持。

  • 剩余的用户表示使用 Rust 是工作需要,他们已经完成了需要使用 Rust
    的项目。

加权结果显示,开发者的大部分时间花在了与安全性或代码相关的问题上,花费在构建库或包、管理依赖关系相关问题上的时间几乎相等,分别是
1.77 和 1.72。受访者只花了 70% 的时间致力于解决许可证相关问题。

Rust 使用者普遍认为 Enums 和 Cargo 是简单的概念,其次是迭代器、模块和
Traits,接下来是更具挑战性的 Trait Bounds 和 Unsafe
概念。而最难的是宏、Ownership&Borrowing 和 Lifetimes。

澳门葡萄京官方网站 16

72.81% 的受访者表示,几乎从未花时间研究过开源许可证。61.67%
的受访者将部分时间花在管理依赖关系上。应该指出的是,与去年相比,这一结果有显著下降,当时
75% 的受访者表示,部分时间花在了管理依赖关系和开发工具上。

哪个语言用着最爽

学习曲线和语言复杂度是许多用户不愿意接受 Rust
的原因。此外,调查显示,更多的人不去学习 Rust 还是因为 Rust
没有足够的活跃商业项目让它成为企业的一部分。

此外,ActiveState 询问了受访者在构建库或包时遇到问题的频率。2018 年,71%
的受访者在构建库或包的过程中遇到了问题。而今年仅有 61.19%
的受访者表示在这项工作上花费了不少时间。

澳门葡萄京官方网站 17

澳门葡萄京官方网站 18

开发语言

虽然很尴尬,但还是得说,Rust
并不是这些使用者用得最爽的编程语言,它排在第一名 Python
之后。我们还可以看到 Erlang 得到了最低分。

最后,报告还收集了用户反馈的 Rust 需要改进的建议:

当受访者被问及目前正在使用哪种编程语言时,前三种最流行的语言是
SQL,Javascript和 Python。而在近日 Newly 联合创始人 Indrek Lasn
的预测中,Rust 将成为接下来两年的主流编程语言,依据则是 Rust 连续三年在
StackOverflow
调查中成为最受欢迎的语言,目前很多学校也开始考虑在授课中增加该语言,但就这份榜单而言,仅有
8.4% 的受访者在使用
Rust,排名接近倒数,很难让人相信这会在接下来两年成为主流。

使用版本

  • 17% 的用户认为 Rust
    需要更好的易用性,以便更容易进行原型设计,更容易使用异步编程,更灵活地使用更多的数据结构类型等等。

  • 16% 的用户希望 Rust
    能重视文档的重要性。比如说帮助用户从其他语言转换,创建更多示例和示例项目,帮助初学者快速上手和学习方面的内容等等。

  • 15% 的用户认为 Rust 对核心库的支持需要改进。

  • 9% 的用户认为需要更好的 IDE 支持。

  • 8% 的用户认为学习曲线需要改善。当他们试图学习 Rust
    或教给同事和朋友,会发现没有足够的学习资源。

  • 此外还包括:编译时间的改进,更多的企业支持,语言互操作改进,工具改进,web
    assembly 支持改进,更好的错误消息提示,更多的推广等等。

在专为科技专业人士提供见解和分析的 Dice Insights
网站看来,Ruby、Haskell、Objective-C、R 及 Perl
五种编程语言可能会逐渐走向衰落,而在这份榜单中,目前正在使用 Perl、Ruby
和 R 语言的受访者不在少数,不清楚这部分使用者是否考虑在未来更换选择。

澳门葡萄京官方网站 19

点此查看完整调查报告

满意度

使用当前稳定版本的人数比例与去年差不多,而且都是排在第一位,而 Nightly
版本的使用比例有所提升,从去年的 51.6% 提高到 56% 以上。

Python
是第三大受访者采用最多的编程语言,同时也收获了最高满意度,76.58%的受访者认为
Python 基本是让人满意的,这相比 2018 年的结果有显著增长,当时只有
68%的受访者表示基本满意。

升级带来的麻烦

作为采用度最高的语言,对 SQL 感到满意的受访者达
66.09%,排名第四。JavaScript
的采用度虽然排名第二,但在满意度榜单仅排到第 10 位,在《Cost of
JavaScript In 2018》一书中,作者指出,如果一个交互式网站经常混合使用
CSS、JavaScript、图像和字体,那么“JavaScript 永远是开销最大的那一部分”。

澳门葡萄京官方网站 20

事实上,JavaScript
的快速处理意味着更快地下载、解析、编译和执行脚本。脚本下载时间主要由脚本大小和网络性能决定,而解析和编译时间则是由
JavaScript 引擎中使用的技术和设备性能所决定,执行时间明显受到 CPU
制约。这或许是造成 JavaScript
满意度不高的原因之一,但近几年已经有不少围绕此问题的解决方案和讨论。

Rust 编译器升级到新的稳定版本时,给 7.4%
的使用者带来了麻烦,新版本破坏了已有代码,他们被迫进行修复。

对于是否考虑更换编程语言,尤其是满意度较低的选择,大部分受访者依旧不想更换。换句话说,添加新语言的痛苦超过了使用该工具的好处。当痛苦大于收益时,这件事情的性价比就被降低了。

此外,调查还询问了使用者对于 Rust 存在的问题的思考,得到如下 Top 10
反馈:

设置,部署,运行时

  1. 更好的库支持

  2. 更完美的 IDE 体验

  3. 更广泛地采用 Rust

  4. 更完善的工具与支持生态

  5. 优化学习曲线

  6. 稳定重要的语言特性和 crates

  7. 支持异步编程

  8. 支持 GUI 开发

  9. 更好的文档

  10. 改进编译时间

挑战

完整的调查报告查看官方博客。

为了更好地提炼开发人员目前面临的挑战,榜单列举了开发时可能遇到的问题,比如添加新的编程语言、开源代码的安全问题、依赖、开源代码的许可问题、复用性等。其中,添加一门新编程语言的难度连续两年位居榜首,开源代码的安全问题紧随其后,54%
的受访者认为较为困难。

(文/开源中国)    

构建问题

不难看出,安全性和稳定性是受访者考虑最多的问题,分别为 41.43%和
40.49%,这个数字相比去年有了明显提升,说明过去一年并没有出现非常好的方法解决这些问题,复杂程度还在持续上升,急需好的解决方案出现。

重要性

针对包质量,共享环境配置的简易性,特定包配置的开源语言构建与许可信息等问题,前两者在受访者心目中的重要程度非常接近,分别为
58.58%和 55.95%。

开 源

近年来,开源技术得到越来越多的重视,国内开发者也在积极参与开源社区的建设。根据调查,受访者中的
34.88% 对开源社区有所贡献,而在影响贡献的主要因素中,时间的占比接近
50%,远远超过其他因素。换句话说,大部分受访者在考虑是否参与开源时主要是看有没有时间,难道大部分开发者受限于
996 的工作状态而没有精力做其他工作,比如贡献开源吗?

原报告下载链接: