写点什么

2018 年 Rust 语言调查报告

来源于Rust 调查组

2018 年 12 月 04 日

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:062529
用户头像

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

关注

评论 1 条评论

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

Linux 多线程详解 —— 什么是线程

赖猫

Linux 线程 Linux内核

日记 2021年2月20日(周六)

Changing Lin

2月春节不断更

新手如何靠区块链赚钱?

CECBC区块链专委会

区块链

ZEGO全新语音聊天解决方案,4步搭建爆火的语音聊天室

ZEGO即构

AI窥人(三):你想靠AI实现永生吗?

脑极体

熟练HTML5+CSS3,每天复习一遍

魔王哪吒

面试 前端 28天写作 2月春节不断更

在gradle中构建java项目

程序那些事

Java maven Gradle 程序那些事 构建工具

面试官问:在读多写少的情况下,如何优化 MySQL 的数据查询方案

面试官问

MySQL 数据库 面试题 主从同步 读写分离

实习记录:PB协议编写

是鱼头啊啊啊

我要看 SICP 了!

十元

Spring Boot(一):入门篇

海鸥云

spring Boot Starter

SICP 习题答案1.1 - 1.5

十元

产品经理问我:手动创建线程不香吗,为什么非要用线程池呢?

Java鱼仔

线程池 Java 8

程序员如何技术划水,Android项目开发如何设计整体架构?Android岗

欢喜学安卓

android 程序员 面试 移动开发

大厂面试:求解集装箱港口翻箱问题的最短路径

华为云开发者社区

算法 路径 模型

RPC框架-dubbo:架构及源码分析-初篇

程序员架构进阶

微服务 dubbo 七日更 28天写作 2月春节不断更

滴滴内部分享:如何提高代码的可读性,学习笔记

Java架构师迁哥

《TestNG》源码学习笔记

吴大山

week12 作业

zbest

Kafka.02 - Topic 介绍

insight

kafka 2月春节不断更

【得物技术】Keep-alive 原理及业务解决方案

得物技术

前端 标签 页面 得物技术 keepalive

追根溯源,有点意思,关于MySQL更新“丢失”问题

互联网架构师小马

安卓软件开发!Android线程池基础入门和简单实践以及使用技巧,面试真题解析

欢喜学安卓

android 程序员 面试 移动开发

工作日志2-19

一锅水端平

区块链产品走向普及之不完全指南

CECBC区块链专委会

比特币 区块链

一次并发插入死锁带来的“教训”,我才清楚这些MySQL锁知识

互联网架构师小马

为什么 Python 的 f-string 可以连接字符串与数字?

Python猫

Python 开源 编程语言 后端 C语言

都在说云原生,它的技术图谱你真的了解吗?

浪潮云

云原生

go get下载包失败问题

happlyfox

golang Proxy 28天写作

区块链在医疗领域应用所要面临哪些挑战

CECBC区块链专委会

区块链 医疗

数据库的两个好帮手:pagehack和pg_xlogdump

华为云开发者社区

数据库 故障 GaussDB pagehack pg_xlogdump

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

2018年Rust语言调查报告-InfoQ