Skip to content
This repository has been archived by the owner on Dec 7, 2023. It is now read-only.

Commit

Permalink
improve
Browse files Browse the repository at this point in the history
  • Loading branch information
nikomatsakis committed Sep 8, 2021
1 parent 51685ca commit 9c751b7
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 2 deletions.
5 changes: 4 additions & 1 deletion src/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

## Who developed these principles? Are they "official"?

No -- right now, this is a work-in-progress being developed by nikomatsakis in collaboration with lots of people within the Rust community. When it takes settled shape, it may indeed move to the Rust org as something more official.
No -- right now, this is a work-in-progress being developed by [nikomatsakis], [joshtriplett], and others within the Rust community. When it takes settled shape, it may indeed move to the Rust org as something more official.

[nikomatsakis]: https://github.com/nikomatsakis
[joshtriplett]: https://github.com/joshtriplett

## Why develop these principles?

Expand Down
3 changes: 3 additions & 0 deletions src/how_rust_empowers/reliable.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@
[productive]: ./productive.md
[productivity]: ./productive.md
[supportive]: ./supportive.md
[versatility]: ./versatile.md

## In tension with

Making Rust reliable is most often at odds with making Rust feel [productive] and [supportive]. Reliability is often achieved by "cross checking", where various parts of the system check one another to ensure overall consistency. Cross checks can make it harder to make changes, since the various parts of the system must be brought in sync with one another.

Reliability can also be at odds with [versatility]. Our ability to make something reliable will always be limited. If we restrict people to only building things that whose correctness can be verified, we will limit what they can build.

## Mechanisms

What are some of the ways that we make Rust feel **reliable**?
Expand Down
32 changes: 32 additions & 0 deletions src/how_to_rustacean.md
Original file line number Diff line number Diff line change
@@ -1 +1,33 @@
# How to Rustacean

## [💖 Be kind and considerate](./how_to_rustacean/be_kind.md)

> Building Rust is hard enough without being disrespectful to one another. You don't have to agree, but you do have to be kind and considerate.
## [✨ Bring joy to the user](./how_to_rustacean/bring_joy.md)

> Our top goal is for Rust users to be productive and empowered. We want people to love using Rust and, if they so choose, to love participating in its community.
## [👋 Show up](./how_to_rustacean/show_up.md)

> Bring your expertise and be willing to argue for what you think is right.
## [🔭 Recognize others' knowledge](./how_to_rustacean/recognize_others.md)

> Nobody has a monopoly on good ideas. We are always looking for opportunities to improve our designs and seeking input from those with experience and expertise.
## [🔁 Start somewhere](./how_to_rustacean/start_somewhere.md)

> Finding the perfect design requires iteration. Think big but start small; don't be afraid to change course as you learn more.
## [✅ Follow through](./how_to_rustacean/follow_through.md)

> Say what you will do, do what you say, and speak up if you know you can’t (it’s ok).
## [🤝 Pay it forward](./how_to_rustacean/pay_it_forward.md)

> Project members recognize exceptional potential, intentionally develop new members, and take their coaching role seriously.
## [🎁 Trust and delegate](./how_to_rustacean/trust_and_delegate.md)

> Empowering others means being willing to let them make decisions in the way that they see best.
10 changes: 9 additions & 1 deletion src/what_is_rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,12 @@ Rust is developed and maintained by the members of its [various teams](https://w
Finally, the [case studies](./case_studies.md) section applies both the previous sections to various examples from Rust's history, and shows how the principles can help guide us.

[CoC]: https://www.rust-lang.org/policies/code-of-conduct
[How to Rustacean]: ./how_to_rustacean.md
[How to Rustacean]: ./how_to_rustacean.md

## How can the principles be used?

For the principles to be a success, they need to be more than words on a website. The hope is that they will become something that we actively reference all the time as we go about our work in the Rust org.

As an example, when working through a design tradeoff, it may be helpful to see whether you can phrase the underlying values in terms of named values like [productivity] or [transparency]. The ordering and prioritization may help in resolving the tradeoff. We can also rate designs along these axes, which may help spur useful ideas for how designs can be improved.

When it comes to the [How to Rustacean] section, it's a great guide that we can all use for ourselves. It's also a good idea to look for opportunities to point out when people are doing a good job -- e.g., "great job paying it forward". The principles can also be useful when thinking about prospective members of a team. Can you come up with concrete examples where they exemplified these principles? What about places where they fell short? The principles can be a useful tool for communicating this to people without it feeling like personal criticism.

0 comments on commit 9c751b7

Please sign in to comment.