Die Diskussion um den ökologischen Fußabdruck betrifft auch die IT-Branche im Allgemeinen und die Softwareentwicklung im Speziellen. Unstrittig ist das, IT heute in vielen Bereichen zu einer Schonung der Umweltressourcen beitragen kann. Produktionsprozesse werden effizienter ausgeführt und der Ausstoß von CO2 kann vermindert werden. Dabei gilt jedoch auch der Umstand, dass ein zunehmender Einsatz von Informationstechnologie selbst zu einer erheblichen Steigerung des Ressourcenbedarfs, zum Beispiel in Form von neuer Hardware und zu einem höheren Energiebedarf, zum Beispiel Stromverbrauch führt, da immer mehr Systeme immer längere – teilweise ununterbrochene Laufzeiten – aufweisen. Die Frage nach der ökonomischen Bilanz macht daher auch vor dem IT-Sektor nicht halt. Welchen Einfluss auf die Ökologie die Art und Weise der Softwareentwicklung hat, rückt zunehmend in das Interesse der Betrachtung. Fragen in diesem Zusammenhang sind beispielsweise:

  • Gibt es nennenswerte Unterschiede bei der Ausführung von nativen Applikationen, gegenüber Anwendungen, welche erst zu Laufzeit auf dem Zielsystem interpretiert werden?
  • Welche Rolle spielt dabei die verwendete Programmiersprache und deren technischer Übersetzungsvorgang vom Quellcode zum ausführbaren Code?
  • Korrelieren Laufzeitverhalten, Speicherbedarf und Energieeffizienz miteinander?

Diesen und ähnlichen Fragen wird in einer sehr interessanten Studie der Autoren Pereira u.a. in ihrem Artikel mit dem Titel „Energy eciency across programming languages: how do energy, time, and memory relate?“ auf der Basis einer empirischen Untersuchung nachgegangen [1]. Zur Untersuchung wurden bekannte Referenzalgorithmen in 27 verschiedenen Programmiersprachen implementiert. Während der Ausführung wurden die Messungen in Bezug auf Laufzeitverhalten, Energieverbrauch und Speicherbedarf durchgeführt. Ein zentrales Ergebnis dieser Studie kommt den Schluss, dass kompilierte Programmiersprachen oft um einen beachtenswerten Faktor schneller ausgeführt werden, die damit entwickelten Programme energieeffizienter arbeiten und auch der Speicherbedarf i.d.R. geringer ist als bei interpretierten Programmiersprachen, welche den Zwischenweg über einen Interpreter und/ oder einer virtuellen Maschine nehmen.



Bild 1: Energie, Zeit und Speichereffizient von Programmiersprachen [1].


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: https://sites.google.com/view/energy-efficiency-languages/home.

Literatur und Links

[1] 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.