Wusstest du, dass es ein Umweltsiegel für Software gibt? Der „Blaue Engel für Software“ zeichnet Lösungen aus, deren Programmcode besonders ressourcen- und energiesparend gestaltet ist. Wenn es also Möglichkeiten gibt, Programme und Webseiten nachhaltiger zu gestalten, warum macht man das nicht immer? Und wie geht das überhaupt?
Unser Interview mit dem Projekt ECO:DIGIT hat gezeigt, wie komplex es ist, die Umweltfolgen von Software zu messen. Das hat vor allem damit zu tun, dass Software und Webseiten nicht mehr nur auf dem Endgerät, sondern auch in Rechenzentren ausgeführt werden. Für Nutzer:innen hat das den Vorteil, dass wir etwa nicht mehr für einen Filmabend auf eine DVD in der Post warten oder Festplatten mit unserer Videosammlung anschließen müssen.
Wir wollten daher von Max Westing von der Hochschule Trier erfahren, ob Green-Coding ähnlich komplex ist. Und wie Programierer:innen nachhaltige Praktiken in ihre Arbeit integrieren können.
Max, wie schreibt man Software überhaupt?
Es ist recht kompliziert und schwierig, das zu beantworten, weil es immer unterschiedliche Abstraktionsebenen gibt. Am Ende des Tages programmiert man meist in einer Entwicklungsumgebung, in der man seinen Quellcode produziert.
Das passiert heutzutage schon recht häufig über generative KI. Man generiert aber immer für Maschinen für Menschen lesbaren Code, der in für Maschinen ausführbaren Code übersetzt wird. Und da gibt es unterschiedliche Abstraktionsebenen, also Sprachen, die näher oder weiter weg vom Machinencode sind als andere.
Ein gutes Beispiel dafür ist Python: Die Standardimplementierung von Python ist eine Implementierung der Computersprache „C“. Wenn wir also Python-Code ausführen, wird dieser in C-Code übersetzt. Und dieser C-Code wird dann über ein paar Umwege in Maschinencode übersetzt, also in die Sequenz von Nullen und Einsen, mit der Computer umgehen können.
Was genau sind dann die „Code-Bibliotheken“, über die man immer wieder liest?
Lädt man in eine Entwicklungsumgebung eine Code-Bibliothek, dann ist das letztendlich auch Quellcode. Hier sind es aber Objekte, die dem System zur Verfügung gestellt werden, die bestimmte Funktionen aufrufen. Damit spart man sich die Arbeit, bestimmte Funktionen immer wieder neu implementieren zu müssen.
Eine sogenannte „Library“ ist wie eine Standardkomponente, die man in sein Auto einbaut. Nur, dass es bei Software eben etwas nicht Greifbares ist, was nicht verbraucht wird, sondern immer und immer wieder eingebaut werden kann.
In Bezug auf die Nachhaltigkeit von Software ist genau das eine interessante Sache. Denn hier gibt es mitunter starke Skaleneffekte. Wenn man zum Beispiel eine wirklich effiziente Bibliothek hat und die sich weit verbreitet, dann reproduzieren sich die Effizienzgewinne aus dieser einen Bibliothek mitunter millionenfach auf Geräten, die diesen Quellcode ausführen.
Auch Videospiele sind Software: Skaleneffekte mit der Sustainable Games Alliance
In unserem Interview mit der Sustainable Games Alliance wird noch einmal deutlich, wie solche Skaleneffekte in der Praxis aussehen können.
Maria Wagner und Jiri Kupiainen von der Sustainable Games Alliance erklären dabei, wie schon das Reduzieren der Auflösung eines Menüs im Videospiel „Fortnite“ große Nachhaltigkeitspotenziale zeigte. Der Grund: Fornite wird zählt weltweit über 650 Millionen registrierte Spieler:innen!
Bei jedem und jeder Einzelnen führt die geringere Auflösung zwar nur zu kleinen Einsparungen beim Energieverbrauch. Millionenfach ausgeführt, führt das insgesamt aber zu erheblichen Einsparungen.
Auch die Frage, wo Code ausgeführt wird, ist hier spannend. Denn es gibt unheimlich viele Deployment-Strategien, wo dann Geräte auf einer großen Skala konfiguriert werden. Hierbei konfiguriert man reproduzierbare Systeme, die man immer wiederverwendet, damit man das nicht alles händisch machen muss. Und wenn man dort eben Einstellungen treffen kann, die leichte Effizienzgewinne rausholen, dann skaliert sich das stark.
Spannend! Gibt es dafür Leitlinien, wie man solche Systeme möglichst effizient gestaltet?
Worauf man auf jeden Fall achten sollte ist, was für eine Software man entwickelt und in welchem Teil der Software man unterwegs ist. Es gibt ja einerseits das Backend, in dem das läuft, was von den Nutzer:innen wegabstrahiert werden soll. [Anm. d. Red.: Administrativer Bereich, in dem Entwickler:innen Änderungen an Webseiten oder Software vornehmen] Hier geht es ein wenig darum, effizientere Berechnungen anzustellen.
Effiziente Software hat aber immer auch die Ebene, dass sie von Menschen bedient wird. Wenn man in einer Software nicht lange rumklicken muss, um Dinge zu finden, nutzt man sie weniger lange – und dadurch ist sie prinzipiell schonmal effizienter. Entwickler:innen können Software also auch so designen, dass Nutzer:innen gesteuert werden, um effizienter zu sein. Effizienz bedeutet ja auch, vorhandene Ressourcen möglichst gut zu nutzen, dass man sie möglichst wenig beansprucht.
Eine andere interessante Ebene ist, zu überlegen, wann bestimmte Aufgaben ausgeführt werden müssen. Wenn ich etwa einen Workload habe, der rechenintensiv ist – wenn ich zum Bespiel eine Klimavorhersage machen möchte – dann braucht das relativ viel Rechenzeit. Und dann könnte ich überlegen, ob ich diese Berechnungen unbedingt direkt oder innerhalb der nächsten fünf Stunden benötige.
Wenn ich sie innerhalb der nächsten fünf Stunden brauche, kann ich die Rechenleistung zum Beispiel ein wenig verschieben, wenn es gerade regnet. Scheint dann die Sonne in den nächsten zwei Stunden, kann ich rechenintensive Aufgaben dahin verschieben, wenn möglichst viele erneuerbare Energien im Stromnetz sind und demtensprechend Emissionen einsparen.
Diese Praktik nennt sich Carbon-Aware-Load-Shifting und ist technisch gesehen möglich. Ich kann dir aber leider nicht sagen, wie präsent das aktuell ist.
Ähnliches Konzept, nur im Web: Grid-Aware-Webseiten
Die Green Web Foundation setzt aktuell ein ähnliches Prinzip im Internet um:
Grid-Aware-Webseiten orientieren sich bei der Darstellung von Webinhalten am aktuellen Strommix.
Enthält dieser aktuell besonders hohe Anteile an fossilen Brennstoffen, wird eine schlankere Version der Seite ausgespielt.
Das erinnert mich an die Grid-Aware-Webseiten von der Green Web Foundation. Gibt es aber auch Gefahren beim nachhaltigen Coding?
Stellen wir uns vor, irgendein Genie würde es schaffen, dass die verfügbare Hardware doppelt so effizient genutzt werden kann, wie bisher. Dann würde das natürlich enorme Einsparungen im Bereich der Energiekosten bringen. Dieses Geld wird in der Regel aber in neue Hardware investiert. Und damit hat man natürlich keinen Zugewinn mehr im Sinne der Nachhaltigkeit.
Solche Rebound-Effekte sind häufig das Problem. Allein schon die Miniaturisierung von Geräten, dass etwa jeder ein Smartphone hat, führt dazu, dass Technologie weiter verbreitet wird und Dinge wie Sprachmodelle mehr genutzt werden. Die Hürde zu konsumieren ist allein dadurch in den letzten Jahrzehnten stark gesunken.
Wollten wir früher einen Film schauen, mussten wir noch ins Kino gehen. Hier gab es eine Konsumentscheidung, für die man Geld bezahlen musste, und man hatte zwei Stunden Entertainment. Heute haben die meisten Menschen zum Beispiel ein Netflix-Abo und das läuft dann als Konsumentscheidung irgendwie mit. Gleichzeitig hat man aber auch Disney+ oder andere Streamingdienste. Die Hemmschwelle, mehr zu konsumieren sinkt dadurch, da der Konsum weniger stark auffällt und Inhalte leichter zugängig sind. Dementsprechend wird viel mehr konsumiert, was unseren digitalen CO2-Fußabdruck erhöht.
Du hattest eben kurz Sprachmodelle angesprochen und auch schon gesagt, dass inzwischen viel mit generativer KI gecoded wird. Wie schätzt du die Auswirkungen von sogenanntem Vibe-Coding für die Umwelt ein?
Ich habe letztes Jahr an einem Paper mitgeschrieben, wo wir einen KI-Agenten relativ einfache Probleme haben lösen lassen. Dann haben wir ihm ein paar Versuche gegeben, um den Code in Richtung Energieeffizienz nochmal zu optimieren. Und das hat auf gewisse Art und Weise auch funktioniert.
Es ist aber dennoch schwierig festzustellen, was die Qualität oder was ist die „Güte“ von effizientem Code ist. Also: Was ist guter Code und wie häufig enddeckt man diesen überhaupt in „freier Wildbahn“. Denn es gibt auch reichlich Entwickler:innen, die keinen effizienten Code produzieren, weil sie nicht die Zeit haben oder weil sie es einfach nicht mussten und deswegen nicht gelernt haben. Dementsprechend kann man kaum Aussagen darüber treffen, ob menschlicher oder maschineller Code effizienter ist.
Noch mehr Lust auf „Green-Coding? Hier sind weiterführende Links!
Wir haben Max Westing auch nach weiterführenden Links zum Thema Green-Coding gefragt. Wenn du also noch mehr über das Thema wissen willst, schau hier vorbei:
- Nextcloud ist die erste Cloud-Software mit dem Blauer Engel für Software
- Solar-Powered Webseite passt Inhalte an Solarkraft an
- Green Software Foundation als generelle Anlaufstelle für Green-Coding
- Spezifikationen des Software Carbon Intensity Score der Green Software Foundation
Was sich aktuell sagen lässt ist, dass KI-Systeme, die Code generieren, sehr viel Energie verbrauchen. Einerseits durch ihr Training und durch die Hardware, auf der sie laufen, die sehr ressourcenintensiv ist. Aber ich wüsste nicht, dass es eine mehr oder minder vollständige Lebenszyklus-Analyse davon gibt, ob ein:e Entwickler:in oder ein KI-Agent, der auf Nachhaltigkeit hin arbeitet, effizienteren Code produziert.
Wie sieht eine grüne digitale Zukunft aus?
Elektroschrott, CO2-Emissionen durch KI, Wasserverbrauch von Rechenzentren – aktuell scheint die ungezügelte Digitalisierung nicht mit einem gesunden Planeten vereinbar. Doch es gibt viele Lösungen für eine ökologische und faire Digitalisierung – wir haben sie recherchiert:
Wenn man nun unterstellt, dass es einen Effizienzgewinn bei den Entwickler:innen gibt, wenn sie KI-Tools nutzen, da sie mehr Zeit für die Optimierung ihres Codes haben, dann stellt sich noch immer die Frage, ob das das Training und den Betrieb der KI ausgleicht.
Deswegen gibt es Projekte wie ECO:DIGIT, die uns, wenn sie gut funktionieren, dafür eine Datengrundlage liefern können.
Wir bedanken uns für das Interview, Max!

Du willst keinen Artikel zum Thema verpassen? Dann abonniere unseren Newsletter oder RSS-Feed und folge uns auf Mastodon, Bluesky oder LinkedIn!


