【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Rust 2019 年度调查报告:17% 的受访者未使用 Rust

  • 2020-05-21
  • 本文字数:2169 字

    阅读完需:约 7 分钟

Rust 2019年度调查报告:17%的受访者未使用Rust

近日,Rust 官方博客发布了 Rust 2019 年度调查报告,同时这也是对 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%


在这次调查中,有 82.8% 的受访者表示目前在使用 Rust,7.1% 的受访者表示曾经使用过 Rust,但是现在已经放弃了,还有 10% 的受访者表示从未使用过 Rust。如果与 2018 年的 Rust 调查报告作对比,我们不难发现 Rust 的使用者在不断增加。(注:在 2018 年 Rust 调查报告中,有 74.5% 的受访者表示目前在使用 Rust,8.1% 的受访者曾经使用过 Rust,但现在放弃了,17.4% 的受访者表示从未使用过 Rust。)


Rust 使用者的分布情况在这次调查中,Rust 的日常使用量出现了小幅上升,达到了 27.63%(去年略低于 25%,2017 年为 17.5%)。



在这次调查中,我们发现使用 Rust 最多的用户是程序员 / 软件工程师,其次是系统架构师。而最多应用 Rust 的领域是后端 Web 应用程序。




根据调查结果,43%Rust 项目的代码量在 1000-10000 行,代码量超过 10000 行的项目也在逐年增加,从 2016 年的 8.9% 增长到 2017 年的 16%,再到 2018 年的 23%,在这次 2019 年调查报告中已经增长到了 34%。



为什么他们不使用 Rust?在文章的开头,我们就提到了目前仍然有很多受访者没有使用过 Rust 或者是曾经使用过但现在放弃了。那么为什么他们会放弃呢?


在调查中,我们发现“公司不使用 Rust”是这些受访者放弃使用 Rust 的重要原因。另外,学习曲线陡峭、缺少所需的库、因切换到 Rust 而减慢了速度以及缺少 IDE 支持也是用户停止使用 Rust 的常见原因。



那么,到底是哪些人没有使用 Rust 呢?比较好玩的是,程序员 / 软件工程师既是使用 Rust 的最大群体,也是不使用 Rust 的最大群体,如果再聚焦到领域,我们发现,排在首位的还是后端 Web 应用程序。




为了找到大家不使用 Rust 的真正原因。Rust 社区还调查了 Rust 用户是出于什么样的原因在频繁使用,根据调查结果,大部分用户表示之所以使用 Rust,是因为 Rust 有更多他们需要的库,并且 IDE 支持也更好。


由此可见,目前 Rust 应用的最大障碍应该是学习曲线和互操作性。


92% 的受访者在使用新版本 Rust

2018 年 12 年,Rust 2018(Rust 1.31.0)版本正式发布。在这次调查中,92% 的 Rust 用户表示正在使用新版本,同时 85% 的人表示升级到 Rust 2018 版本很容易。


同时,这次报告还调查了用户对于 Rust 语言关键改进的评价,整体来看,Rust 2018 版本的诸多改进都获得了认可。











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% 的人表示“我不知道”

Rust 用户都在使用哪些 IDE 和工具?

在调查中,我们发现 IDE 对 Rust 的支持也被认为是采用的障碍。那么,目前大家最常使用的 IDE 都有哪些呢?调查结果显示:最受欢迎的是 Vim 和 VS Code,其次是 IntelliJ。



至于用户使用的开发平台,Linux 和 Windows 仍继续占据主导地位。


  • 51.5%的用户在 Linux 上开发

  • 23.6%的用户在 Windows 上开发

  • 22.8%的用户在 macOS 上开发



另外,在调查中我们发现绝大多数用户使用的是当前稳定版本的 Rust(63%)。


  • 30.5%使用 Nightly 版本

  • 2.5%使用 Beta 版本

  • 63%使用当前的稳定版本

  • 3.1% 使用以前的稳定版本

  • 0.6%使用自定义 fork

  • 0.3%不知道


令人惊讶的是,在工作流程中使用 Nightly 编译器的用户数量下降了 20%。

Rust 学习曲线陡峭,21% 的受访者仍未掌握 Rust

Rust 以其陡峭的学习曲线而闻名。调查结果显示:大约 37%的 Rust 用户在使用了不到一个月的时间就能感受到它的生产效率(掌握 Rust),这与去年的比例(40%)相差不大。超过 70%的人在第一年才能感受到它的生产效率。不幸的是,和去年一样,很多用户仍在挣扎,21%的用户表示尚未掌握 Rust。



有趣的是,这次调查选取了那些还没有感受到 Rust 生产效率的用户子集,并绘制了他们对 Rust 专业知识的评分。结果发现,那些感受不到 Rust 生产效率的人的专业知识水平处于低到中级,而这些人是最需要学习材料、文档的群体。


23% 的受访者希望实现 Rust 与 C 的互操作性

多年来,用户都希望 Rust 能够与其他语言进行更多的互操作。这次报告中调查了用户最希望与 Rust 进行互操作的语言是什么,得到的结果是:排在第一位的是 C,第二位的是 R,第三位是 C+++。



当谈到使用什么平台来作为应用程序的目标时,Linux 仍然是首选,占 36.9%,其次是 Windows,占 16.3%。紧随 Windows 之后的是 macOS 和 Web Assembly,它们各占 14%。从报告中,我们发现越来越多的用户将 Android 和 Apple iOS 作为目标。


总结

整体来看,用户是否采用 Rust 或者其它语言的一个重要考量因素是生产效率。目前阻碍 Rust 使用的重要原因是公司的 Rust 采用率、学习曲线、IDE 和工具以及互操作性。同时,Rust 社区应该提供更多的学习资料和文档,帮助开发者尽快入门和掌握 Rust。


2020-05-21 17:022570

评论 1 条评论

发布
用户头像
这比例过分了,国内求职平台都没几个rust职位
2020-05-22 09:39
回复
没有更多了
发现更多内容

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

关于国际化语言 Intl

西贝

Java 大前端 国际化 格式化

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

程序员去外包真的不可取吗?

Java架构师迁哥

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

古北水镇的夜

张晓楠

生活 摄影

记一次MySQL日期范围查询优化

李印

MySQL SQL优化

架构师训练营第四周作业

郎哲158

区块链是一个不知道要解决什么问题的解决方案吗?

CECBC

比特币 区块链 银行

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

架构师作业第三周学习总结

Wee权

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

Apache Flink

flink

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

大前端

架构师训练营第四章 系统架构总结

郎哲158

建筑行业区块链应用场景是怎样的

CECBC

区块链 行业资讯

产品分析

时间是一个人最好的证明

产品经理 产品设计

对不起,学会这些 Linux 知识后,我有点飘

cxuan

Linux 后端 操作系统 计算机

31道Java核心面试题,一次性打包送给你

小Q

Java 学习 程序员 架构 面试

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

开源数据库这么香,为什么我们还要下功夫自研?

华为云开发者联盟

数据库 开源 数据

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

架构师训练营第三周作业

Wee权

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

典型的大型互联网应用系统的技术方案和手段

Rust 2019年度调查报告:17%的受访者未使用Rust_编程语言_Rust Survey Team_InfoQ精选文章