写点什么

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

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

关注

评论 1 条评论

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

搭建 VuePress 博客,你可能会用到的一些插件

冴羽

Vue 博客 vuepress 博客开发 博客搭建

期待!Fedora 36 发布日期和新功能

Ethereal

将本地代码同步到gitee和github中去

布衣骇客

Git Commit #Github

紫光展锐解除楚庆CEO职务,内部员工爆料那些不为人知的内情!

IC男奋斗史

芯片行业思考

千万级学生管理系统的考试试卷存储方案

晨亮

「架构实战营」

开发电脑用 Windows 还是 Mac

HoneyMoose

开发提效小技巧分享(一)

编程三昧

3月月更 前端工具

从用户输入URL到页面展示,这中间发生了什么?

Tristan

前端 浏览器

如何打造良好的分享氛围

Hockor

团队管理 技术分享

患上“远见病”的VR,不得不走进动物世界

脑极体

如何在 Linux 中将主目录移动到新分区或磁盘?

Ethereal

如何在 eNSP 上保存配置?

Ethereal

性能测试中Disruptor框架shutdown失效的问题分享

FunTester

Disruptor 性能测试 接口测试 高性能队列 FunTester

如何做好一场技术分享

Hockor

团队管理 个人成长

Linux运维必知:如何从其 PID 中查找进程名称

Ethereal

docker、k8s 面试总结

yuexin_tech

Docker k8s

解密数据仓库LLVM技术神奇之处

华为云开发者联盟

数据仓库 LLVM 算子 GaussDB(DWS) 底层虚拟机

让ICT飞鸟,长出数字能源的翅膀

脑极体

面试官:GRE 和 IPsec 隧道有什么区别?

Ethereal

[银行面试系列]1 进入银行之前必须了解的20个问题

暖蓝笔记

3月程序媛福利 3月月更

比特币突破4.4万美元!美欧制裁或推动俄罗斯资金转向加密货币

CECBC

遵循Promises/A+规范,深入分析Promise实现细节(基础篇)

战场小包

JavaScript 前端 Promise 3月月更

什么是元宇宙?为何要关注它?——解码元宇宙

CECBC

聊聊 Pulsar: Pulsar 分布式集群搭建

老周聊架构

云原生 Apache Pulsar 3月月更

初识工业互联网

劼哥stone

工业互联网

三条命令搭建自己的博客平台

山河已无恙

WordPress 3月月更

Linux小技巧:如何在 Vim 中显示行号?

Ethereal

Go语言实战之数组的内部实现和基础功能

山河已无恙

Go 语言 3月月更

presto实战读书笔记

聚变

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