  Rust is a general-purpose programming language that is both type- and
memory-safe. Rust does not use a garbage collector, but rather achieves these
properties through a sophisticated, but complex, type system. Doing so makes
Rust very efficient, but makes Rust relatively hard to learn and use. We
designed Bronze, an optional, library-based garbage collector for Rust. To see
whether Bronze could make Rust more usable, we conducted a randomized
controlled trial with volunteers from a 633-person class, collecting data from
428 students in total. We found that for a task that required managing complex
aliasing, Bronze users were more likely to complete the task in the time
available, and those who did so required only about a third as much time (4
hours vs. 12 hours). We found no significant difference in total time, even
though Bronze users re-did the task without Bronze afterward. Surveys indicated
that ownership, borrowing, and lifetimes were primary causes of the challenges
that users faced when using Rust.
