We invite you to participate in a research study being conducted at the University of Maryland, College Park. We are interested in the use and adoption of Rust within the development community. Our research relies on the generous help of interested developers!
The online survey will take about 30 minutes to complete. We have posted this to other locations such as Discord, Facebook, and Reddit. If you have already taken the survey, please do not take it again! It consists of questions about your general programming experience and your personal experience with using Rust.
Unfortunately, we cannot compensate you for participating in the study, but if you’re interested, we will be happy to share more information about our research with you. If you have further questions, please contact the Kelsey Fulton at kfulton@cs.umd.edu.
I have some questions and feedback on one of the questions:
Q: Notwithstanding your general interest in using Rust in the future, for which of the following tasks/applications/projects would you not choose Rust? (Check all that apply)
GUI applications
Web applications
Mobile applications
Writing compiler code
Writing graphics code
Writing testing code
Other
I find this a very confusing question, since "it all depends". The negation ("not choose") adds puzzling complexity and risk of further confusion. What are you trying to get at? Given the right circumstances, I think Rust is suitable for all these, but currently I would likely choose Python based on my experience with it. And the "notwithstanding" clause makes me drop use cases that just seem interesting to me, causing me to answer that I wouldn't choose Rust for anything. Is that the goal?
Thanks for the feedback! I totally see why this could be confusing. I think what we're trying to get at here is what use cases is Rust just not a good language for? Ideally, we'd like you to choose select any choices where Rust would not likely be your language of choice for these tasks or where using Rust for one of these tasks might be really difficult. Not selecting any answer is totally fine. You should be able to move past the question without selecting any answer. Sorry for any confusion and thanks for taking the survey!
I think I got the idea, despite what I said above.
In short, in my view:
Rust would not be my choice for a program intended to be written in a few minutes or an hour to perform a one off calculation or as a proof of some concept and then thrown away. That is what JS and Python are for.
After that Rust would be my choice for anything that is worth doing, that one wants to have some pride in and is expected to live for any time.
I was also a bit stymied by that question, because I've never done (for instance) mobile app development, so I'm definitely not expecting to use Rust for mobile development in the future, but that's more a statement of my lack of knowledge about mobile development than anything about Rust per se.
I left all the boxes blank. But some of them were "I don't know anything about this topic, so I don't know what I would choose" blanks and some of them are "I'm familiar with this, and I would choose Rust" blanks.
We did not plan to make actual measurements. Our goal with this survey is to hopefully start to understand the barriers to adoption of secure programming languages broadly.
I would be loath to conflate "secure" with "safe".
Certainly the Rust concept of "safe" ensures a lot of bugs that are trivial to create accidentally in languages like C/C++ are not possible in Rust. Thanks to the type system, the memory aliasing rules, array bound checks etc. As I'm sure you know. And certainly eliminating such memory errors goes a long way to ensuring correctness and hence security.
However it is still easy to write insecure software in Rust despite all that.