Learning and Programming Challenges of Rust: A Mixed-Methods Study
Wed 11 May 2022 13:10 - 13:15 at ICSE room 1-odd hours - Programming Languages 3 Chair(s): Emma Söderberg
Fri 27 May 2022 11:05 - 11:10 at Room 306+307 - Papers 21: Programming Languages and Refactoring Chair(s): Julian Dolby
Fri 27 May 2022 13:30 - 15:00 at Ballroom Gallery - Posters 3
Rust is a young systems programming language designed to provide both the safety guarantees of high-level languages and the execution performance of low-level languages. To achieve this design goal, Rust provides a suite of safety rules and checks against those rules at the compile time to eliminate many memory-safety and thread-safety issues. Due to its safety and performance, Rust’s popularity has increased significantly in recent years, and it has already been adopted to build many safety-critical software systems.
It is critical to understand the learning and programming challenges imposed by Rust’s safety rules. For this purpose, we first conducted an empirical study through close, manual inspection of 100 Rust-related Stack Overflow questions. We sought to understand (1) what safety rules are challenging to learn and program with, (2) under which contexts a safety rule becomes more difficult to apply, and (3) whether the Rust compiler is sufficiently helpful in debugging safety-rule violations. We then performed an online survey with 101 Rust programmers to validate the findings of the empirical study. We invited participants to evaluate program variants that differ from each other, either in terms of violated safety rules or the code constructs involved in the violation, and compared the participants’ performance on the variants. Our mixed-methods investigation revealed a range of consistent findings that can benefit Rust learners, practitioners, and language designers.
Mon 9 MayDisplayed time zone: Eastern Time (US & Canada) change
Wed 11 MayDisplayed time zone: Eastern Time (US & Canada) change
Fri 27 MayDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | Papers 21: Programming Languages and RefactoringTechnical Track / SEIP - Software Engineering in Practice / Journal-First Papers / NIER - New Ideas and Emerging Results at Room 306+307 Chair(s): Julian Dolby IBM Research, USA | ||
11:00 5mTalk | Grammars for Free: Toward Grammar Inference for Ad Hoc Parsers NIER - New Ideas and Emerging Results Pre-print Media Attached | ||
11:05 5mTalk | Learning and Programming Challenges of Rust: A Mixed-Methods Study Technical Track Shuofei Zhu The Pennsylvania State University, Ziyi Zhang University of Wisconsin–Madison, Boqin Qin China Telecom Cloud Computing Corporation, Aiping Xiong The Pennsylvania State University, Linhai Song Pennsylvania State University, USA DOI Pre-print Media Attached | ||
11:10 5mTalk | Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage CollectorNominated for Distinguished Paper Technical Track Michael Coblenz University of Maryland at College Park, Michelle Mazurek University of Maryland, Michael Hicks University of Maryland at College Park DOI Pre-print Media Attached | ||
11:15 5mTalk | How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics in Stack Overflow Journal-First Papers Anthony Peruma Rochester Institute of Technology, Steven Simmons Rochester Institute of Technology, Eman Abdullah AlOmar Stevens Institute of Technology, Christian D. Newman Rochester Institute of Technology, Mohamed Wiem Mkaouer Rochester Institute of Technology, Ali Ouni ETS Montreal, University of Quebec Link to publication DOI Pre-print Media Attached | ||
11:20 5mTalk | Industry’s Cry for Tools that Support Large-Scale Refactoring SEIP - Software Engineering in Practice James Ivers Carnegie Mellon University, USA, Robert Nord Software Engineering Institute, Ipek Ozkaya Carnegie Mellon Software Engineering Institute, Chris Seifried Carnegie Mellon University, USA, Christopher Steven Timperley Carnegie Mellon University, Marouane Kessentini Oakland University, USA Pre-print Media Attached | ||
11:25 5mTalk | DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScriptBest Artifact Award Technical Track Alexi Turcotte Northeastern University, Michael D. Shah Northeastern University, USA, Mark W. Aldrich Tufts University, Frank Tip Northeastern University Pre-print Media Attached | ||
11:30 5mTalk | Inferring And Applying Type Changes Technical Track Ameya Ketkar Oregon State University, USA, Oleg Smirnov JetBrains Research, Saint Petersburg State University, Nikolaos Tsantalis Concordia University, Danny Dig University of Colorado Boulder, USA, Timofey Bryksin JetBrains Research; HSE University Pre-print Media Attached |