mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-02-04 02:03:36 +02:00
Speaker notes for “Modern Features”
This commit is contained in:
parent
cf505e99cd
commit
ba3c6b0de9
@ -13,3 +13,39 @@ Rust is built with all the experience gained in the last 40 years.
|
||||
* Great compiler errors.
|
||||
* Built-in dependency manager.
|
||||
* Built-in support for testing.
|
||||
|
||||
<details>
|
||||
|
||||
Key points:
|
||||
|
||||
* Remind people to read the errors --- many developers have gotten used to
|
||||
ignore lengthly compiler output. The Rust compiler is significantly more
|
||||
talkative than other compilers. It will often provide you with _actionable_
|
||||
feedback, ready to copy-paste into your code.
|
||||
|
||||
* The Rust standard library is small compared to languages like Java, Python,
|
||||
and Go. Rust does not come with several things you might consider standard and
|
||||
essential:
|
||||
|
||||
* a random number generator, but see [rand].
|
||||
* support for SSL or TLS, but see [rusttls].
|
||||
* support for JSON, but see [serde_json].
|
||||
|
||||
The reasoning behind this is that functionality in the standard library cannot
|
||||
go away, so it has to be very stable. For the examples above, the Rust
|
||||
community is still working on finding the best solution --- and perhaps there
|
||||
isn't a single "best solution" for some of these things.
|
||||
|
||||
Rust comes with a built-in package manager in the form of Cargo and this makes
|
||||
it trivial to download and compile third-party crates. A consequence of this
|
||||
is that the standard library can be smaller.
|
||||
|
||||
Discovering good third-party crates can be a problem. Sites like
|
||||
<https://lib.rs/> help with this by letting you compare health metrics for
|
||||
crates to find a good and trusted one.
|
||||
|
||||
[rand]: https://docs.rs/rand/
|
||||
[rusttls]: https://docs.rs/rustls/
|
||||
[serde_json]: https://docs.rs/serde_json/
|
||||
|
||||
</details>
|
||||
|
Loading…
x
Reference in New Issue
Block a user