热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Rust开发者的2019年

本文来自alabulei1的翻译投稿:http:www.secondstate.infoblogrust-2019?fromsinglemessage最近Rust社区发表了针对Ru

本文来自 alabulei1 的翻译投稿:http://www.secondstate.info/blog/rust-2019?from=singlemessage

最近 Rust 社区发表了针对 Rust 开发者的调查问卷结果,我们翻译了这份报告,方便中国开发者能够更好地了解 Rust 开发者的2019年。原文:
https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html

我们很高兴介绍我们对 Rust 社区的第四次年度调查的结果。在深入分析之前,我们要对所有花时间填写这份问卷的人大声说谢谢。你们对 Rust 的年复一年持续改善至关重要!

让我们从调查对象开始。

调查受众

该调查问卷以14种不同的语言提供,我们收到了3997份回复。

这是回复的语言分布。

  • 英语:69.6%

  • 中文:10.8%

  • 德语:4.3%

  • 法语:3.3%

  • 日语:3.0%

  • 波兰语:1.2%

  • 葡萄牙语:1.2%

  • 西班牙语:0.9%

  • 韩文:0.8%

  • 意大利语:0.6%

  • 瑞典语:0.5%

  • 越南语:0.2%

在2019年的调查中,有82.8%的受访者表示他们使用过 Rust,有7.1%的受访者表示目前没有使用,但过去曾使用过 Rust,有10.1%的受访者表示从未使用过 Rust。

如果将其与2018年的调查结果进行比较(其中75%的受访者表示他们使用 Rust,8%的受访者表示目前没有使用,但过去曾使用过 Rust,而8%的受访者表示他们从未使用过Rust),2019年,更多的受访者正在使用 Rust。

回顾Rust 2018

在2018年12月,我们发布了 Rust 2018版本- Rust 1.31.0。在2019年的调查中,有92%的 Rust 用户表示他们正在使用新版本。85%的人表示升级到 Rust 2018 版本很容易。

接下来,我们要求用户对Rust语言的关键方面的改进进行评分。

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

Rust 开发者的 2019 年

总体而言,Rust 语言的许多方面在2018年的版本中被认为“更好”。

会议与社区

我们注意到英语和其他语言的结果之间存在一些差异。非英语的调查组与英语调查组在大多数问题和关注点是相同的。但是,在非英语国家中,有一个趋势很突出:希望使用其母语或接受调查的语言编写 Rust 文档。在中文组中,这一点尤其明显,尽管这很可能存在代表性较高的原因。

我们正在使用“ Translation” GitHub 问题标签跟踪正在进行的翻译工作。

我们收到了很多关于如何改善 Rust 以及使 Rust 更受欢迎的反馈。我们无法在此处将所有内容包括在内,下面是一些引人注意的反馈摘要。

人们通常要求获得更多有关 Rust 的学习材料。就专业知识而言,主要是要求初学者和中级水平的材料。这些请求中的大部分明确要求了视频内容。

人们提到参与其中的常见障碍是他们有社交焦虑和可及性。提到的常见原因之一是阅读障碍者难以阅读某些资源。

以下是对“我们可以采取什么措施使您感到更受欢迎?”这一问题的一些具体答复。
 

  • 我觉得自己经验不足,缺乏技巧,无法加入Rust社区

  • 宣传更多的新人贡献/参与方式

  • 更有组织的指导,在线课程

  • 提供有关如何为编译器做出贡献的****。我很乐意贡献自己,但是我感到被吓到了

  • 为新手找到资源,让他们了解 Rust 在开源项目中的使用情况并不容易,以便他们在学习语言时能看到动作。

  • 为纯初学者提供更多的讲解简单 Rust 以及编码概念的教程/博客

  • 更多的中级教程,我们已经有一百万本“ Rust简介”。

  • 较小的帮助人群,例如,社交焦虑让人很难在 Discord 中交流

  • 在后欧盟时期,不要举行同步会议。更少的同步会议或/和更一致地发布和汇总团队会议的会议记录。

谁在使用Rust,其用途是什么?

Rust 开发者的 2019 年

Rust 的日常使用量略有上升,达到27.63%(去年略低于25%,2017年为17.5%)。每日或每周使用量也继续略有上升的趋势。今年为68.52%,去年为66.4%,2017年为60.8%。

Rust 开发者的 2019 年

我们还询问了用户如何评价 Rust 水平。在“7”附近有一个明显的峰值。

Rust 开发者的 2019 年

为了更深入地了解这一点,我们将用户 Rust 的自我评价与他们使用 Rust 的时间联系起来。

Rust 开发者的 2019 年

在更大的范围内,我们研究了全职使用 Rust 的用户在其组织中倾向于拥有哪些职位(调查受访者可以选择多个)。

毫无疑问,到目前为止,Rust 用户最常见的职位是程序员/软件工程师。

Rust 开发者的 2019 年

为了获得更多的背景信息,我们要求 Rust 调查的受访者确定他们从事的行业。

对于全职使用 Rust 的用户,到目前为止,最常见的行业是后端 Web 应用程序。

Rust 开发者的 2019 年

大多数 Rust 项目(43%)是1,000-10,000行代码。中型到大型(总代码行超过1万行)的 Rust 项目继续呈上升趋势。他们从2016年的8.9%增长到2017年的16%,然后到2018年的23%,再到2019年的34%。

为什么不使用Rust?

受欢迎的 Rust 社区有一部分也正在与非用户接触。

Rust 开发者的 2019 年

当我们询问为什么有人停止使用 Rust 时,最常见的回答是“我的公司不使用Rust”。这表明 Rust 采用仍然是最大的原因。之后,学习曲线、缺少所需的库,因切换到 Rust 而减慢了速度以及缺少 IDE 支持是用户停止使用 Rust 的最常见原因。

Rust 开发者的 2019 年

对于表示以前从未使用过 Rust 的用户,大多数人表示“我还没有学会 Rust,但是我想”或“我的公司没有使用 Rust” 。这再次指出采用是主要障碍。

为了获得更多的背景信息,我们还研究了非 Rust 用户认为最与他们角色匹配的职位。

Rust 开发者的 2019 年

与 Rust 用户一样,到目前为止,最常见的头衔是程序员/软件工程师。

Rust 开发者的 2019 年

与 Rust 用户一样,到目前为止,最常见的行业是后端 Web 应用程序。

Rust 开发者的 2019 年

我们还询问了用户什么会导致他们更频繁地使用 Rust。大多数人表示,如果公司采用它,Rust有更多需要的库,并且 IDE 支持更好,他们将更多使用 Rust。这些最常见原因指出需要改善学习曲线和互操作性。

由于采用似乎是阻止某些受访者使用Rust的最大问题,因此让我们更深入地研究它。

Rust 采用,近距离观察

首先,我们询问如何才能提高 Rust 的采用率。

Rust 开发者的 2019 年

一些用户给出了具体示例:

  • “尽可能平滑的学习曲线,对于一个甚至要在4到6周内就能产生成果的小企业来说,这是一个很大的问题”

  • “更高的市场渗透率”

  • “更稳定的库”

  • “像 Rails,Django 和 Phoenix 这样的全栈 Web 框架”

  • “更好的文档,更多示例,推荐使用什么Crate”

  • “更多地强调它是 C 或 C ++ 的更安全替代品(通常是默认值)。”

  • “改善编译时间。编译开发的构建速度至少与 Go 一样快,这是我们考虑 Rust 的关键。(发布构建可能很慢。”

  • “更好的平台支持”

  • “安全和性能,具有成本效益的和“绿色”(低碳足迹)语言”

  • “针对 ARM 的嵌入式开发”

  • “更好的 GUI 框架,类似于 Qt 或通过绑定直接使用 Qt 。”

多数人表示,Rust的成熟度,例如更多的库、完整的学习资源以及更成熟的生产能力,将使 Rust 更具吸引力。

让我们从对更成熟的库这个需求开始,仔细研究每一个。

当我们询问用户他们认为哪些库对Rust生态系统至关重要时,以下是十大答复:

  • serde

  • rand

  • tokio

  • async

  • clap

  • regex

  • log

  • futures

  • hyper

  • lazy_static

Rust 开发者的 2019 年

我们还询问了用户使用了多少1.0版或更高版本的依赖项。

  • 0.8% 的人表示“全部”

  • 6.7% 的人表示“最多”

  • 65.9% 的人表示“有”

  • 5.2% 的人表示“无”

  • 21.4% 的人表示“我不知道”

IDE 和工具,近距离观察

IDE 对 Rust 的支持也被认为是采用的障碍。

Rust 开发者的 2019 年

当我们询问用户使用什么编辑器时,目前为止最受欢迎的是 Vim 和 VSCode ,其次是 Intellij。

我们还询问了用户使用了哪些 IDE 设置:

  • 43.3% 表示是 RLS

  • 21.7% 表示是 Intellij

  • 15.2% 表示是 Rust-analyzer

  • 12.4% 表示否(或CTAGS)

  • 4.2% 表示只有 Racer

Rust 开发者的 2019 年

至于用户开发的平台,Linux 和 Windows 继续占主导地位。

  • 55% 的 Rust 用户在 Linux 上开发

  • 24% 在 Windows 上进行开发

  • 23% 的人在 macOS 上开发

我们发现绝大多数用户使用的是当前稳定的 Rust 版本(63%)。应该注意的是,调查允许受访者为其使用的Rust版本选择多个选项。
 

  • 30.5% 使用 nightly 版本

  • 2.5% 使用 Beta 版本

  • 63% 使用当前的稳定版本

  • 3.1% 使用先前的稳定版本

  • 0.6% 使用自定义的 fork

  • 0.3% 不知道

令人惊讶的是,在工作流程中使用 Nightly 编译器的用户数量下降了20%。去年,这一比例超过了56%。

学习曲线,近距离观察

Rust 以陡峭的学习曲线而闻名

Rust 开发者的 2019 年

大约37%的 Rust 用户在不到一个月之内就能有效率地使用它,这与去年的百分比(40%)相差无几。超过70%的人在第一年内能达到有效率地使用。不幸的是,与去年一样,很多用户仍在挣扎,21%的用户表示尚未熟练掌握 Rust。

Rust 开发者的 2019 年

有趣的是,我们选择了对自己 Rust 水平尚未满意的用户子集,并询问了他们对自己 Rust 专业水平的评价。结果是对自己水平未满意用户的 Rust 专业水平在低至中级,而这些群体需要我们在学习材料,文档方面提供最大的支持。

互操作性,近距离观察

多年来,一些用户表达了对 Rust 与其他语言的互操作性的渴望。

Rust 开发者的 2019 年

当我们询问用户他们希望与 Rust 进行互操作的语言时,答案范围很广,但是 C 占主导地位,R 紧随其后(有点令人惊讶)。要注意的是,受访者可以针对此问题选择一种以上的语言。这些百分比基于总回答。

Rust 开发者的 2019 年

至于使用何种平台实现其为应用程序定位的目标,Linux 仍然是第一选择:36.9%,Windows 则是第二选择:16.3%。紧随Windows 之后的是 macOS 和 WebAssembly,它们各占14%。我们还看到越来越多的用户将 Android 和 Apple iOS 作为目标。

结论

总体而言,我们的用户表示,生产效率仍然是他们工作的重要目标(无论是否使用Rust)。结果表明,阻碍使用 Rust 的首要问题是采用。学习曲线仍然是一个挑战,我们似乎最需要提高对中级用户的关注度,库和工具也是如此。

感谢所有参与此调查的人。这些结果对我们很有帮助,特别是我们如何改善 Rust 语言和整个 Rust 生态系统。我们期待在2020年及以后继续为您服务!


推荐阅读
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • 在操作系统中,阻塞状态与挂起状态有着显著的区别。阻塞状态通常是指进程因等待某一事件(如I/O操作完成)而暂时停止执行,而挂起状态则是指进程被系统暂时移出内存,以释放资源或降低系统负载。此外,本文还深入分析了`sleep()`函数的实现机制,探讨了其在不同操作系统中的具体实现方式及其对进程调度的影响。通过这些分析,读者可以更好地理解操作系统如何管理进程的不同状态以及`sleep()`函数在其中的作用。 ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • 深入RTOS实践,面对原子操作提问竟感困惑
    在实时操作系统(RTOS)的实践中,尽管已经积累了丰富的经验,但在面对原子操作的具体问题时,仍感到困惑。本文将深入探讨RTOS中的原子操作机制,分析其在多任务环境下的重要性和实现方式,并结合实际案例解析常见的问题及解决方案,帮助读者更好地理解和应用这一关键技术。 ... [详细]
  • 针对给定的大小为 n 的整数数组,本研究探讨了如何找出所有出现次数超过 n/3 的元素。通过深入分析多数投票算法,提出了一种高效的解决方案,不仅显著提升了计算效率,还保证了算法的准确性和鲁棒性。 ... [详细]
  • Android开发常见问题汇总(含Gradle解决方案)第二篇
    本文继续深入探讨Android开发中常见的问题及其解决方案,特别聚焦于Gradle相关的挑战。通过详细分析和实例演示,帮助开发者高效解决构建过程中的各种难题,提升开发效率和项目稳定性。 ... [详细]
  • CatchThatCowTimeLimit:50002000MS(JavaOthers)MemoryLimit:3276832768K(JavaOt ... [详细]
  • OpenCV 2.4.9 源码解析:级联分类器的错误率与尺寸分析 ... [详细]
  • 1、软件包下载:下载地址:   https:github.comceres-solverceres-solverreleases  如果Github下载速度慢可在百度云盘下载下载地 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
author-avatar
gete
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有