Rust 语言官方网站发布了一份 2017 年 Rust 语言使用情况报告。Rust 语言方向社区提出了一系列问题,总共收到了 5368 个反馈,这个数字比去年多了 2000 多。这份报告以这些反馈为基础,经过统计分析,得出以下的分析结果。
你正在使用 Rust 吗?
从图中可以看到,反馈者中有将近三分之二的人在使用 Rust。其余的人虽然没有在使用 Rust,或者曾经使用过 Rust,但他们积极参与问卷调查,可见他们也希望能够帮助 Rust 做出改进。
你使用 Rust 多长时间了?
在参与问卷的 3589 个 Rust 用户中,有 42% 的人使用 Rust 超过一年时间,而这个数字在去年仅为 30%。使用时间短于一个月的用户占了 18% 左右,可见目前 Rust 正在吸引大批的新用户。
你做过的 Rust 项目总的规模有多大?
人们参与的 Rust 项目规模越来越大,中型和大型项目所占的比例几乎是去年的两倍,今年为 16% 左右,而去年仅为 8.9%。
你使用 Rust 的频度是怎样的?
虽然使用 Rust 的开发者越来越多,但使用频度比例却略有下降。每天使用 Rust 的用户比例从去年的 19% 下降到今年的 17.5%,每周使用 Rust 的用户从去年的 48.8% 下降到今年的 43.3%。不过这是很自然的现象,因为使用 Rust 的人越多,基数变大了,比率就会下降。
在过去一年中,更新到新版本 Rust 编译器出现过问题吗?
这个数字在去年是 16.2%,而今年下降到了 7.5%,可见 Rust 的编译器取得了可喜的进步。
你在应用程序里使用什么版本的 Rust?
从图中可以看到,开发者们首选的两种版本分别是当前稳定版和 Nightly 构建版。虽然使用当前稳定版的用户占了 77.9%,但使用 Nightly 构建版的用户却仍然比去年有所增加。
你更喜欢通过何种方式来安装 Rust?
大部分人都喜欢通过 Rust 工具链安装工具 rustup 来安装 Rust,这个比例从去年的 52.8% 增长到今年的 90.2%。
你在哪个平台上开发 Rust?
Linux 仍然是 Rust 开发者首选的平台,不过我们也看到,Windows 平台的开发者也在增长,从去年的 27.6% 上升到今年的 31.5%。
你的目标平台是什么?
这一结果与上一个问题的结果有点相似。其中 Android 和 iOS 分别占到了 9.9% 和 5.3%,比去年增长了将近 10 倍。嵌入式方面也比去年有所增长。
你使用哪一种编辑器来开发 Rust?
Linux 下的 Vim 独占鳌头,Windows 下的 VSCode 也从去年的 3.8% 一路飙升到今年的 34.1%,这可能与 VSCode 成为 Rust 语言服务器支持的平台之一是有关系的。
你或你的公司在工作中会使用 Rust 吗?
Rust 在工作中的占比也越来越高。全面使用 Rust 的比例今年为 4.4%,去年为 3.7%,部分使用 Rust 的比例今年为 16.6%,去年为 16.1%。
在部分使用 Rust 的公司里,大中型项目的比率比去年也有所增长。
类似的,在全面使用 Rust 的的公司里,大中型项目也越来越多。
你觉得在社区中受欢迎吗?
结果显示,有四分之三的人觉得自己受 Rust 社区欢迎,而 23.6% 的表示不确定。Rust 社区其实是非常欢迎新用户的,不管他们是真正的用户还是潜在的用户。
在放弃 Rust 之前你使用 Rust 多长时间?
参与问卷的开发者中有 529 人没有在使用 Rust。但在放弃使用 Rust 之前,还是有相当一部分人使用了 Rust 一段比较长的时间。人们放弃使用 Rust 主要有以下几种原因。
- 23% 的人表示 Rust 很难用。
- 20% 的人表示没有足够的时间学习 Rust。
- 10% 的人表示相关工具不够成熟。
- 5% 的人表示他们需要更好的 IDE。
- 剩余的人表示他们在工作中需要得到他人的帮助,或者与 Rust 社区没有很好的互动。
不使用 Rust 的原因
从问卷中可以看出,Rust 的学习曲线和语言复杂性仍然是阻碍人们选择 Rust 的重要因素,而缺乏活跃的 Rust 商业项目也是因素之一。
需要改进之处
参与问卷调查的开发者认为 Rust 需要改进的地方如下。
- 17% 的反馈提到 Rust 需要提升工效,比如可以更方便地用它创建原型,更容易地进行异步编程,提供更多灵活的数据结构类型。
- 16% 的反馈希望 Rust 具有更好的文档。文档里应该包含入门教程,并提供更多的示例和视频教材。
- 15% 的反馈指出 Rust 需要提供更多的包支持。
- 9% 的反馈鼓励 Rust 提供官方的 IDE 支持。
- 8% 的反馈希望能够降低学习曲线的坡度。
- 其他的反馈包括:更快的编译速度、更多的协作支持、更好的语言互操作性、改进的工具、更友好的错误消息、改进对 web assembly 的支持等。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论