I came across a paper about energy consumption of Software systems and how programming or scripting languages contribute to that. Energy consumption is an important criteria not only for mobile and IoT devices, but it is also an important criteria from the perspective of cloud-based micro-services and how they are provisioned. A key aspect to this are the programming or scripting languages and how they operate. It’s important to measure and validate the energy consumption of your programming language and the software that you build. I feel that this is a niche in the rise for systems engineers working with servers and cloud service providers, as well as automated checks used while Software Testing, as environmental and energy consumption concerns are in the rise around the world.
The key question raised in the paper is, “Is the faster programming language the greenest one?” The paper was written in 2017 comparing twenty seven programming languages solving ten programming problems. It’s noteworthy that the paper has considered several factors like type of the programming languages (imperative, functional, object-oriented), whether they are compiled or interpreted, the libraries used, etc.
The results show that generally C seems to be consuming the least energy while being the fastest, with optimal memory usage. Yesterday I wrote about automation checks at scale, and it makes me wonder that we should be using C as our scripting language (and not Javascript or Java as they are not the most effective in this aspect), especially when done at scale, which will save us a lot of energy and time. In these days when tests are executed in parallel in cloud data centers, it makes sense to use a programming language that consumes the least energy and time to get the tests done. Somebody has to do the scripts in C and measure the results against Javascript and Java to see how it works for their environment.
Now the focus would be on how practical it is to use C as the scripting language. I would think it’s quite practical because the CI/CD pipelines support C, and it should be no problem to run an executable compiled out of C anywhere in the cloud. Correct me if I am wrong in the comments.
Well, I am really happy that stumbled upon this paper, and I hope that you would go through this too while making decisions about your automation and scripted checks. On a personal note, I have Machine Learning too in my agenda where it is going to be a tough choice as Python is the most prevalent there.
Hope this write-up was useful for you, and feel free to talk to me if you would like to have a chat with me on this. Happy to talk!