Skip to content

Why is the Brown Book still recommended? #4618

@JayanAXHF

Description

@JayanAXHF

URL to the section(s) of the book with this problem:
https://doc.rust-lang.org/book/

Description of the problem:

The cover of the rust book suggests using the "Brown Book" (a version of the rust book from Brown University. However, this book has many known flaws, including but not limited to poor chapter structure, and misleading quizzes that do disservice to the underlying concept at hand.

  1. https://rust-book.cs.brown.edu/ch04-02-references-and-borrowing.html#permissions-are-returned-at-the-end-of-a-references-lifetime
    This part of the book mentions terms like "Flow Permission", which are not standard or colloquial terms in the Rust Community, and as such make it harder for many to ask for help from other sources.
  2. The Brown Book talks about fixing Vec borrow errors (4.3) before it even introduces those errors (8.1)
  3. Question three of the second quiz in https://rust-book.cs.brown.edu/ch04-03-fixing-ownership-errors.html has an incorrect answer. The book states that this is program does not have any UB, however, it does. (The UB would be from overlapping exclusive borrows).

These are just some examples that I happen to have found quickly, and the Book is littered with mistakes and confusion all throughout.

I am also quoting a few messages from the Rust Programming Language Community Discord, to present the opinion others in the community.

Thank u very much <@499019818893049866> and <@518196659394445337>, I took your advice and read the original book... And indeed, it's much clearer! the RWOs in the brown book confused me more than anything else. For example, this rule was very helpfull for me :
- At any given time, you can have either one mutable reference or any number of immutable references.

Link

FYI, many people find the brown experimental book version to be confusing.

Link

That chapter and the "which of these would not be ub if compiler allowed them" are probably the most notorious parts of the Brown book

Link

Suggested fix:

  1. Either the disclaimer about the Brown book should be completely removed, or
  2. The disclaimer should explicitly mention that the Brown Book is not suited well for beginners, and has some certain issues and quirks to note.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions