Rust

分享:

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

您如何使用 Rust?

Florian Gilcher

Ferrous Systems 总经理

我喜欢这些数字。Rust 正在不断发展,这里的相对数字保持不变意味着有更多的工作机会,也意味着有一大群新手可以受聘从事这些工作。我对需要填补空缺职位的人的建议:放弃“X 年 Rust 经验的要求”,您会发现一批才华横溢的业余爱好者,他们通常已经是专业程序员了。这是一个健康的发展渠道。

Luca Palmieri

Mainmatter 首席工程顾问

随着生产部署数量的增加,Rust 在工作场所中取得了稳步进展。与此同时,对 Rust 职位的需求量仍明显高于空缺职位数量。对于希望获得其首个 Rust 职位的开发者来说,这并不理想,但这对雇主来说绝对是个好消息:每天都有很多人才准备抓住使用 Rust 的机会。

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

这个问题的答案表明,Rust 社区内部存在着充满活力的平衡和多元化。

令人鼓舞的是,越来越多的 Rust 开发者能够通过 Rust 获得报酬。2023 年与 2022 年相比,我们发现一年内变化幅度达 11 个百分点。

虽然只有五分之一的用户在工作中使用 Rust 可能看起来令人沮丧,但这与大量用户学习该语言并不矛盾。当很多人对这门语言不熟悉时,这个数字很难超过 50%。

我认为人们在个人编外项目中使用 Rust 是非常健康的。这意味着人们选择 Rust 作为一种创意出口。

您使用 Rust 有多长时间了?

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

向新程序员的巨大倾斜表明社区正在呈指数级增长。

社区负责人需要记住的一件事是,超过 75% 的 Rust 用户对该语言拥有不到一年的经验。

我希望看到生态系统中更多的重大项目拥有越来越多的贡献者。目前有许多重要的 crate 由单个开发者维护。

Luca Palmieri

Mainmatter 首席工程顾问

Rust 的用户保留率不错:它在 StackOverflow 上连续七年被评为最受欢迎的编程语言,这意味着学习 Rust 的开发者希望继续使用它。

与此同时,我们可以看到新开发者流入 Rust 生态系统的势头依然强劲:超过一半的受访者刚刚开始使用 Rust(不足 6 个月)。

高保留率和新用户的健康流入对于整个生态系统来说是个好消息!

Florian Gilcher

Ferrous Systems 总经理

这是个好消息,尤其对于新用户来说。如果您现在开始使用 Rust,那么与其他语言相比,您很容易成为该领域的专家,因为在其他语言中,每个团队都有一位拥有 10 年或更长经验的同事。现在是学习 Rust 的最佳时机!

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

Luca Palmieri

Mainmatter 首席工程顾问

超过一半的受访者正在利用 Rust 以及其他技术处理多语言项目。根据编程语言的不同,我们可以对主要模式进行假设:一个由 Rust API、原生扩展 (Rust+Python)、混合语言项目 (C/C++) 以及微服务(Go、Python、C#、Java 等)之间的在线交互支持的 JavaScript/TypeScript 前端。

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

很高兴看到 Rust 与其他语言和睦相处。我可以在这里看到为 Web 后端(JS/TS、SQL)和 CLI(shell 脚本语言)使用 Rust 的影响。

Rust 被用来扩展 JVM 语言,或至少与 JVM 语言结合使用,以及在较小程度上与使用 CLR (C#) 构建的语言结合使用,这是一个非常有趣的迹象。我预计,随着商业化使用的增多,确保 Rust 能够在编译/构建多种语言的构建系统中良好运行的压力将会越来越大。

您是从哪种编程语言迁移到 Rust 的?

Florian Gilcher

Ferrous Systems 总经理

多年来,以上统计数据的总结一直保持不变:Rust 过去是一种语言,现在仍然是一种语言,它不仅迎合系统编程人群,而且具有更广的使用范围!

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

哇!“它没有取代任何编程语言”的比例比我预期的要高得多,可能是 10 倍或更多。

这是一个好迹象,表明 Rust 变得越来越容易使用。但这增强了我的个人信念,即作为一个社区,我们需要更好地教授 Rust。

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

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

我本以为 WebAssembly/WASI 会出现在这里,但 22% 比我想象的要高得多!

深入研究 WebAssembly 支持的互操作模式会很有意思。这是讲的使用用户提供的以任意语言编写的插件来扩展 Rust 代码库吗?或者我们是否正在考虑用 Rust 来编写由其他应用程序运行的组件?或者我们是否看到 Spin/Fermyon 实验的成功,利用以不同编程语言编写的 WebAssembly 模块构建应用程序?

Luca Palmieri

Mainmatter 首席工程顾问

Rust 用于 Web 后端!

使用 FFI 的项目比例有所下降,这很有意思。

我期待看到 WebAssembly 的份额变得越来越大。Wasm 模块为供应链攻击提供了强大的屏障,这是 Rust 开源生态系统目前非常容易受到攻击的领域。

Florian Gilcher

Ferrous Systems 总经理

实践中使用的集成选项的多样性令人震惊。此外,考虑到大多数项目都有某种集成组件,我希望看到更多的人关注 Rust 与其他系统的广泛集成。

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

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

真正令人惊讶的是,商业选择如此之少。我赞赏 JetBrains 多年来对 Rust 的积极支持。

Florian Gilcher

Ferrous Systems 总经理

很高兴看到这两个主要编辑器选项都在蓬勃发展。rust-analyzer 似乎吞噬了已停止使用的 RLS/Racer 的份额,而 IntelliJ Rust 仍然是那些想要集成体验的用户的默认选择。

Luca Palmieri

Mainmatter 首席工程顾问

一年前,rust-analyzer 加入 Rust 大家庭,正式取代 RLS 成为“官方”语言服务器,这是两年多前开始的一个过程的顶峰。调查证实,RLS 的用户群终于改用 rust-analyzer,但它也提醒我们:迁移整个生态系统是一个复杂而缓慢的过程,而无论替代方案有多优秀以及部署压力/协调程度如何。

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

您觉得 IDE 中最急需什么 Rust 功能?

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

在仔细了解这个功能清单后,我对 IDE 有了更多期待!我也对生存期可视化充满希望,但我想知道这在复杂的情况下是否会有所帮助。它可能最终成为另一种我需要学习解释的迷你语言。

过程宏的评级之高给我留下了深刻印象。我没有意识到有这么多人在编写自己的过程宏!

JetBrains 可以提供的一个方面是类似于 GitHub Codespaces 的体验。我真的很喜欢使用云桌面,但是我总是担心价格。

Luca Palmieri

Mainmatter 首席工程顾问

我们从积极的方面开始:三分之一的受访者对 IDE 中 Rust 支持的现状感到满意。太棒了!

不过,也不全是好事。我们需要做更多事情来帮助用户应对 Rust 特有的方面,例如生存期。过程宏是一个持续的挑战:由于它们的实用性,它们在复杂的代码库中无处不在,但在广泛使用时,它们会显著降低 IDE 体验。

一旦这些核心语言结构被很好地覆盖,我将很高兴地看到,IDE 会扩展到更专业的用例中(例如,对特定 Web 框架的内置支持)。

您使用哪种(哪些)构建系统编译 Rust?

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

6% 的受访者使用 Make 进行构建!哇,有些人真的很喜欢坚持使用旧工具。我注意到开发者的一件事是,他们非常喜欢控制。

Luca Palmieri

Mainmatter 首席工程顾问

毫无疑问,Cargo 在 Rust 项目中占据主导地位。

您通常如何调试 Rust 代码?

Luca Palmieri

Mainmatter 首席工程顾问

与去年相比,整体没有太大变化:println! 调试的准入门槛最低,并且在受访者中仍然是领先的技术。我们确实在工具方面存在缺口,但我认为这并不是全部:我们也存在教育缺口。教人们如何利用现有调试工具的资料少之又少。

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

使用 println! 并不丢人(为了好听,您可以称之为跟踪调试)。但令人高兴的是,IDE 开发者投入了大量精力来使真正的调试非常容易使用。学习使用调试器来分步执行程序可以真正提高工作效率。

Florian Gilcher

Ferrous Systems 总经理

我对这种情况感到沮丧。我认为可以实现更好的调试体验,而 IDE 似乎是实现这一点的好方法。然而,我发现这种方法多年来一直止步不前。这表明“仅打印到控制台”仍然是最受欢迎的选项。

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

Luca Palmieri

Mainmatter 首席工程顾问

在 Rust 项目中使用分析器的开发者数量急剧增加!

这几乎完全是因为 IDE 捆绑分析器的使用率提高:当我们强大的工具变得容易使用时,开发者就会利用它们。

不过,我们还有很多工作要做。我们应该能够在我们的生产环境中轻松地分析应用程序,但是我们离出色的开发者体验还有很长的路要走。

Florian Gilcher

Ferrous Systems 总经理

捆绑分析器的相对受欢迎程度验证了我的一般假设,即分析通常不会进行,因为它无法轻易访问。

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

Luca Palmieri

Mainmatter 首席工程顾问

这就是我喜欢调查的原因 – 它们利用原始数据的力量挑战主流言论。

在大多数人的脑海中,Rust 与“系统编程”相关,但现实情况要微妙得多:38% 的受访者将其用于 Web 开发,这与 Rust 对于这个用例来说“过于夸张”或“太难了”的言论相背。我坚信这是 Rust 的下一个大趋势,通过数据看到这种预感得到证实将是一件有趣的事情。

Florian Gilcher

Ferrous Systems 总经理

我很高兴看到,随着 Rust 的不断发展,它在嵌入式/物联网中的使用仍然保持在同一水平。对我来说,今年的惊喜是桌面应用程序的使用量在增加 – 总有一些数字与您的直觉不符。这些数字之间没有太大变化,这表明一个相对成形和稳定的生态系统正在朝某个方向发展。

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

看到种类繁多的项目真是令人精神振奋。我喜欢这种语言的一点是,它的安全保障让人们有信心在以前无法进入的领域进行实验。

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

Tim McNamara

Accelerant.dev 创始人,《Rust in Action》作者

这里的多样性深深地吸引了我。我本以为服务器端 Linux 会更高,远远超过 90%。我认为这与众多用户使用 Rust 构建 CLI 以及大多数开发者在爱好和编外项目中使用它有关。

嵌入式开发者的比例似乎很高。我认为嵌入式是一个相当小的利基市场,但很明显,有一大群人在不依赖于操作系统的项目中使用 Rust。

Florian Gilcher

Ferrous Systems 总经理

同样,这也不足为奇。较为保守的企业持续采用 Rust 增加了 Windows 作为目标的相关性。

感谢您的参与!

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

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