Software kann umfassend zum Umweltschutz beitragen. Sie selbst sollte jedoch auch schonend mit den Ressourcen umgehen.
Das Thema Nachhaltigkeit gewinnt immer mehr an Bedeutung, auch im IT-Bereich. Am Beispiel der Softwareentwicklung diskutieren wir das Thema Nachhaltigkeit in der IT. Dabei soll Software nicht nur zu einer besseren Umweltbilanz beitragen, sondern auch sie selbst sollte die Ressourcen schonen. Das gilt sowohl für die Entwicklung als auch für den laufenden Betrieb.
Ursprünglich stand der Begriff Green IT für eine umwelt- und ressourcenschonende Herstellung, Nutzung und Entsorgung von IT. Man hatte zunächst nur die Hardware im Blick, wenn man eine verbesserte Umweltbilanz bei der Nutzung von Informationstechnologie im Fokus hatte. Heute gehen wir von einem deutlich weitergehenden Begriffsverständnis aus. Demnach umfasst Green IT drei Ebenen, d.h. Green in der IT, Green durch die IT und die Systemauswirkung bzw. Verhaltensveränderung durch IT, welche auch eine Wirkung auf die resultierende Umweltbilanz haben können. Wir werden diese unterschiedlichen Ebenen für eine nachhaltige Informationstechnologie in diesem Artikel untersuchen. Ein weiterer Aspekt ist die Konstanz der Technologie. Software ist während der gesamten Lebenszeit durch eine stetige Weiterentwicklung in Form von Feature-Updates und Fehlerbereinigungen gekennzeichnet. Dabei wechseln Technologien und es kann dazu kommen, dass vorhanden Applikationen sich nicht oder nur mit sehr viel Aufwand an sich ändernde Anforderungen anpassen lassen. Vorteilhaft aus Sicht der Umwelt und auch ökonomisch sinnvoll ist es, wenn grundlegende Technologien, Verfahren und Werkzeuge über den gesamten Lebenszyklus einer Applikation zur Verfügung stehen, denn Anpassungen vorhandener Anwendungssysteme verursachen i.d.R. einen geringeren Aufwand und damit Ressourcenverbrauch als eine stetige Neuentwicklung. Die Wahl der Entwicklungstechnologie spielt dabei eine wichtige Rolle.
Bereits an dieser Stelle kann man festhalten: Unter Green IT versteht man somit eine ressourcenschonende Technologienutzung. Dabei geht es um Maßnahmen im Zusammenhang mit Informationstechnologie, welchen dem Schutz der Umwelt dienen. Der technologische Fortschritt steht bei dieser Betrachtungsweise nicht im Gegensatz dazu, sondern muss im Einklang mit einer positiven Umweltbilanz gebracht werden. Das Motiv des nachhaltigen Software-Engineerings ist es, zuverlässige und langlebige Software zu erstellen, welche die Bedürfnisse der Benutzerinnen und Benutzer erfüllt und gleichermaßen versucht die ökologischen Auswirkungen zu reduzieren. Das Ziel ist es, bessere Software zu entwickeln, damit die Chancen zukünftiger Generationen nicht durch das heutige Handeln beeinträchtigt werden [1].
In diesem Abschnitt grenzen wir die unterschiedlichen Ebenen bezüglich der Umweltauswirkungen durch den Einsatz von IT voneinander ab und verdeutlichen diese Kategorisierung mit Hilfe von Beispielen (Bild 1). Man kann danach unterscheiden, ob die IT einen Beitrag dazu leistet, die Auswirkungen von Vorgängen und Geschäftsprozessen auf die Umwelt zu reduzieren oder ob die IT selbst versucht bestimmten Kriterien der Nachhaltigkeit zu genügen. Man bezeichnet den ersten Aspekt als Green BY IT. Ein typisches Beispiel ist das Durchführen eines virtuellen Teammeetings, statt eines realen Treffens der Teilnehmer. Durch das virtuelle Treffen werden beispielsweise Reisen der Teilnehmer zu einem zentralen Treffpunkt vermieden, das wiederum zu einer Einsparung von CO2-Emissionen führt.
Eine ständige Ausweitung der Nutzung von IT in nahezu allen privaten und unternehmerischen Bereichen hat selbst auch negative Auswirkungen auf die Umwelt, beispielsweise durch einen steigenden Ressourcenverbrauch. Dieser Ressourcenverbrauch wird wiederum durch das Bereitstellen und die Nutzung der Technologie verursacht. Beispiele sind der Einsatz von vielfältigen Ressourcen, wie edle Metalle zur Produktion der Hardware (Halbleiter) oder der wachsende Bedarf an Energie bedingt durch den laufenden Betrieb, zunehmend sogar in einem sogenannten Dauerbetrieb. Um diese negativen Auswirkungen des IT-Einsatzes zu begrenzen, versucht man die IT selbst nachhaltiger zu gestalten. Diese Bemühungen werden als Green IN IT bezeichnet. Ein Beispiel ist der Einsatz von Energiespartechnologie, um den Strombedarf der Hardware zu reduzieren. Software kann so konzipiert, entwickelt und betrieben werden, dass diese Maßnahmen zu einer Minimierung der Umweltbelastungen führen.

Software selbst hat einen erheblichen Einfluss auf die erreichbare Nachhaltigkeit der gesamten sich im Einsatz befindlichen Informationstechnologie. Bereits bei der Planung, der Auswahl der Technologie, dem Einsatz geeigneter Werkzeuge und bei der technischen Realisierung werden in dieser Richtung entscheidende Weichen gestellt, d.h. eine „grüne Softwareentwicklung“ ist ein wichtiges Element des Bereiches Green IN IT (Bild 2). Sustainable Programming bzw. nachhaltige Softwareentwicklung zielt auf die Erstellung klimabewusster Software bei einem möglichst effizienten Einsatz der Hardware ab. Während der Entwicklung von Software gibt es in dieser Hinsicht mehrere Ansatzpunkte:
![Bild 2: Software-Engineering legt den Grundstein für Green-IT [2].](https://digital-magazin.de/wp-content/uploads/2022/01/Software-Engineering-Green-IT-2.png)
Im kommenden Abschnitt wird gezeigt, dass zum Beispiel eine plattformübergreifende Entwicklung von Software sowohl die Anforderungen an moderne Applikationen erfüllen kann und gleichzeitig deren Eigenschaften dazu geeignet sind, die Ressourcen während der Entwicklung und dem Betrieb zu schonen.
Green IT im Allgemeinen und die Energieeffizienz von Programmiersprachen im Speziellen ist noch ein recht junges Forschungsgebiet, daher gibt es hier auch lediglich erste Ergebnisse, welche auf empirischen Untersuchungen basieren. Eine interessante Arbeit wird in [4] präsentiert. Die Autoren der Studie verfolgten das Ziel, die energetische Bilanz von Programmiersprachen zu bewerten. Dazu haben Sie 13 typische Referenzalgorithmen der Informatik, zum Beispiel für die Berechnung der Mandelbrotmenge, mathematische Simulationen usw. in 27 verschiedenen Programmiersprachen implementiert. Diese Programmiersprachen setzen dabei auf unterschiedliche Paradigmen (funktional, imperativ, objektorientiert, scripting). Es wurde eine Bewertung in den Kategorien Energieeffizienz, Laufzeit und Speicherbedarf durchgeführt.
Ein Ergebnis der Untersuchung lautet, dass die kompilierten Sprachen am schnellsten und am energieeffizientesten ausgeführt werden. Auf den ersten Plätzen werden dabei Sprachen wie C, C++ und Pascal genannt. Während die Unterschiede zwischen diesen und ähnlichen Sprachen eher marginal sind, ist der Abstand zu interpretierten Sprachen wie PHP, Python und Pearl maßgeblich. Die zitierte Arbeit kommt zum Beispiel zu dem Ergebnis, dass die Programmiersprachen C, Pascal und Go unter Berücksichtigung einer ausgewogenen Optimierung (Pareto Optimum) von Energieverbrauch, Laufzeit und Speicherbedarf, die besten Werte aufweisen. Ergänzende Informationen zu der interessanten Forschungsarbeit, weitere Artikel zum Thema, Daten zum Setup des Experiments und zu den genauen numerischen Ergebnissen findet man unter [5].
Wie kann man die heutigen Anforderungen an moderne Anwendungen umsetzen, einen möglichst minimalistischen Ressourcenverbrauch während des Betriebs gewährleisten und eine hohe Beständigkeit der Technologie sicherstellen? Bei der Wahl der Technologie sollten die o.g. Aspekte berücksichtigt werden. Mit einer plattformübergreifenden Programmierung – wie man diese zum Beispiel mit RAD Studio [3] durchführen kann – entstehen native Applikationen für jede gewünschte Zielplattform aus einer gemeinsamen Quellcodebasis. Während der Programmentwicklung wird dabei weitgehend unabhängig vom Zielsystem gearbeitet. Ein effizient arbeitender Compiler übersetzt den Quellcode aus einem einzelnen Projekt in die jeweilige Zielplattform, d.h. Windows, macOS oder Linux für den Desktop bzw. iOS und Android für Mobile Geräte (Bild 3). Bei diesem als Multi-Targeting bezeichneten Vorgehen entstehen ausschließlich native Applikationen für die jeweiligen Zielsysteme, welche die o.g. Nachteile – bedingt durch die Nutzung von Zwischenschichten, Interpreter und virtuelle Maschinen – nicht aufweisen. Ebenso sind die entstehenden Anwendungen weniger von der künftigen Weiterentwicklung bzw. Verfügbarkeit von Bibliotheken und Frameworks von Drittanbietern abhängig.

Die Applikationen arbeiten performant, effizient und nutzen die vorhandenen Hardwareressourcen bestmöglich. Die integrierte Entwicklungsumgebung RAD Studio und die zugehörigen Frameworks und Klassenbibliotheken werden seit vielen Jahren beständig weiterentwickelt. Das hat den Vorteil, dass selbst Applikationen, welche vor Jahren initial erstellt wurden, noch heute gepflegt und angepasst werden können. Ebenso ist eine Migration zu einem neuen Softwaresystem in diesen Fall deutlich einfacher und benötigt weniger Aufwand und Ressourcen, da der initiale Quellcode weiterverwendet werden kann (Investitionsschutz). Technologien und Programmiersprache (Delphi) sind gleichermaßen modern und ausgereift. Alle modernen Sprachmerkmale der objektorientierten Entwicklung stehen zur Verfügung. Gleichermaßen kann älterer Quellcode weiterhin problemlos ausgeführt und bei Bedarf angepasst werden (Softwaremigration).
Software soll nicht nur die ökologische Nachhaltigkeit unterstützen bzw. ermöglichen, sondern sie sollte heute selbst weitgehend diesen Anforderungen genügen. Der Grundstein dafür wird während der Entwicklung und der Technologieentscheidung gelegt. Besonders wird aus dieser Perspektive auf die Wartbarkeit, die Möglichkeiten einer Erweiterung und Wiederverwendbarkeit der entwickelten Software geachtet. So gelingt es die ökologischen Kosten nicht nur während des Entwicklungsprozesses, sondern auch während der Nutzung niedrig zu halten. Ebenso entscheidend ist die Nutzungseffizienz der Hardware während des Betriebs. Native Applikationen, welche die vorhandene Hardware ausnutzen sind hier von Vorteil und erlauben auch eine längere Nutzungsdauer der Hardware unter Berücksichtigung des technischen Fortschritts. Das ist nicht nur ökologisch, sondern auch ökonomisch äußerst erstrebenswert.
[1] https://www.intechopen.com/chapters/69865
[2] Calero C., Piattini M.: Green in Software Engineering, Springer, 2015
[3] https://www.embarcadero.com/de/products/rad-studio
[4] R. Pereira, M. Couto, F. Ribeiro, R. Rua, J. Cunha, J. P. Fernandes, J. Saraiva: Energy eciency across programming languages: how do energy, time, and memory relate?, in: Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering, SLE, ACM, 2017, pp. 256-267.
[5] https://sites.google.com/view/energy-efficiency-languages/home
Um Ihnen ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie Ihr Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder widerrufen, können bestimmte Merkmale und Funktionen beeinträchtigt werden.