Yet another reflection based on a session at myConf. Erik Dörnenburg talked about GreenOps — ways to utilize your computing resources as efficiently as possible in terms of environmental impact. It was a quite interesting talk about moving your resource needs to different locations in the world depending on where green electricity is available.

There were also several other considerations for lowering the carbon footprint, such as using cloud computing. Cloud servers can run at higher loads and are therefore more optimally utilized. Another point raised was the effectiveness of different programming languages in terms of power consumption. During the presentation, data was presented from a well-known research paper titled Ranking programming languages by energy efficiency. Essentially, it finds that compiled languages are more energy-efficient than scripting languages. But, as always, there are opposing views — one of which is outlined in It’s Not Easy Being Green: On the Energy Efficiency of Programming Languages.

To be completely honest, I have not yet read these articles. They are both detailed and lengthy. However, they’ve been added to my reading list, and with summer coming up, I hope to have more time to tackle items on that list. I have at least read the abstracts, and combined with the talk at myConf, I’ve developed some thoughts.

It makes perfect sense that different languages have different levels of energy efficiency. In the lab, various algorithms are used to measure speed and power performance. These algorithms are part of what’s known as the “Computer Language Benchmark Game.” I’m pretty sure many real-world applications follow similar execution patterns, but I also believe there’s a huge difference depending on the use case.

Another argument specifically in favor of scripting languages was that they increasingly rely on libraries written in natively compiled code (i.e., the core functionality is not actually implemented as scripting). This is a growing factor that contributes to them not being as power-inefficient as previously suggested.

For heavily loaded servers or resource-intensive applications, it makes sense to use a compiled language — not just for potential energy savings but also for increased performance. Speed is likely the more critical factor: if something runs fast, it finishes quicker. And if it saves energy at the same time, that’s a win-win. This was also one of the key points Dörnenburg made in his presentation — the more efficient our solutions are, the faster and cheaper they become to operate.

So, in conclusion: use compiled languages whenever you’re doing something resource-intensive, and you’ll be fine!