Rust

分享:

此部分中的问题向选择 Rust 作为其语言之一的开发者显示。

您如何使用 Rust?

67%

个人/编外项目

61%

爱好

18%

工作

1%

其他

我注意到尽管 Rust 正在增长,但相对数量保持不变。这很好!这表示 Rust 爱好者的数量正在增加,可以很快成为专业人士。给雇主的提示:在“X 年专业 Rust 经验”的人选之外,还有大量愿意从当前工作转行的人。

Florian Gilcher

Ferrous Systems 总经理

值得注意的是,Rust 确实在几年前从“一种奇怪的新语言”变为“投入生产也不是不行”,因此期间增长可以预期,也令人高兴。

Aleksey Kladov

Rust 开发工具团队成员

您使用 Rust 有多长时间了?

22%

不足 1 个月

36%

1 到 6 个月

18%

6 个月到 1 年

19%

1 到 3 年

5%

超过 3 年

Rust 是一门年轻的语言,所以有多年经验的老手很难找到。因此,采用 Rust 的经理应该为团队的培训和其他形式的教育和支持划出预算。另外,还应考虑到一个拥有数十年编程经验的人可以在帮助下快速采用一门新的编程语言。

Florian Gilcher

Ferrous Systems 总经理

过去使用过 Rust 的人大体上仍在使用。新用户的相对份额几乎保持不变,呈现出健康的有机增长模式。高级 Rust 用户的份额有所增长,这对于雇主来说是个好消息。

Andre Bogus

Clippy 维护者、TWiR 编辑、Rust 贡献者、专业 Rust 开发者

除 Rust 外,您在项目中还使用哪种(哪些)编程语言?

22%

JavaScript/TypeScript

15%

Python

12%

C++

12%

Go

11%

C

6%

Java

3%

C#

2%

PHP

1%

Elixir

1%

Ruby

3%

其他

49%

近半数受访者是通晓多种语言的程序员,在 Rust 之外还使用另一种语言。这些百分比大致能够反映当前受欢迎程度。如他们所说,最好的工具通常就是手头的工具。

Andre Bogus

Clippy 维护者、TWiR 编辑、Rust 贡献者、专业 Rust 开发者

这让我很惊喜,我此前预计纯 Rust 项目的比例会低一些。我对 JavaScript 的数字并不惊讶,因为社区非常接近,彼此相处融洽。

Florian Gilcher

Ferrous Systems 总经理

Rust 代码如何与其他部分交互?

53%

语言互操作

51%

REST API

24%

RPC

7%

其他

您在 IDE 中为 Rust 使用什么插件/实用工具?

45%
25%

Rust Analyzer

42%
47%

IntelliJ Rust

14%
17%

无特殊支持

10%
16%

RLS

3%
3%

Racer

1%
3%

其他

9%
8%

不知道

rust-analyzer 增长巨大!这并不奇怪,因为 rust-analyzer 项目最近融入了更大的 Rust 组织,并且 Rust Language Server (RLS) 也为支持 rust-analyzer 而被弃用。我很高兴有很多人为 Rust 使用高级 IDE 并且 IntelliJ Rust 与 rust-analyzer 之间存在健康的竞争与合作!

Aleksey Kladov

Rust 开发工具团队成员

rust-analyzer 取得了重大进展,现在成为 Rust 的官方 LSP 实现。IntelliJ Rust 也保持强劲势头。使用过两者后,我仍然不时在它们之间切换。两件精美的工程结晶。真棒!

Andre Bogus

Clippy 维护者、TWiR 编辑、Rust 贡献者、专业 Rust 开发者

您主要使用什么 IDE/编辑器进行 Rust 开发?

43%

Visual Studio Code

23%

CLion

15%

IntelliJ IDEA

7%

Vim

3%

Emacs

1%

PyCharm

1%

Sublime Text

1%

GoLand

1%

Neovim

1%

Visual Studio

4%

其他

您最怀念 IDE 中的哪些 Rust 功能?

32%

原生调试

18%

WebAssembly 调试

16%

Web 框架支持

16%

跨语言导航和重构

14%

REPL

11%

嵌入式开发支持

10%

数据库框架支持

9%

Docker 支持

9%

远程开发支持

4%

AWS Lambda 支持

5%

其他

32%

您通常如何调试 Rust 代码?

55%

`println!` 或 `dbg!` 宏

27%

在 IDE 中进行 UI 调试

11%

在控制台中

5%

我根本不调试

1%

其他

更多人使用调试器,这可能是因为去年以来支持有所改善。dbg! 宏仍然毫不意外地占据了上风,因为它是一种可供快速了解运行时状态的简便方法。另外,由于 Rust 相当挑剔,应用程序通常一开始就不需要调试。

Andre Bogus

Clippy 维护者、TWiR 编辑、Rust 贡献者、专业 Rust 开发者

调试器和以往一样麻烦。我使用的是 eprintln!(通过 IDE 中的 pd 代码段),但我很怀念 Kotlin 的出色调试器。

Aleksey Kladov

Rust 开发工具团队成员

您为 Rust 使用什么分析工具?

82%

我不使用分析工具

10%

perf

5%

callgrind/cachegrind

4%

gprof

3%

DTrace

2%

其他

这完全是工具链的错!此处列出的所有工具都难以使用。如果您是全职进行分析(例如,像 nnethercote 一样的大项目性能工程师),您可以花时间学习所有性能标志。但是,如果您只想花一小部分时间进行性能调查,那么学习曲线就非常不友好。我希望 Rust 能向 Go 学习,将 pprof.StartCPUProfile 作为工具链的一部分。不过,这将需要大量工作。

Aleksey Kladov

Rust 开发工具团队成员

出人意料的是 – 但也不足为奇 – 对于许多人为速度而使用的语言,性能衡量却并不常见。我的理论是,性能工具无法获取以及因平台而异。

Florian Gilcher

Ferrous Systems 总经理

您使用 Rust 开发什么类型的项目?

46%

CLI 工具

37%

系统编程

34%

Web 开发

16%

网络编程

15%

桌面/GUI 应用程序

11%

嵌入式设备/物联网

10%

游戏

7%

学术/科学/数字

6%

数据库

6%

DevOps

6%

区块链

6%

安全

4%

数据科学/机器学习/AI

3%

金融/商业

6%

其他

CLI 工具被证明是 Rust 出彩的冷门领域。去年,约一半开发者都在开发它们。同样值得注意的是,虽然区块链公司经常吹嘘自己使用 Rust,但实际上只有 6% 的受访者在该领域工作。这要么是过度炒作和营销,要么是少数在区块链工作的 Rust 开发者效率极高。也可能两种情况都存在。

Andre Bogus

Clippy 维护者、TWiR 编辑、Rust 贡献者、专业 Rust 开发者

鉴于在公众眼中区块链行业有很多 Rust 工作,看到这个选项甚至低于嵌入式和学术用途让我非常惊讶。

Florian Gilcher

Ferrous Systems 总经理

您的 Rust 项目以什么平台为目标?

77%

Linux

41%

Windows

36%

macOS

22%

WebAssembly

11%

嵌入式

4%

Android

3%

iOS

2%

其他

尽管 Windows 有所进展,但 Linux 仍占据主导地位。我认为这可能是由于 Microsoft 对 Rust 的投资,以及 Linux 用户通常是早期采用者,而且现在越来越多的社区拥有更多保守用户,他们倾向于使用 PC 附带的操作系统。

Andre Bogus

Clippy 维护者、TWiR 编辑、Rust 贡献者、专业 Rust 开发者

还有一个小惊喜 – 我会把 WebAssembly 置于嵌入式使用的某个地方。这再次表明了轮询的重要性。

Florian Gilcher

Ferrous Systems 总经理

感谢您的参与!

我们真诚地希望您能发现我们的报告有用。与您的朋友和同事分享这份报告。

如果您有任何疑问或建议,请发送电子邮件至 surveys@jetbrains.com