# Rust 2021 Survey ## Section 1 (State of Rust Language Survey) **Do you use Rust?** Select one: * Yes * No, but I've used it in the past. * No, I've never used Rust ## Section 2 (Stopped Using Rust) **How long did you use Rust before you stopped?** Select one: * Less than a day * Less than a week * Less than a month * Less than a year * More than a year **How long ago did you stop using Rust?** Select one: * Less than a day * Less than a week * Less a year * More than a year **Why did you stop using Rust?** Select all that apply: * Rust didn't solve a problem for me * Rust was too intimidating, too hard to learn, or too complicated * Rust didn't have the libraries I needed * Rust didn't have the tools I need * Rust didn't have good IDE support * Rust seemed too risky to use in production * My company didn't use Rust * Switching to Rust slowed me down too much * I needed better interoperability between Rust and other languages. * Other **If you indicated a lack of support for platforms or architectures that you would like to target, which would those be?** Short answer **If you indicated a desire for increased interoperability, which of the following languages would you want to use with Rust?** * C * C++ * C# * Clojure * Elm * Erlang * Go * Haskell * Java * JavaScript * Objective-C * PHP * Python * Ruby * Scala * Swift * Other **Please provide any additional details on why you stopped using Rust.** Long answer text ### Section 3 (Never Used Rust) **I never used Rust because...** * Rust doesn't solve a problem for me * Rust is too intimidating, too hard to learn, or too complicated * Rust doesn't have the libraries I needed * Rust doesn't have the tools I need * Rust doesn't have good IDE support * Rust seems too risky to use in production * My company doesn't use Rust * Switching to Rust would slow me down too much * I needed better interoperability between Rust and other languages. * I haven't learned Rust yet, but I want to. * I haven't learned Rust yet, and I don't want to. * Other **If you indicated a lack of support for platforms or architectures that you would like to target, which would those be?** Short answer **If you indicated a desire for increased interoperability, which of the following languages would you want to use with Rust?** * C * C++ * C# * Clojure * Elm * Erlang * Go * Haskell * Java * JavaScript * Objective-C * PHP * Python * Ruby * Scala * Swift * Other **Please provide any additional details on why you never used Rust.** Long answer text ## Section 4 (Using Rust) **How did you get interested in Rust?** Long answer text **How long have you been working with Rust?** * Less than a week * Less than a month * 1 to 3 months * 3 to 6 months * 6 to 12 months * 1 to 2 years * 2 to 3 years * More than 3 years **How long did it take you to become productive in Rust?** * Less than a week * Less than a month * Less than a year * More than a year * I don't feel productive, yet **How many other programming languages did you know when you originally started working with Rust?** * 0 * 1 * 2 * 3 * 4 * 5 * 6 or more **If you summed the size of all Rust projects you work on, how big would it be?** * less than 1,000 lines * 1,000 to 10,000 lines * 10,000 to 100,000 lines * More than 100,000 lines **How regularly do you work with Rust?** * Daily * Weekly * Monthly * Rarely **How would you rate your Rust expertise?** Scale 1 to 10 with beginner and expert labels on the ends **How would you rate the difficulty of learning these concepts/topics?** Rate each category according to the label that applies best. Labels: Easy, Moderate, Tricky, Very Difficult, Still don't get it, N/A (haven't learned this yet). * Enums * Modules * Ownership and Borrowing * Iterators * Traits * Generics and Trait Bounds * Lifetimes * Cargo * Macros * Unsafe * Async I/O * Pattern Matching * Collections (Vec, HashMap, etc.) * Closures * FFI * Concurrency (threads, locks, channels) **I would use Rust more often if...** Select all that apply * Rust solved more problems for me * Rust was less intimidating, easier to learn, or less complicated * Rust had the libraries I need * Rust had the tools I need * Rust had better IDE support * Rust supported the platforms I need * Rust was less risky to use in production * Rust had better interoperability between languages * My company used Rust **If you indicated a desire for increased interoperability, which of the following languages would you want to use with Rust?** * C * C++ * C# * Clojure * Elm * Erlang * Go * Haskell * Java * JavaScript * Objective-C * PHP * Python * Ruby * Scala * Swift * Other ## Section 5 (Rust Compiler and Tools) **Which edition of Rust do you use?** * 2015 * 2018 * Both * Don't know **Which version(s) of Rust do you use for your applications?** Select all that apply * Current stable release * Previous stable release * Beta release * Nightly * Custom Fork * I don't know * Other **If you do not use the current stable compiler, why? Please name specific dependencies or unstable features, if relevant.** Long answer text **If you use nightly, do you automatically update or pin a version for use?** * Automatically update * Pin * Don't know * Other **Has upgrading to a new stable version of the Rust compiler (not when upgrading library dependencies) broken your code in the past year?** * Yes * No * Don't recall **Please provide details about what broke and what was needed to fix it** Long answer text **What your preferred way of installing Rust?** Select all that apply * Official rust-lang.org tarballs * Official rust-lang.org Windows .msi installers * Official rust-lang.org OS X .pkg installers * rustup.rs * Linux distro package * Homebrew * Other **If you do not use rustup.rs, why not?** Long answer text **If you do not use Cargo, why not?** Long answer text **What is your experience with other tools you use?** Select one of the labels for each of the following tools. Labels: Really dislike, dislike, Neither like nor dislike, like, really like, Never used * rustfmt * clippy * rustdoc or cargo doc * racer * Rust Language Server (RLS) * rust-analyzer * bindgen * IntelliJ Rust **Feel free to tell us more about your experience with these tools, or other Rust tools** Long answer text ## Section 6 (Response to challenges) For each of the challenges listed below, please indicate whether you believe there has been any change within the last year Labels: Got worse, no change, slight improvement, some improvement, a lot of improvement, I don't know * Library support * IDE Experience * Adoption level of Rust * Available tools and support * Learning curve * Stable features and crates * Async programming options * GUI development * Rust documentation * Compiler time ## Section 7 (Rust Platform) **What platforms are you developing on?** Select all the apply * Windows * Windows (WSL) * Apple macOS * Linux * BDS-Variant * Other **What platforms are you targeting** Select all the apply * Android * Windows * Apple iOS * Apple macOS * Linux * BSD-variant * WebAssembly * Embedded * asm.js * Other **Are there any platforms or architectures that you would like to target, but currently cannot? (If possible, please provide details, ideally toolchain "triples")** Long answer text ## Section 8 (Editors) **What editors do you use when writing Rust?** Select all the apply * Atom * Eclipse * Emacs * IntelliJ * Sublime * Vim * Visual Studio * VSCode * Other **Which IDE setup(s) do you use?** * No special support (or just CTAGS) * Only racer * RLS * rust-analyzer * IntelliJ Rust * Other ## Section 9 (Rust Ecosystem) **Which libraries do you consider critical in the Rust ecosystem?** Long answer text **Has a minor version upgrade of a dependency broken your code?** * Yes * No **If so, please provide details here on how minor version upgrades broke your code.** Long answer text **How many of your dependencies are 1.0 or above?** * None * Some * Most * All * I don't know **What critical libraries are missing in the Rust ecosystem?** Long answer text ## Section 10 (Rust at Work) **Do you or your company use Rust at work?** * Yes, I work with Rust full time * Yes, I work with Rust part time * No, but my company uses Rust * No * Not sure * Not applicable **For programmers - what languages, other than Rust, do you use at work?** Short answer text ## Section 11 (Not using Rust at Work) **Does your company plan to use or evaluate Rust in the future?** * Yes * No * I don't know **How could we make Rust more appealing to your company?** Long answer text ## Section 12 (Using Rust at Work) **How many developers at your company use Rust at work?** * 1 * 2-5 * 6-10 * 11-25 * 25-100 * More than 100 * I don't know **Approximately how many total employees are in your company?** * Under 10 * 11-49 * 50-99 * 100-149 * 150-199 * 200-499 * 500-999 * 1000 - 4,999 * 5,000 - 10,000 **If you summed the size of all Rust projects at work, how big would it be?** * Less than 1,000 lines * 1,000 to 10,000 lines * 10,000 to 100,000 lines * More than 100,000 lines **Is your company planning on hiring Rust developers in the next year?** * Yes * No * I don't know **What are some ways you or your company is using Rust at work?** Long answer text **How could we make Rust more accepted at your company?** Long answer text ## Section 13 **Which titles do you believe best match your role?** * Analyst * Architect * Consultant / Freelance * Data Scientist * Designer * DevOps / SRE * Executive * Founder * Hobbyist * Manager / Team Leader * Programmer / Software Engineer * QA Engineer * Research Assistant * Scientist * Student * Systems Operations * Teacher / Professor * Technical Writer * Web Developer / Front End Developer * Other **What industries do you work in?** * Advertising * Advertising / Marketing Technology * Aerospace * Audio * Automated Share Trading * Big Data * Bioinformatics * Blockchain * Computer administration * Data science * Databases * Desktop applications * Distributed systems * Education / academia * Embedded devices * Enterprise software * Financial * Gaming * Geospatial * Government / Military * Health care * High-Performance Computing * Internet of Things * IT * Industrial * Machine Learning * Entertainment / Media * Medical Devices * Mobile (Android) * Mobile (iOS) * Network programming * Retail / e-commerce * Robotics * Scientific and numeric computing * Security * Simulation * Technology * Telecom * Web Application Backend * Web Application Frontend **How many software developers work at your company?** * Not applicable * None * 1 -10 * 10 - 20 * 20 - 50 * 50 - 100 * 100 - 1000 * More than 1000 * I don't know **Have you contributed to any open source code in the past year?** * Yes * No ** If you answered yes, have you ever contributed to a Rust crate or tool?** * No, but if I find something bothers me, I'll try to fix it. * No, and I probably won't * Yes, a couple of times * Yes, I contribute regularly * Yes, I maintain crates **What programming languages are you comfortable with?** Select all the apply * C * C++ * C# * Clojure * Elm * Erlang * Go * Haskell * Java * JavaScript * Objective-C * PHP * Python * Ruby * Scala * Swift * Other **Please rank your top 5 programming languages in terms of preference** Columns: 1st, 2nd, 3rd, 4th, 5th * C * C++ * C# * Clojure * Elm * Erlang * Go * Haskell * Java * JavaScript * Objective-C * PHP * Python * Ruby * Scala * Swift * Other ## Section 14 (Demographics) **Do you feel welcome in the Rust community?** * Yes * No * I don't know **What actions could we take to make you feel more welcome?** Long answer text **Do you consider yourself a member of an underrepresented demographic in technology?** Select all that apply * No * Yes, but I prefer not to specify * Cultural beliefs * Disabled or person with a disability (including physical, mental, and other) * Educational background * Language * Lesbian, gay, bisexual, queer or otherwise non-heterosexual * Non-binary gender * Older or younger than the average developers I know * Political beliefs * Racial or ethnic minority * Religious beliefs * Trans * Woman or perceived as a woman * Other **Do you feel your situation make it difficult for you to participate in the Rust community?** * Yes * No * Maybe **If you find it difficult to participate in the Rust community, and feel comfortable giving more details, please tell us what makes it difficult** Long answer text **What city / state / region / country do you live in?** Long answer text **What languages are you fluent in?** * Arabic * Bengali * Cantonese * English * French * German * Hindi * Japanese * Mandarin * Polish * Portuguese * Punjabi * Russian * Swedish * Spanish * Other ## Section 15 (Rust Community) **What resources do you use to keep up with the Rust ecosystem?** * This Week in Rust (TWiR) * Read Rust * Reddit r/rust * lobste.rs t/rust * Twitter * internals.rust-lang.org (Discourse) * users.rust-lang.org * StackOverflow * Discord * Zulip * Private Group Chat * Other ## Section 16 (Rust Conferences) **Did you attend a Rust conference in the past year? If so, which ones?** Long answer text **If you wanted to attend a Rust conference, but could not, why not?** Long answer text **If you are interested in attending a Rust conference, which of these regions would you travel to?** Select all that apply * Africa - North * Africa - East * Africa - Central * Africa - West * Africa - South * North America - Canada * North America - United States * North America - Mexico * North America - Central * North America - Caribbean * South America - North * South America - East * South America - Central * South America - West * South America - South * Asia - North * Asia - East * Asia - Central * Asia - West * Asia - South * Asia - Southeast * Europe - North * Europe - East * Europe - Central * Europe - West * Europe - South * Oceania - Australia * Oceania - New Zealand * Oceania - Melanesia * Oceania - Micronesia * Oceania - Polynesia **Please provide precise details on where you would travel for a Rust conference** Long answer text ## Section 17 (Challenges and Feedback) **What do you feel are the biggest challenges or problems for the Rust project? What could we do to improve adoption** Long answer text **What new things related to the Rust project are you most excited about?** Long answer text **Anything else you would like to tell us?** Long answer text ## Section 18 (Contact Info) **Email address** Short answer text **What are the reasons you would like to be contacted?** * I'm interested in attending Rust meetups or conferences * I am interested in starting a Rust meetup or conference * My company uses Rust or would like to, and I would like to talk to Core or the Community team * I am interested in Rust training * I am interested in being contacted for more details on my survey answers **If other, why would you like to be contacted?** Long answer text?