Affiliation:
1. Computer Science Department University of Brasília Brasília Brazil
2. Universidade do Minho Braga Portugal
3. Federal University of Cariri Juazeiro do Norte Brazil
Abstract
AbstractSimilar to software systems, programming languages evolve substantially over time. Indeed, the community has more recently seen the release of new versions of mainstream languages in shorter and shorter time frames. For instance, the C++ working group has begun to release a new version of the language every 3 years, which now has a greater number of modern C++ features and improvements in modern standards (C++11, C++14, C++17, and C++ 20). Nonetheless, there is little empirical evidence on how developers are transitioning to use modern C++ constructs in legacy systems, and not understanding the trends and reasons for adopting these new modern C++ features might hinder software developers in conducting rejuvenation efforts. In this paper, we conduct an in‐depth study to understand the development practices of KDE contributors to evolve their projects toward the use of modern C++ features. Our results show a trend in the widespread adoption of some modern C++ features (lambda expressions, auto‐typed variables, and range‐based for) in KDE community projects. We also found that developers in the KDE community are making large efforts to modernize their programs using automated tools, and we present some modernization scenarios and the benefits of adopting modern C++ features of the C++ programming language. Our results might help C++ software developers, in general, to evolve C++ legacy systems and tools builders to implement more effective tools that could help in rejuvenation efforts.
Funder
Fundação para a Ciência e a Tecnologia
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
Reference36 articles.
1. Thriving in a crowded and changing world: C++ 2006–2020
2. Regrowing a language
3. Bragagnolo S Anquetil N Ducasse S Seriai A Derras M.Software Migration: A Theoretical Framework (A Grounded Theory Approach on Systematic Literature Review) Inria Lille Nord Europe—Laboratoire CRIStAL—Université de Lille;2021. Research Report.https://hal.inria.fr/hal-03171124
4. Automatically Generating Documentation for Lambda Expressions in Java
5. Understanding the use of lambda expressions in Java
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Understanding the Motivations, Challenges, and Practices of Software Rejuvenation;2023 IEEE International Conference on Software Maintenance and Evolution (ICSME);2023-10-01