It looks like you are using Internet Explorer, which unfortunately is not supported. Please use a modern browser like Chrome, Firefox, Safari or Edge.

Going Green with Your Code: Steps Towards Sustainable Software Development

Published in Technology

Written by

Santtu Vuori

Santtu Vuori is the CTO for Nitor Sweden and has been working for a rather long time in the software industry in varying roles. He loves complex systems where performance in the forms of low latencies and high volumes are central. In addition, he finds analysing systems and processes from an external POV interesting and rewarding, especially finding a better way forward together. In his spare time, Santtu enjoys cooking and spending time outdoors with his family.

Article

December 14, 2023 · 4 min read time

The ICT sector currently accounts for about one-tenth of global electricity use and is expected to reach 20 percent by 2030. For many years, the focus has been on making hardware more energy efficient, but now it’s time to look at software with the same aim. While environmental responsibility and green technology have, in many respects, become the norm in business, the ICT industry still has a long way to go.

Green code is a step in the right direction, and a way to optimize energy consumption and energy efficiency in software design. Not only is green code crucial from a sustainability perspective, but there are also significant business benefits. In these times, we need both more than ever.

Software optimization is not new, but it is often treated with surprising laxity in the industry. When systems start to run too slowly, a classic solution is often to buy new hardware. On cloud environments, of course, it is often easier to buy extra capacity. The rapid growth of computing power for both servers and mobile devices hasn’t helped either.

Unfortunately, inefficient software is often a sign of other quality issues.

In the past, coding came with limitations: one had to consider the limited memory, storage, and network capacity. Developers needed to be frugal and think on their feet. Today, when we have access to virtually infinite resources, it’s easy to take resources for granted and become careless – or even lazy.

For example, it was necessary to explicitly reserve memory to store information and later release it. But today, this isn’t the case anymore, at least to the same extent. Developers aren’t constantly reminded about the resources their code needs – similarly, no one is guiding beginners to consider how sustainable their code is.

How to get started with green code

1. Make sure your software is energy efficient

A first step towards ensuring that the software you use is energy efficient is to conduct an internal audit to check if you’re using your services sensibly for both the environment and finances. There might be services that you don’t actually need or are overlapping with other tools, so this is a good spot to optimize costs as well.

If it’s possible to get reports from suppliers on the environmental impact of their solutions, you can use this information to see if you can make better choices for certain services. Make sure to choose services that are energy-efficient but still fit your needs.

Also, consider whether the way you have deployed your solution is smart from an environmental perspective.

2. Choose a green programming language

There are multitude of different programming languages, and they come with big differences in terms of energy consumption – the same outcome can require more or less energy based on the language you choose.

Java, for example, doesn’t need much energy and is widely used. Python, on the other hand, is among languages that require the most energy, and is still used for relatively large services. Making the decision between the two, for example, is rather simple, if the aim is to apply green code. And of course, there are languages that are somewhere between the two in terms of energy consumption, like the popular C#.
Additionally, the rise of AI and tools such as ChatGPT is a hot topic, and many have started to test their capabilities in their daily work. But artificial intelligence and machine learning can do so much more, things that may not be as visible to the public.

These technologies can significantly influence various processes, enhancing efficiency and reducing emissions. For instance, optimizing fleet management or introducing automation can transform our daily routines. While the data processing involved might be intensive, the outcomes are increasingly impactful and the procedures are continuously becoming more efficient.

3. Create sustainable solutions

If you look at sustainable development in general, you shouldn’t develop disposable solutions, but work in the long term. It’s important to choose technologies and build architecture to act as the base for future development rather than being replaced entirely once new needs arise. What you invest in today should offer usable solutions for years to come.

Sustainable businesses stay in business

Applying green code requires thought and planning before you can get started, and the whole venture can initially take a bit more time – you may need to evaluate and compare different options and services. But in the long run, greener code will make your solutions more cost-efficient, since they cost less to deploy. So doing the groundwork to reap the benefits will pay off.

Smart, sustainable solutions also add further value. More and more companies are looking to ensure their entire business is sustainable. For subcontractors and partners, this means an increased demand to define their sustainability goals and programs to reach them. Additionally, legislation is becoming more stringent even for smaller organizations. The Finnish Transport and Communications Agency Traficom has included Green ICT as part of their foresight activities. Focusing on sustainability has become a competitive edge, if not a lifeblood for companies to stay in business.

For Nitor, sustainable digital development and green code are self-evident and important. We want to develop services that are serverless and only activate resources when needed, to save the environment and our customers' budget. Our solutions should serve their users for several years, and they should act as a solid base for further development should the need ever arise.

To us, it’s mainly about the attitude and willingness to take the step towards greener code rather than the lack of know-how or training. Knowledge exists in the market, but you have to want to take the plunge.

Written by

Santtu Vuori

Santtu Vuori is the CTO for Nitor Sweden and has been working for a rather long time in the software industry in varying roles. He loves complex systems where performance in the forms of low latencies and high volumes are central. In addition, he finds analysing systems and processes from an external POV interesting and rewarding, especially finding a better way forward together. In his spare time, Santtu enjoys cooking and spending time outdoors with his family.