development_basics: Add Rust to the list of programming languages

Change-Id: I7c66175fa612f82c99513a38f9d8b2092335a31f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/docs/+/2841868
Commit-Queue: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Allen Webb <allenwebb@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: George Burgess <gbiv@chromium.org>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
diff --git a/development_basics.md b/development_basics.md
index 800e0ba..29c84e8 100644
--- a/development_basics.md
+++ b/development_basics.md
@@ -34,13 +34,29 @@
 
 ## Programming languages and style
 
+### Rust
+
+The newest userspace code in Chromium OS is usually written in Rust to take
+advantage of its improved security and ergonomics. Being a memory safe language
+with a runtime overhead similar to C/C++ makes it uniquely suited for new code
+with reduced incidence of security and stability bugs.
+
+The Rust style guide is currently in development by the Chromium OS Authors, but
+it basically follows that of Rust's default rustfmt configuration. Additionally
+clippy is used a linter, usually with certain lints suppressed. For an example
+of what lints might be disabled, look at the [set from crosvm]. The [Rust on
+Chrome OS] document has more information.
+
+In certain cases C++ is the better choice for userspace code. In particular,
+existing C++ projects should not be converted to Rust, except in exceptional
+circumstances. However, new modules to existing C++ projects have been
+successfully written in Rust. Other cases where C++ should be considered are
+projects reliant on Mojo, which has no production ready Rust bindings.
+
 ### C++
 
-Nearly all userspace code in the Chromium OS project, whether it's part of the
-Chrome browser itself or a system daemon exposing new functionality, is written
-in C++. Do not use another language unless there's a compelling reason why C++
-can't work for what you're doing. (Being more familiar with another language
-than with C++ is not a compelling reason.)
+Most userspace code in the Chromium OS project is written in C++, whether it's
+part of the Chrome browser itself or a system daemon exposing new functionality.
 
 The Chromium project, and by extension the Chromium OS project, follow the
 [Google C++ style guide], with the [Chromium C++ style guide] layered on top to
@@ -201,6 +217,8 @@
 [documentation best practices]: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/documentation_best_practices.md
 [Chromium OS design docs]: https://www.chromium.org/chromium-os/chromiumos-design-docs
 [Chromium design docs]: https://www.chromium.org/developers/design-documents
+[set from crosvm]: https://chromium.googlesource.com/chromiumos/platform/crosvm/+/HEAD/bin/clippy
+[Rust on Chrome OS]: https://chromium.googlesource.com/chromiumos/docs/+/HEAD/rust_on_cros.md
 [Google C++ style guide]: https://google.github.io/styleguide/cppguide.html
 [Chromium C++ style guide]: https://chromium.googlesource.com/chromium/src/+/HEAD/styleguide/c++/c++.md
 [C++11 use in Chromium]: https://chromium-cpp.appspot.com/