A survey of Rust users finds difficulty and frustration with the programming language's highly touted features for memory safety and correctness
A new survey of the Rust user community, conducted by the Rust language team, shows a growing interest in the language and its use-but also user frustration with some Rust features that the project touts as advantages.
The survey drew responses from almost 6,000 Rust users. Questions ranged from the length of one's experience with Rust to opinions about platforms, workflow targets, and toolchains.
Because Rust is a relatively new programming language, the vast majority of surveyed users (76.1%) have been using Rust for less than 1 or 2 years. How long did it take for them to feel competent with the language? Most users surveyed felt proficient in "less than a month" (33.8%) or "less than a year" (30.3%). Relatively few (7.1%) felt proficient in less than a week. A significant chunk (22%) of those surveyed still don't feel productive with Rust.
What makes Rust so hard to master? Users reported that two of Rust's most distinguishing features-lifetimes and the ownership/borrowing system-were either "tricky," "very difficult," or something they "still don't get."
Rust's big claim to fame is a mix of speed and memory safety. Rust code compiles to machine-native instructions, and the syntax and idioms around memory management-lifetimes and borrowing-make it difficult for the memory-unsafe code to compile at all. But users still have trouble understanding those metaphors. As a result, the Rust team is investigating ways to make the concepts more intuitive.
Other questions revolved around challenges to continuing with Rust. Around half of those who quit using Rust did so after just one month. The most common reasons cited for not using Rust were that it was "too intimidating, too hard to learn, or too complicated" (25%), that "My company doesn't use Rust" (47.83%), and that "I haven't yet learned Rust but I want to" (74.02%).
In addition to the need to improve Rust's learning curve, survey takeaways for the Rust team include adding better development features for writing client-side GUI applications, bolstering support for IDEs, and improving the maturity of the standard library.
The survey notes that the state of the standard library "isn't the fault of maintainers, who are already working hard to write and publish the crates [in the standard library], but that generally more companies need to get involved and offer commercial support." It's a goal that is likely to remain distant until Rust becomes more broadly used in enterprise settings.