Our research will build on work done by Kempen et al (2024) on the importance of programming language and application implementation and on the importance of measuring energy use. The pre-print of their work is available here: https://arxiv.org/html/2410.05460v1 and the abstract is below.:
“Does the choice of programming language affect energy consumption? Previous highly visible studies have established associations between certain programming languages and energy consumption. A causal misinterpretation of this work has led academics and industry leaders to use or support certain languages based on their claimed impact on energy consumption. This paper tackles this causal question directly. It first corrects and improves the measurement methodology used by prior work. It then develops a detailed causal model capturing the complex relationship between programming language choice and energy consumption. This model identifies and incorporates several critical but previously overlooked factors that affect energy usage. These factors, such as distinguishing programming languages from their implementations, the impact of the application implementations themselves, the number of active cores, and memory activity, can significantly skew energy consumption measurements if not accounted for. We show—via empirical experiments, improved methodology, and careful examination of anomalies—that when these factors are controlled for, notable discrepancies in prior work vanish. Our analysis suggests that the choice of programming language implementation has no significant impact on energy consumption beyond execution time.”
We have some data collected by Steffen Segovia Helbo exploring energy use of programming languages and local systems and want to extend and build on this with more detailed experiments that study the energy impact in particular of long running applications – in order to test the results of both those like Shane Miller who stress language selection (e.g. In her talk at the Amazon Web Services Reinvent Conference 2023) and Kempen who stress implementation (which version of the language, and the software design of the application).
The experiments will be led by Steven and Steffen but most of the work writing and testing code will be done by students who will do the work as part of a project in their course on studying research methods. This course is taken by both WEB and SOFT students. It will give them a chance to learn about running controlled experiments, analyzing data and reporting findings. Steven and Steffen will be assisted in this by 2 volunteer students who will act as assistants. If this pilot project demonstrates promise as an approach it may then be taken into industry to work with companies interested in exploring their own energy profile and working to make it more efficient.
There is a need for more research at the individual application design and development level, as most current research focuses on the Data Centre level so that cloud providers like Amazon can comply with the EU Energy Efficiency Directive (EU/23/1791). However, students developing software applications need more knowledge of the regulatory impacts that their choice of technologies may have and there is a lack of research exploring energy use and application design in the Danish context. This is especially important in teaching new professionals how to assess their choices from this angle. This is influenced by work such as Mehul Warade et al’s (2023) on Docker Containers – a special software tool that allows one computer to run many different applications separately and using their own virtual processers and memory. Warade’s team adopted a practical approach testing realistic scenarios of application implementation using well defined experiments. We think this is a valuable methodology for our work as it will benefit the software development education in a number of ways;
- Helps students understand low level efficiency in software to improve their code in terms of performance and efficienc
- Helps students contribute on internship to decisions around technology selection and implementation
- Helps them to understand how to research technically complex problems and argue based on data (critical thinking skills)
- Supports the aims of the studieordning where one of the aims of the program is to improve student’s understanding and abilities in sustainable software development
These benefits can also apply to the educations in Multimedia Design, Web Development and Datamatikker where sustainable software is also an important area of consideration.
If this pilot research leads to the creation of a process for testing and measuring software development stacks (things such as programming languages and databases) as part of student projects, it can be taken forward as an FoU project whose outcome would be beneficial to Danish society in a number of important ways:
- Raising the visibility of the energy use of software – a key driver of increased energy demand in developed countries – the International Energy Agency predicts a doubling in demand directly connected to software use but there is a low level of awareness in society generally about how their digital life contributes to energy demand and climate change.
- Giving students a deeper understanding of ‘green coding’ and how to make it part of their thinking when developing software will benefit Danish companies by keeping them at the forefront of good practice as part of corporate sustainability work.
- As a country with a strong digitalization record Denmark can participate in shaping new standards and practices to help guide software development in a more sustainable direction. This research can feed into work on creating standards and practices for use by both state and private bodies.