Sustainable Programming, Teil 2 Methoden für die effiziente Programmierung
Sustainable Programming ermöglicht das Einsparen von Ressourcen und stillt damit den Energiehunger von Apps und Anwendungen. Doch welche Möglichkeiten und Methoden gibt es, Software nachhaltig zu entwickeln?
Anbieter zum Thema

Nachhaltige Programmierung ist eine wunderbare Methode, Ressourcen und Umwelt zu schonen. Wie in allen Bereichen der Nachhaltigkeit gilt dabei, einen möglichst kleinen Fußabdruck zu hinterlassen, sowohl in Sachen Umfang als auch in Sachen Leistungsanspruch und nicht zuletzt beim Pflegeaufwand und der Bedienung.
Dem sogenannten Sustainable Programming stehen dabei allerdings eine Reihe von Stolpersteinen im Weg – zuvorderst die Dogmen der klassischen Informatik und die in vielen Unternehmen grassierende Unfähigkeit, bewährte Konzepte neu zu denken. Doch welche Methoden gibt es, um Software nachhaltig zu entwickeln, sofern ein Umdenkprozess möglich ist?
Analyse und Revision vorhandener Lösungen
Der erste Schritt zur nachhaltigen Programmierung ist die Analyse der geplanten Funktionen einer neuen Software. Wer hier von Grund auf neu entwickelt, ist natürlich gegenüber der Fortentwicklung einer bestehenden Lösung im Vorteil.
Nicht selten leidet Software mit der Zeit an „Featureitis“, sprich: Es gibt zahllose Funktionen im Code, die zunächst nur wenige User betreffen, die das Gesamtpaket aber unnötig aufblähen, damit Ressourcen verschwenden und höchstwahrscheinlich die Prozessorlast erhöhen. Es kann sinnvoll sein, diese auszulagern, etwa durch bei Bedarf herunterladbare Programmpakete, Plugin-Packs, oder komplett zu entfernen.
Überflüssiges sollte gestrichen werden, wobei „überflüssige“ Funktionen natürlich oft sehr subjektiv sind. Microsoft etwa ging diesen Weg etwa bei seinem Edge-Browser, der ein völlig neu gedachter, neu programmierter und sehr ressourcenschonender Nachfolger des über fast zwei Dekaden aufgeblähten Internet-Explorers ist. Allerdings fehlten ihm dann auch einige bei vielen Nutzern liebgewonnene Funktionen, was seinen Erfolg so effizient verhinderte, dass Microsoft das Browser-Thema nun noch einmal völlig neu denken will.
Hier gilt es, den richtigen Mittelweg aus Functionality, Usability und Sustainability zu finden, um ein optimales Produkt zu gewährleisten.
Überprüfung der Hardware- und Software-Basis
Zusätzlich sollten Entwicklungsabteilungen, die Software nach Kriterien der Nachhaltigkeit entwickeln wollen, natürlich einen Blick auf die zugrundeliegende Hardware- und Softwarebasis werfen: So kann es sinnvoll sein, vorab zu klären, welche Prozessortypen auf der Ziel-Hardware typischerweise zum Einsatz kommen, um zum Beispiel zusätzliche Kerne, integrierte Multimediasysteme oder andere CPU-Befehlssätze möglichst effektiv zu nutzen und so die Last möglichst gering zu halten.
Auch sollte überprüft werden, welche sonstigen Ausstattungsmerkmale ein typischer Zielrechner hat: Weder Mobile-, noch Desktop- oder gar Serveranwendungen sind nachhaltig, wenn sie die vorhandene Hardware regelmäßig ans Limit treiben. Dabei muss zwangsläufig auch das zugrundeliegende Betriebssystem ins Auge gefasst werden und wie dieses mit der vorhandenen Hardware umgeht. Gegebenenfalls gibt es hier bestimmte APIs, Erweiterungen oder Funktionen, mit deren Aufruf sich die Hardwareauslastung deutlich optimieren lässt.
Caches und Buffer nutzen
Zu diesen Betriebssystem-Funktionen zählen Caches und Buffer – also Zwischenspeicher, die die Hardware deutlich entlasten können. Datenbank-Programme, Web-CMS und viele andere Anwendungen können massiv von solchen Zwischenspeichern profitieren, wenn diese nur intelligent genug eingesetzt werden. So können RAM-Cache-Technologien wie Redis, Memcached oder APCu Webanwendungen deutlich beschleunigen, gleichzeitig reduzieren sie die oft rechenaufwändigen Zugriffe auf Datenbanken oder Datenbankserver deutlich.
Liegen die Caches im Arbeitsspeicher, sind diese besonders energiesparend. Entsprechende Schnittstellen und Funktionen, etwa der PHP-Umgebung oder des Betriebssystems, sollten bei der Entwicklung nachhaltiger Software berücksichtigt werden, um maximale Effizienz zu gewährleisten. Natürlich kann auch die Software selbst eigene Caches verwenden: Professionelle Videoschnitt- und Bildbearbeitungssoftware besitzt entsprechende Funktionen.
Arbeitsspeicher statt Festspeicher
Natürlich sind nicht nur die Caches und Buffer sinnvoll im Arbeitsspeicher aufgehoben: Moderne Rechner und vor allem Server sind diesbezüglich in aller Regel gut ausgestattet. Es spricht also nichts dagegen, die Anwendung oder Teile davon vielleicht in einer RAM-Disk laufen zu lassen, um Energie zu sparen.
Hierbei gilt es aber darauf zu achten, dass die Hardwarebasis für diese Option ausreichend ist, anderenfalls machen Auslagerungsprozesse die Nachhaltigkeit zunichte. Überhaupt ist RAM in vielen Fällen eine gute Option: Wird die Software komplett aus dem Arbeitsspeicher betrieben, hält das die Aktivität stromfressender Festplatten und SSDs auf einem Minimum – und spart dadurch ordentlich Strom.
Andere Umweltfaktoren berücksichtigen
Natürlich sind das alles nur Beispiele: Jeder Entwickler kennt seine Software am besten, hier heißt es zum Energieeinsparung kreativ zu werden. Übrigens ist nicht nur die Energieeinsparungen beim Sustainable Programming wichtig. In einem weiteren Denkschritt sollte auch über Dokumentation, Vertrieb, Wartung und alle anderen Aspekte der Software nachgedacht werden.
Das Einsparen von Material für Verpackung und Datenträger durch direkten Online-Vertrieb kann im Hinblick auf die Nachhaltigkeit sinnvoll sein. Eine gute, natürlich papierfreie, Dokumentation spart zudem unnötigen Aufwand für Support, ja möglicherweise sogar für Mitarbeiter, die sonst, natürlich mit dem Auto, ausrücken müssten.
Gegebenenfalls kann eine intelligent entworfene Knowledge-Base oder FAQ online auch Hilfe zur Selbsthilfe anbieten – und so auch kundenseitige Problemfelder eindämmen. Die nachhaltige Programmierung muss dementsprechend alle Themenfelder umfassen und sollte auch vor scheinbaren Nebenkriegsschauplätzen nicht halt machen. Eine entsprechend ganzheitlich entworfene Software kann den ökologischen Fußabdruck deutlich reduzieren.
(ID:45644860)