A Study on the Pythonic Functional Constructs' Understandability
The use of functional constructs in programming languages such as Python has been advocated to help write more succinct source code, improve parallelization, and reduce side effects. Nevertheless, their usage could lead to understandability issues. This paper reports the results of a controlled experiment conducted with 209 developers to assess the understandability of given Pythonic functional constructs—namely lambdas, comprehensions, and map/reduce/filter functions—if compared to their procedural alternatives. To address the study’s goal, we asked developers to modify code using functional constructs or not, to compare the understandability of different implementations, and to provide insights about when and where it is preferable to use such functional constructs. Results of the study indicate that code snippets with lambdas are more straightforward to modify than the procedural alternatives. However, this is not the case for comprehensions. Regarding the perceived understandability, code snippets relying on procedural implementations are considered more readable than their functional alternatives. Last but not least, while functional constructs may help writing compact code, improving maintainability and performance, they are considered hard to debug. Our results can lead to better education in using functional constructs, prioritizing quality assurance activities, and enhancing tool support for developers.
Fri 19 AprDisplayed time zone: Lisbon change
16:00 - 17:30 | Evolution 6New Ideas and Emerging Results / Research Track / Demonstrations / Software Engineering Education and Training at Glicínia Quartin Chair(s): Kiev Gama Federal University of Pernambuco (UFPE) | ||
16:00 15mTalk | Cneps: A Precise Approach for Examining Dependencies among Third-Party C/C++ Open-Source Components Research Track Yoonjong Na Korea University, Seunghoon Woo Korea University, Joomyeong Lee Korea University, Heejo Lee Korea University | ||
16:15 15mTalk | A Study on the Pythonic Functional Constructs' Understandability Research Track Cyrine Zid École Polytechnique de Montréal, Fiorella Zampetti University of Sannio, Italy, Giulio Antoniol Ecole Polytechnique de Montreal, Massimiliano Di Penta University of Sannio, Italy Pre-print | ||
16:30 15mTalk | Introducing Computer Science Undergraduate Students to DevOps Technologies from Software Engineering Fundamentals Software Engineering Education and Training Edgar Sarmiento-Calisaya , Alvaro Mamani-Aliaga Universidad Nacional de San Agustín de Arequipa, Julio Cesar Leite Federal University of Bahia (UFBA) DOI | ||
16:45 15mTalk | Bridging the Theory-Practice Gap in a Maintenance Programming Course: An Experience Report Software Engineering Education and Training Sofia Ouhbi Uppsala University | ||
17:00 7mTalk | Deductive Software Architecture Recovery via Chain-of-thought Prompting New Ideas and Emerging Results Satrio Adi Rukmono , Lina Ochoa Eindhoven University of Technology, Michel Chaudron Eindhoven University of Technology, The Netherlands | ||
17:07 7mTalk | Reproducibility of Build Environments through Space and Time New Ideas and Emerging Results Julien Malka LTCI, Télécom Paris, Institut Polytechnique de Paris, France, Stefano Zacchiroli Télécom Paris, Polytechnic Institute of Paris, Théo Zimmermann Télécom Paris, Polytechnic Institute of Paris Pre-print | ||
17:14 7mTalk | APICIA: An API Change Impact Analyzer for Android Apps Demonstrations Tarek Mahmud Texas State University, Meiru Che Central Queensland University, Jihan Rouijel Texas State University, Mujahid Khan Texas State University, Guowei Yang University of Queensland | ||
17:21 7mTalk | RAT: A Refactoring-Aware Tool for Tracking Code History Demonstrations Feifei Niu University of Ottawa, Junqian Shao Nanjing University, Chaofan Xu Nanjing University, Christoph Mayr-Dorn JOHANNES KEPLER UNIVERSITY LINZ, Wesley Assunção North Carolina State University, Liguo Huang Southern Methodist University, Chuanyi Li Nanjing University, Jidong Ge Nanjing University, Bin Luo Nanjing University, Alexander Egyed Johannes Kepler University Linz |