-
Notifications
You must be signed in to change notification settings - Fork 251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High level plan for the book #224
Comments
Another goal is to work together with the newly written async programming chapter in the Rust book. |
One major note on the sectioning, which I think overall seems totally reasonable: cancellation is probably the single most important topic the new async chapter in TRPL does not cover—I think right now there is one sentence which alludes to it, and that’s it—and while in some ways it’s fairly subtle, I think it is also one of those things which (a) comes up a ton in documentation in practice, e.g. it’s referenced quite a bit in Tokio’s tutorial and cancellation-safety is everywhere in Tokio’s API docs; and (b) is probably one of the most common sources of bugs beginners will hit, because we don’t have good guarantees about it in most runtimes, for reasons largely not the runtimes’ fault. So maybe that should be in Section 1, at least in terms of “conceptual machinery” (with worked examples later)? |
This looks awesome, would love to help contribute to the rewrite of this book! I've recently finished reading TRPL in its entirety and was looking to dive deeper into async Rust, so this seems to have come at the perfect time. Is there/will there be a process for how people can contribute by chance? Or is this mostly internal effort? Or how does it work? (P.S. If this thread was meant purely for discussions/brainstorming about the ideas of the book, apologies for going off-topic!) |
Super exciting to see progress on this! I think it is super important to teach people about blocking the thread early. I wrote my article on it because it's such a common thing to run into problems with. |
I think that we should just mention that they exist and why or when you would use them. Maybe a chapter discussing tokio alternatives. |
Yes, definitely! I'd love to have some help! My plan is to draft the first few chapters and sketch out the rest of part 1, then advertise for people to contribute. If there's any section you'd particularly like to work on, then let me know and we can plan a bit together and split up the work. Probably the best place to discuss would be the async-book channel on the Rust Zulip |
Yes, I think just saying it's possible and briefly describing the idea that runtimes are pluggable in Rust in part 1. and then a section on alternatives in part 2. |
I've expanded on the above plan (for the guide part of the book) in #235 |
I'm dumping some thoughts about goals and plans for the updated book. Let's discuss!
cc @rust-lang/wg-async
Audience
I would like to cater to a pretty full range of audiences - from first time async programmers to advanced users who are implementing their own runtimes and contributing to the work of the async WG. Obviously we can't cover everything of interest to the latter group though.
Some audience considerations I think are worth calling out:
Goals
Structure
I'm pretty sure that we should have:
The things I'm not at all sure about include:
Part 1
My very rough idea for topics for part 1 is (there would be a separate intro/front matter; the list is not one bullet per chapter/section):
Part 2
Some of the topics I think should be covered include (not in order, necessarily, though I don't intend for there to be a narrative order, there should be some organisation):
The text was updated successfully, but these errors were encountered: