A survey of Rust users finds difficulty and frustration with the language’s highly touted features for memory safety and correctness Credit: Karina Carvalho A new survey of the Rust user community, conducted by the Rust language team, shows 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 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. Related content feature 14 great preprocessors for developers who love to code Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again. By Peter Wayner Nov 18, 2024 10 mins Development Tools Software Development feature Designing the APIs that accidentally power businesses Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. By Jean Yang Nov 18, 2024 6 mins APIs Software Development news Spin 3.0 supports polyglot development using Wasm components Fermyon’s open source framework for building server-side WebAssembly apps allows developers to compose apps from components created with different languages. By Paul Krill Nov 18, 2024 2 mins Microservices Serverless Computing Development Libraries and Frameworks news Go language evolving for future hardware, AI workloads The Go team is working to adapt Go to large multicore systems, the latest hardware instructions, and the needs of developers of large-scale AI systems. By Paul Krill Nov 15, 2024 3 mins Google Go Generative AI Programming Languages Resources Videos