Description
Summary
https://www.rust-lang.org/learn has some links to various documentation, but I think that there need to be significantly more. For example, the following is partial list that I'd like to see linked to:
- If you know where to look, you'll find each of these pages. But they aren't on the landing page, which is really weird.
- https://doc.rust-lang.org/proc_macro/index.html
- https://doc.rust-lang.org/core/index.html
- https://doc.rust-lang.org/test/index.html - OK, it's experimental & nightly only, so I can see why this is hidden, but if it ever stabilizes then it should be on the landing page somewhere.
- https://rust-lang.github.io/api-guidelines/ - The API guidelines tell new crate authors how to write a good crate. Once I found it, its checklist became my go-to resource for gauging how well I've written my code.
- https://rust-unofficial.github.io/patterns/ - Necessary so that when someone says 'use the builder pattern' or 'use the newtype pattern', others can understand. Also helpful when you're learning what patterns are common in rust, and how to implement them so that when others read your code, they know what to expect.
- https://rust-lang-nursery.github.io/rust-cookbook/ - Quoting the book directly: "This cookbook is intended for new Rust programmers, so that they may quickly get an overview of the capabilities of the Rust crate ecosystem. It is also intended for experienced Rust programmers, who should find in the recipes an easy reminder of how to accomplish common tasks."
Motivation
Rust is powerful, but that power can only be accessed by new users by reading the documentation. Which they will not be able to do easily if it isn't exposed to them in a relatively flat space (like having it all on the landing page at https://www.rust-lang.org/learn). I actually didn't know about https://doc.rust-lang.org/proc_macro/index.html and https://doc.rust-lang.org/test/index.html until I started digging around in my own installed .rustup
directory, and I've been using rust since about the 1.19 days; what's a brand new user going to do???
Drawbacks
If anything is experimental, then it shouldn't be exposed in the stable docs. There should be a link to the nightly docs from the landing page somewhere, along with a big, bold banner explaining what nightly really means (use at your own risk).
Rationale and alternatives
Putting all the links in a single well-organized landing page makes it really, really easy to find documentation, as well as to browse the documentation when you aren't really sure what you're looking for. Alternatively, we can rely on various search engines, but that means that the user needs guess what they're looking for, probably end up asking a bunch of questions on various forums, and then eventually find out that the docs are right there on the rust-lang.org, but hidden from the landing page! That is bad form, and makes rust look bad.
Not doing this just makes rust needlessly harder to use.
Maintenance
There shouldn't be much in the way of maintenance, just adding some links to the landing page that point to where the rustdoc
generated documentation lives. For the manually generated documentation, it may require more work (docs team?).
Unresolved Questions
None that I can think of.