扩展 Rust 的影响力

2017 年 6 月 27 日 · Carol Nichols

编辑:我们了解到 Google 表格在某些国家/地区无法轻松访问;如果您遇到这种情况,请找到 此文本文件中的应用程序问题,并将答案通过电子邮件发送至 [email protected]

Rust 的 2017 年目标 之一是通过降低学习曲线,让用户更轻松地在 Rust 中提高生产力。我们相信 Rust 具有成为赋能技术的潜力,可以赋予那些传统上不会进行系统编程的人以信心,让他们能够自信地进行系统编程。但这里存在一个启动问题:如果我们想接触到新用户,就不能仅仅依靠现有社区的技能和观点。因此,我们决定进行一项实验,需要您的帮助!

我们正在寻找 Rust 现有社区内外的人员,他们来自 Rust 世界和更广泛的技术世界中代表性不足的群体和背景。我们希望与您合作,使 Rust 成为一个更具包容性、更易于使用和更具影响力的项目,同时支持您实现个人目标。

我们有一支 Rust 社区领导团队,可以与您配对。这个团队并不特别多元化;这就是目前 Rust 社区的现状。我们承认我们还有很多工作要做,这项倡议就是其中的一部分。我们都致力于提高 Rust 社区的多样性。

Rust 团队领导者在各个领域提出了项目,例如改进 Rust 本身、开发 Rust Web 工具以及提高可用性。我们正在寻找各种经验和技能!我们也对您自己的项目想法持开放态度。

我们要求您在 8 月 7 日至 11 月 6 日之间(或这些日期内的更短时间段)每周投入 3-5 个小时。每个项目的具体范围很灵活,取决于您的时间安排和目标。我们希望您至少每周进行一次进度总结,并在项目结束时提交成果。成果将根据项目而有所不同;例如,它可能是拉取请求、建议、文档或教程。

为了感谢您的参与,Mozilla 将承担您选择的 Rust 大会(以下列出)的机票、酒店和门票费用。

  • RustConf,8 月 18-19 日,美国俄勒冈州波特兰
  • RustFest,9 月 30 日至 10 月 1 日,瑞士苏黎世
  • Rust Belt Rust,10 月 26-27 日,美国俄亥俄州哥伦布

您的搭档将为您提供必要的背景和工具,帮助您对 Rust 的重要领域产生影响。您还可以访问一个私人 Slack,与参与此倡议的其他参与者和 Rust 团队成员进行交流。我们计划重点介绍这项实验的结果,并明确认可您的贡献;我们高度重视这些项目以及您对它们的贡献!

我们特别希望从技术领域和 Rust 社区中代表性不足的群体获得见解,这些群体包括女性(顺性别和跨性别)、非二元性别者、有色人种、非英语母语人士、在人生后期学习编程的人(年龄较大,或仅在大学学习,或在职业生涯中期转型时参加编程训练营)、残疾人或学习风格不同的人。

请在 7 月 18 日之前通过此表格申请!(所有时区当天结束时)。我们将在 8 月 1 日之前通知所有申请人。

如有任何问题,请通过电子邮件 [email protected] 或 Twitter @carols10cents 联系 Carol Nichols。


项目

1. Rust 文档和代码浏览工具的用户体验

Rust 搭档:Nick Cameron 和 Steve Klabnik

我们正在寻找具有图形设计、Web 前端工程或用户体验背景的人员,来负责 文档代码浏览工具 的前端/UI/UX/设计。这些工具具有 Web 前端(HTML、CSS、Ember 或 React)和 Rust 后端,并且这些工具必须深入了解 Rust 源代码。这个项目将是一个很好的机会,可以将设计和前端领域的经验应用到实际中,同时让您有机会详细了解 Rust。我们正在寻找创新的想法,通过改进使用文档和浏览代码的体验,让使用 Rust 和用 Rust 编写的库变得更加容易。

这个项目可能会选择多个申请人,他们将作为一个团队一起工作。

谁应该申请这个项目

  • 具有图形设计、Web 设计、Web 前端开发或用户体验背景
  • 有兴趣改进面向开发人员的文档和工具的可用性
  • 有兴趣详细了解 Rust 语法和语义
Nick Cameron

关于 Nick Cameron:我是 Rust 核心团队成员,领导 dev-tools 团队。我负责许多工具,包括 Rustdoc、Rustfmt、Rust 语言服务器和 Rust 编译器。我希望让 Rust 开发人员工具变得很棒,而用户体验是其中的关键部分。我希望 Rust 改变世界(或者至少改变编程世界),而没有让 Rust 语言和社区更容易被更多人访问,我们就无法做到这一点。

Steve Klabnik

关于 Steve Klabnik:我在 Rust 之前曾在 Ruby on Rails 上工作,我喜欢 Rust 的原因之一是,作为项目,我们致力于帮助人们将 Rust 作为他们的第一门低级语言学习。因此,从某种意义上说,我认为这是对那段经历的延续。

然而,同样地,许多低级程序员并不是 Web 开发人员。这意味着 Rust 的许多 Web 东西……并不完全出色。由于我来自 Web 世界,我正在努力帮助;但我只是一个人!不仅如此,我更像是一个后端人员,因此我个人缺乏前端方面的经验。

因此,我认为这个项目是一个典型的技能交换:您带来 Web 技术方面的专业知识,我们带来 Rust 方面的专业知识,每个人都学习,我们的代码也变得更好!

2. 向 Clippy 开发人员工具添加代码 Lint

Rust 搭档:Manish Goregaokar

Clippy 是 Rust 的 Lint 工具。它是一个静态分析工具,可以发现代码中的问题并将其报告给开发人员,通常还会提供建议的修复方法。这个项目将涉及添加更多此类 Lint 以及改进现有 Lint,使其更具帮助性和用户友好性。我们非常乐意听取您的想法,并希望您在以下方面提供帮助

  1. 改进和修复现有 Lint 中的错误。
  2. 添加 Lint,重点帮助人们从特定语言过渡到 Rust
  3. 充当教程的 Lint,介绍概念并教授代码改进
  4. 您的想法!

谁应该申请这个项目

  • 在其他语言中使用 Lint 工具的经验(例如:Ruby 中的 rubocop、JavaScript 中的 jslint、Python 中的 pylint、Coverity 等)
  • 有兴趣改进新的 Rust 开发人员体验
  • 有兴趣学习如何改进和创建 Lint
Manish Goregaokar

关于 Manish Goregaokar:我是 Mozilla 的研究工程师,负责 Servo。我非常关心改进工作流程和工具,尤其是在新人体验方面。

我认为开源是提高编程能力的最佳方式之一,为此,我关心的是让开源更易于访问和贡献,无论通过系统改进还是个人指导。

3. 提高 rust-lang.org 和/或 crates.io 设计的易用性

Rust 搭档:Aaron Turon

我非常乐意与一两个人合作,共同设计 我们的主网站 和/或 crates.io。这两个网站都可以在提高 Rust 的易用性方面做出重大改进,而且我有很多想法(和抱怨)可以作为起点。如果成功,还有可能从这个项目中启动一个全新的设计子团队。

这个项目可能会选择多个申请人,他们将作为一个团队一起工作。

谁应该申请这个项目

  • 具有图形设计、Web 设计、信息架构或用户体验背景
  • 有兴趣提高 Rust 的易用性
  • 有兴趣调查访问主网站和/或 crates.io 的访问者的动机
Aaron Turon

关于 Aaron Turon:我是 Rust 核心团队成员,负责管理 Mozilla Rust 团队,目前领导库、基础设施和 Cargo 团队。在技术方面,我最关心的是语言设计和端到端用户体验。在人员方面,我喜欢培养共识、组建团队和赋予人们权力。我和我的伴侣以及两个女儿住在俄勒冈州波特兰。

在开源社区工作让我一次又一次地看到,各种观点和背景的多样性是多么重要。我希望通过投资像这样的倡议,我们可以欢迎更多的人加入,并赋予他们在 Rust 社区中的权力。

4. 改进 intorust.com 上的视频教程

Rust 搭档:Niko Matsakis

intorust.com 是一个网站,上面收集了旨在以简单易懂的方式教授 Rust 关键概念的屏幕录像。我非常乐意与某人合作,共同扩展材料以涵盖更多 Rust 部分,并确保它对尽可能广泛的受众来说都是易于理解的。另一个有趣的途径可能是扩展网站,使其也涵盖背景主题,例如堆栈和堆的作用。

谁应该申请这个项目

  • 具有教学或辅导背景
  • 具有创建视觉教学工具(如图表或绘图)的背景或兴趣,这是一个加分项
  • 有兴趣学习 Rust 概念并将所学知识教给其他人
Niko Matsakis

关于 Niko Matsakis:我是 Rust 核心团队成员,也是 Rust 语言和编译器团队成员。我主要关注语言本身的设计和实现。我希望尽我所能,让尽可能多的人更容易学习 Rust。我认为实现这一目标的最佳方法是与具有不同背景和经验的人合作,因为这会影响他们的学习方式。

5. 为 Rocket 和 Diesel(Rust Web 框架故事的一部分)编写教程

Rust 搭档:Sean Griffin

我正在寻找一位在其他 Web 框架中拥有 Web 开发经验的人,来帮助改进 Rust 在 Web 开发领域框架的文档。我很乐意改善使用 Rocket(一个 Web 框架)和 Diesel(一个 ORM)的全新用户体验。这可能包括编写教程、创建屏幕录像、制作示例应用程序或改进 API 文档。

谁应该申请这个项目

  • 具有教学或辅导背景
  • 使用其他语言编写的 Web 框架的经验
  • 对学习如何使用 Rust 编写 Web 应用程序以及将所学知识传授给其他人的兴趣
Sean Griffin

关于 Sean Griffin:除了我的 Rust 工作之外,我还是 Ruby on Rails 的维护者之一。Rails(以及 Web 开发)的一大优点是它确实帮助降低了入门门槛。我认为 Rust 可以产生类似的影响(无论是针对低级编程,还是作为高级语言的竞争者)。然而,目前 Rust 的学习曲线臭名昭著。从尽可能多的角度改进它,似乎是帮助再次公平竞争的最佳方式。

6. 扩展文学编程工具 Tango

Rust 合作伙伴:Felix Klock

我正在寻找对 "程序作为文学" 感兴趣的人,帮助我扩展 tango(一个用于 Rust 的文学编程工具),以便它可以用于演示和幻灯片以外的其他用途。如果您有编写关于自己代码的元评论的经验,并为教学目的记录其工作原理,那么您可能就是我正在寻找的人!查看 [此 markdown 文件](https://github.com/pnkfelix/mon-artist/blob/a3388c11e8b1910cc4eb4c31bd1540a46851618b/src/lit/s rc/format.md),tango 可以将其转换为可执行的 Rust 代码文件,以了解 tango 的功能。您可以在 tango 问题 页面中看到一些扩展的想法。

谁应该申请这个项目

  • 写作、教学或文档方面的背景
  • 对改进创建和显示代码文档的工具感兴趣,并有自己的看法
Felix Klock

关于 Felix Klock:我是 tango 的主要开发者(也是 Rust 编译器和语言团队的成员)。我积极使用 tango 来编写关于 Rust 的演示文稿幻灯片。我假设文学 Rust 代码可以作为 Rust 本身的广告,并且希望弄清楚如何使该工具对现实世界的板条箱更有用。

更一般地说:我长期以来一直坚持认为计算机可以成为强大的 教育工具。Rust 为那些勇敢的探险家提供了一个独特的容器,让他们深入并超越机器之上抽象层的层次。我希望 Rust 最大限度地提高其 可访问性,以便它不会陷入思想的回声室,最终成为只有精英巫师才能使用的技术,从而错失了这种教育机会。

7. 寻找板条箱生态系统中缺失的部分

Rust 合作伙伴:Andrew Gallant

我感兴趣与某人合作,发现板条箱类型中可能存在哪些差距。这个项目将首先涉及用您最熟悉的语言或框架编写一个小应用程序。然后,我们将尝试将该应用程序移植到 Rust,并跟踪哪些库缺失或哪些库的可用功能缺失。然后,Rust 社区可以利用您的发现来填补这些空白,使 Rust 在更多场景中可用。

谁应该申请这个项目

  • 使用库在其他编程语言中构建应用程序的经验
  • 对学习如何将应用程序转换为 Rust 感兴趣
  • 对研究和记录库具有的或不具有的功能感兴趣
Andrew Gallant

关于 Andrew Gallant:我是 Rust 库团队的成员,我在业余时间使用 Rust。我对信息检索、快速文本搜索以及普遍改进 Rust 生态系统非常感兴趣。我既受个人对技术主题的兴趣驱动,也受教学的愿望驱动。除了我对 Rust 等语言的个人技术兴趣之外,我真的很喜欢参与这个项目,因为它提供了一个向他人传授我所学知识的机会。我特别感兴趣的是改善尽可能多的人的学习成果,并渴望有机会将这种机会扩展到我可能无法接触到的其他人。我和妻子住在马萨诸塞州中部。

8. 寻找构建命令行界面 (CLI) 程序体验中缺失的部分

Rust 合作伙伴:Kamal Marhubi

我发现 Rust 是编写小型命令行工具的绝佳语言,但我认为它可以做得更好。我很乐意与想要编写 CLI 程序的人合作,或者与想要将他们的 CLI 程序移植到 Rust 的人合作。几乎肯定存在粗糙的边缘,而合作将是发现这些边缘并改进每个人工具的绝佳方式。

谁应该申请这个项目

  • 使用其他语言构建和使用具有命令行界面的工具的经验
  • 对学习如何编写或将 CLI 程序转换为 Rust 感兴趣
  • 对研究和记录库具有的或不具有的功能感兴趣
Kamal Marhubi

关于 Kamal Marhubi:我使用 Rust 已经有一年半了。我帮助维护 nix,这是一个为 unix 系统 API 提供 Rust 接口的库。我还为 rustfmt、rustup 和标准库做出了贡献。


我们很高兴在 7 月 18 日之前收到您的 申请!我们将在 8 月 1 日之前通知所有申请人。