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

Commit

Permalink
extend faq
Browse files Browse the repository at this point in the history
  • Loading branch information
nikomatsakis committed Sep 8, 2021
1 parent 9c751b7 commit b37298e
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 3 deletions.
11 changes: 11 additions & 0 deletions src/FAQ.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
# ❓ FAQ

## What are these principles?

The Rustacean principles are a set of principles which guide us in building Rust and shaping the Rust open source organization. [Read more here.](./what_is_rust.md#what-are-the-rustacean-principles)

## Who developed these principles? Are they "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

## Are these principles complete?

No! They are still in draft form. We are still iterating on them and are interested in hearing from people who are active in the Rust community about whether they reflect what you love about Rust (and, if not, what might be changed). Another great idea is to try and use these principles to [guide design discussions and questions of team membership](https://rustacean-principles.netlify.app/#how-can-the-principles-be-used) to evaluate how useful they are.

## Why develop these principles?

The goal of these principles is to help us to be more precise as we go about our work in the Rust org. The [Rust empowers by being...](./how_rust_empowers.md) section is primarily intended to help guide discussions about the effects of features on our users. The [How to Rustacean](./how_to_rustacean.md) section is meant to help us in describing the kinds of behaviors that we are looking for when we select Rust team members. This makes it hard for people to know what they ought to do, but it also makes it very hard for us to communicate where improvement is needed.

## How can these principles be used?

These principles can guide us when having design discussions or questions of team membership. [Read more here.](./what_is_rust.md/#how-can-the-principles-be-used).
2 changes: 1 addition & 1 deletion src/how_rust_empowers.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Rust's [overall goal](./goals.md) is to "empower everyone to build reliable and

> We strive to make our tools polished and friendly, and we look for every opportunity to guide people towards success. Part of that is building a community that eagerly shares its knowledge in a welcoming and inclusive way.
## [🔧 Transparent](./how_rust_empowers/transparent.md): "predict and control low-level details"
## [🔧 Transparent](./how_rust_empowers/transparent.md): "you can predict and control low-level details"

> The translation from Rust to underlying machine code is straightforward and predictable. If needed, you have options to control the low-level details of how your application works.
Expand Down
4 changes: 2 additions & 2 deletions src/how_rust_empowers/transparent.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 🔧 Transparent: "predict and control low-level details"
# 🔧 Transparent: "you can predict and control low-level details"

> The translation from Rust to underlying machine code is straightforward and predictable. If needed, you have options to control the low-level details of how your application works.
Expand All @@ -15,4 +15,4 @@ What are some of the ways that we make Rust feel **transparent**?

### No global costs

Rust strives to avoid features that impose global costs (that is, impose a runtime cost even on projects that don't use them). This is a key part of Stroustroup's definition of [zero-cost abstractions](./transparent.md#zero-cost-abstractions), "What you don't use, you don't pay for". This is the mechanism that encourages us to use ownership instead of a garbage collector, for example, since a garbage collector
Rust strives to avoid features that impose global costs (that is, impose a runtime cost even on projects that don't use them). This is a key part of Stroustroup's definition of [zero-cost abstractions](./transparent.md#zero-cost-abstractions), "What you don't use, you don't pay for". This is the mechanism that encourages us to use ownership instead of a garbage collector, for example, since if any part of the code uses a garbage collector, call code can easily pay the price in terms of having to be scanned and so forth.
2 changes: 2 additions & 0 deletions src/what_is_rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

<img src="/image/dancing-ferris.gif" alt="Dancing Ferris" width="300"></img>

A **DRAFT** set of principles guiding Rust development and its open source organization.

## What is Rust?

* A language **empowering everyone to build reliable and efficient software**.
Expand Down

0 comments on commit b37298e

Please sign in to comment.