AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

2018 年 Rust 语言调查报告

来源于Rust 调查组

  • 2018-12-04
  • 本文字数:3061 字

    阅读完需:约 10 分钟

2018年Rust语言调查报告

新的一年即将到来,这意味着一份新的 Rust 调查将出炉,这是 Rust 的第三次年度调查。今年首次推出了多语种调查,包括英语在内总共有 14 种语言。非英语语言的反馈占比 25%,整体创下了 5991 个反馈的新记录。



你使用 Rust 吗?


除了反馈数量有所增加,今年参与调查的 Rust 用户比例也比以往有所增加。与去年的 66.9%相比,今年有近四分之三的反馈来自 Rust 用户。

使用 Rust 的时间


你使用 Rust 多长时间了?


Rust 的新用户在源源不断地增长。约有 23%的 Rust 用户使用 Rust 的时间为 3 个月或更短,近四分之一的用户使用 Rust 至少 2 年时间。



在使用多久之后感觉 Rust 给你带来效率上的提升?


超过 40%的 Rust 用户在使用不到一个月时就感到 Rust 给他们带来的效率提升,超过 70%的人在使用一年左右感觉到效率提升。但用户之间存在明显的差异,仍然有超过 22%的用户尚未感觉到效率提升。



使用 Rust 多久之后仍然感觉不到 Rust 给你带来的效率提升?


大约 25%的用户在使用 Rust 一个月左右仍然感觉不到效率提升,所有有必要帮助用户找到提升效率的方法,以免他们陷入困境。

使用 Rust 的程度


Rust 项目的代码量

随着整体投入的增加,Rust的项目规模越变越大。Rust的中到大型投入(分别为超过1万行代码和10万行代码)从2016年的8.9%增长到2017年的16%,今年增长到23%。

使用Rust的频率

我们也看到了Rust常规使用量的增长。每天使用Rust的用户去年占17.5%,今年已接近四分之一。总体来说,每周使用Rust的用户从60.8%上升到66.4%。

Rust的专业知识

你如何评价自己的Rust专业技能?

Rust的专业技能等级不是一条简单的曲线,它有两个高峰:一个是“3”,另一个是“7”,这表明用户倾向于认为自己只是初学者,或者经验丰富,但不一定是专家。

你认为这些概念或知识点的学习难易程度是怎样的?

Rust用户普遍认为Enums和Cargo是比较简单的概念,其次是Iterator、Module和Trait。接下来是更难一点的Trait Bounds和Unsafe。最后,最难的是Macros、Ownership & Borrowing和Lifetime。这些难点与我们过去几年收到的反馈很相似,它们将继续成为提高生产力的改进重点,如NLL和Macro系统改进。

你还喜欢哪些其他编程语言?

我们发现,Rust实际上并不是用户最熟悉的顶级编程语言,它位于Python之后,屈居第二。

Rust的工具链

你使用哪个版本的Rust?

使用当前稳定版本的用户数量与去年类似,但让人感到些许惊讶的是,在工作流程中使用Nightly构建版本编译器的用户数量有所增加。使用Nightly构建版本的用户数量两年来在持续上升,现在超过了56%(高于去年的51.6%)。

当被问到为什么使用Nightly构建版本时,人们回应的原因有很多,包括:访问2018版本、asm、async/await、clippy、嵌入式开发、rocket、NLL、proc宏和wasm。

在过去一年是否因为升级编译器而破坏了你的代码?

这个数字与去年相比差不多,有7.4%的人表示他们经历过这种情况。

如果是这样,那么修复这些问题需要多大的工作量?

通常只是一些小的修复,但也有些人报告说,会有一些中等或主要的修复。

Rust的首选安装方法是什么?

通过rustup来安装的占了90%,然后是Linux发行包,占17%。

你还使用过哪些其他Rust工具?

使用rustfmt和rustdoc的最多,然后是clippy——尽管用户较少,但使用它的用户很喜欢这个工具。IDE支持工具Rust Language Server和racer也得到了积极的支持,但在调查中也出现了一些不喜欢的投票和评论。bindgen具有相对较小的用户群。

Rust工作流程

你的开发平台是什么?

Linux仍然是Rust开发人员的大本营,大约80%的Rust开发人员在Linux上开发。Windows的使用量从去年的31%略微增长到今年的34%,这是它连续第二年出现增长。

你的目标平台是什么?

Linux和Windows仍然是Rust应用程序的主要目标平台。其他平台与去年大致相同,但有一个例外:WebAssembly。这项新技术取得了令人瞩目的增长,从去年的13%增长到今年的24%,几乎翻了一番。

你使用什么编辑器?

领跑两年的Vim现在终于被VSCode击败了,VSCode从去年的33.8%增长到今年的44.4%。

在工作中使用Rust

你或你的公司在工作中使用Rust吗?

Rust在工作场所中的增长继续呈现出缓慢而稳健的态势。全职和兼职使用Rust从去年的4.4%全职和16.6%兼职增长到今年的8.9%全职和21.2%兼职。全职Rust商业用途增加了一倍。总的来说,Rust的商业使用总量从去年的21%增长到略高于30%。

你的公司有计划在未来使用Rust吗?

在公司采用方面,Rust有更多的增长空间。超过三分之一的用户表示,目前还没有考虑在未来一年尝试使用Rust。也有将近一半的非Rust用户表示这需要公司的支持,这表明需要从公司方面进行拓展或需要让公司了解更多有关Rust的信息。

社区氛围

你感觉自己受Rust社区的欢迎吗?

Rust社区工作的一个重要组成部分是确保Rust项目对用户来说是一个温馨的地方。新用户应该能够感到他们被鼓励去探索和分享想法,并且让他们做最好的自己。

Rust用户和非Rust用户都感觉受到社区的欢迎,尽管还有超过四分之一的人表示不确定。这些反馈中也存在一些区域差异。例如,来自俄罗斯的反馈显示,感觉自己不受欢迎占比为4%,而中国为8%。

你认为自己在技术方面的代表性不足吗?

认为自己在技术方面代表性不足的人数在逐年增长。调查显示,Rust女性从业者仍然低于行业平均水平。

非Rust用户

在放弃之前你使用Rust多久了?

在放弃使用Rust的人当中,超过50%的人在不到一个月的时间内放弃使用Rust。同样地,大约50%放弃使用Rust的人在放弃之前使用了超过一个月时间。

为什么不使用Rust?

很多非Rust用户表示他们确实想学习Rust,但一些因素会影响到他们。首先是他们所在的公司本身不使用Rust。近一半的非Rust用户因缺乏公司支持而受阻。此外,由于Rust过于复杂,给四分之一的非Rust用户造成了阻碍。

挑战

跟往年一样,我们会问受访者,Rust有哪些地方需要改进。今年,我们在反馈中看到了一些熟悉的主题以及一些新的主题。今年的十大主题是:

  1. 需要更好的库支持;

  2. 更好的IDE体验;

  3. 需要更广泛地采用Rust;

  4. 更丰富的工具和支持生态系统;

  5. 改善的学习曲线;

  6. 需要重要的语言功能;

  7. 支持异步编程;

  8. 支持GUI开发;

  9. 更好的文档;

  10. 改进的编译时间。

今年,“支持GUI开发”的需求在不断增长,这说明Rust不仅在服务器端继续在增长,而且人们感觉将Rust需要延伸到应用程序开发中。

“需要改善Rust营销策略,很多人都不知道它。”

虽然Rust在某些圈子中可能是众所周知的,但它仍有成长空间。在很多科技领域,Rust可能还不为人所熟知。

“专注于提高采用率、教程、书籍、新手经验培养等方面,这些将在未来几年带来好处”。

除了外展之外,更多更好的文档将吸引到更多的受众。

“开发者工具的稳定性和成熟度让开发环境的搭建和应用程序的调试变得更容易。”

很多人提到了IDE支持,不仅指出了RLS的不稳定性和不准确性,还提出了更多的IDE支持,比如调试的便利性。

“生态系统和库的成熟度很重要,一个良好的“标准”库生态系统是该语言未来成功的关键。”

受访者强调,需要更完善的库并增加用户可以使用的“标准”库。一些评论指出,这不是维护者的错,他们已经在努力开发和发布这些库,但需要更多的公司参与并提供商业支持。

“人体工学和涵盖一切的文档。”

有些人指出,人体工学应该与更丰富的文档齐头并进,因为它们并非相互独立的概念,应该通过统一的方式将它们融合在一起。

英文原文:https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html



2018-12-04 12:063241
用户头像

发布了 731 篇内容, 共 462.8 次阅读, 收获喜欢 2005 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

错过了初恋,别错过WebFlux

稻草鸟人

stream Spring5 WebFlux Reactive

危机过后,「表格文档协同」需要具备什么能力?

葡萄城技术团队

大前端 开发者工具 Excel

接口限流算法有哪些,看完这篇又能和面试官互扯了~

不才陈某

Java 分布式 后端

工具集系列|值得收藏的几个免费在线学习国外网站

一尘观世界

学习 工具 网站 提升

NIO 看破也说破(三)—— 不同的IO模型

小眼睛聊技术

Java 学习 深度思考 程序员 架构

功不唐捐

Janenesome

读书笔记 思考 坚持

Java 为什么需要包装类

Rayjun

Java

你的团队属于部落的哪个阶段?

Yanel 说敏捷产品

敏捷 敏捷开发 敏捷精髓

认识数据产品经理(二 数据产品经理的稀缺性)

马踏飞机747

大数据 互联网 数据分析 产品经理

目光聚集之处,金钱必将追随

Tom

学习 个人成长 思考 读书

也谈程序员的核心竞争力

我心依然

学习 程序员 竞争力 独立思考 清晰表达

良好的工作习惯——及时存档、备份

小匚

工作效率

Try-Catch包裹的代码异常后,竟然导致了产线事务回滚!

牧码哥

Java spring 事务

追光逐影:读《我们这一代》

北风

每个人都应该知道的性能参数

ElvinYang

Linux学习-2020.05.11

Flychen

用Go替代Python在生产环境中进行数据分析

良少

人工智能 大数据 数据分析 pandas Go 语言

ITerm2 + Oh my ZSH + Powerlevel10k

JDoe

配置

Git clone过慢问题

JDoe

git

如何高效阅读

ElvinYang

【解析+示例】2种方法,通过SpreadJS在前端实现甘特图

葡萄城技术团队

大前端 甘特图 SpreadJS 表格控件

从技术层面理解对于区块链技术的10.24集体学习讲话

Tux Hu

区块链 智能合约 以太坊 加密货币 去中心化网络

游戏夜读 | 如何制作互动剧?

game1night

带你吃透原型设计

Yanel 说敏捷产品

产品 产品经理 产品设计 产品开发 产品推荐

如何让团队产生“多米诺骨牌”效应?

Yanel 说敏捷产品

项目管理 敏捷 敏捷开发 敏捷精髓

你真的懂"看板文化"么?

Yanel 说敏捷产品

敏捷 敏捷开发 敏捷精髓

ShedLock:一个轻量级的定时任务协调组件

kk

定时任务 shedlock

回"疫"录(12):一“罩”难求

小天同学

疫情 回忆录 现实纪录 纪实

医院陪护5天的四点感受

赵新龙

身心健康 医院

DDD 实践手册(6. Bounded Context - 限界上下文)

Joshua

企业架构 设计模式 领域驱动设计 DDD 架构模式

Python程序性能分析和火焰图

ElvinYang

2018年Rust语言调查报告_语言 & 开发_InfoQ精选文章