Java

Java ist eine der effizientesten Programmiersprachen

Heutzutage kommen immer mehr Menschen in ihrer Freizeit mit der Programmierung in Berührung. Auch Unternehmen suchen Software-Ingenieure, sodass die Nachfrage nach Computer-Software und -Hardware steigt. Hardware-Unternehmen wie Intel, AMD und Nvidia verzeichnen in den letzten Jahren hohe Umsätze, ebenso wie viele andere Software-Unternehmen wie Microsoft oder Apple. [1][2]

Saffu

Obwohl der Stromverbrauch weiterhin zugenommen hat, hat dieser in den letzten Jahren zu stagnieren begonnen. Es könnte viele Gründe dafür geben, wie den Lockdown, intelligenteren Gebrauch und/oder die bessere Effizienz von elektrischen Geräten. [3][4][5]

Programme können auch in Geschwindigkeit, Energieverbrauch und Speicherbelegung variieren. Im Allgemeinen kann man Programmiersprachen in drei Kategorien einteilen: kompiliert, in einer virtuellen Maschine kompiliert oder interpretiert. Die folgende Tabelle zeigt die Ergebnisse eines Benchmarks von Rechenaufgaben unter 27 verschiedenen Programmiersprachen. [6]

Abbildung 1

Allgemein kann man sagen, wie in Abbildung 1 dargestellt, dass kompilierte Sprachen schneller sind als Compiler für virtuelle Maschinen und diese wiederum schneller sind als interpretierte Sprachen. Das Gleiche gilt für den Speicherverbrauch. Unabhängig von dieser Beobachtung gibt es einige Ausnahmen.

Es gibt einige VM-Programmiersprachen, die einige kompilierte Sprachen übertreffen, darunter Java und Lisp. Wenn man Java genauer betrachtet, sieht man, dass es zu den fünf schnellsten und auch zu den fünf sparsamsten Programmiersprachen gehört. Nur vier Programmiersprachen sind schneller und effizienter, und alle basieren auf Compilern. Ein genauerer Blick auf das Verhältnis zwischen Energie und Zeit zeigt noch deutlicher, wie effizient einige der Programmiersprachen sind.

Sprachen verbessern sich mit der Zeit

Um fair zu sein, muss man dazu sagen, dass dieser Benchmark aus dem Jahr 2017 stammt. 2020 wurde ein Update einiger Sprachen durchgeführt und der Benchmark nochmals durchgeführt. Das Ergebnis ist durchaus positiv zu betrachten, denn alle Sprachen haben sich in der Effizienz verbessert. Auch die neue Programmiersprache Julia kann sich sehen lassen. Diese würde Java sogar aus den Top 5 stoßen, siehe Abbildung 2. Leider gibt es keine aktualisierte Daten von Java, diese könnte sich in den letzten Jahren ebenfalls verbessert haben. Es wäre auch interessant, Python nochmals anzuschauen, was bisher eher ein Schlusslicht war.

Zusammenfassung

Da Python in den letzten Jahren eine der meistdiskutierten Programmiersprachen ist, bin ich überrascht, dass es eine der langsamsten und ineffizientesten Sprachen in der Auswertung (Abbildung 1) ist. [8] Im Vergleich mit dem ersten Platz ist der Kontrast noch größer. Python ist 75-mal weniger effizient und 71-mal langsamer als C. Um fair zu sein, Python ist bequemer. Es ist viel einfacher, Code in Python zu schreiben und zu verstehen, was auch ein Grund dafür sein könnte, dass so viele Neulinge diese Sprache wählen. Aber basierend auf Geschwindigkeit und Stromverbrauch sollte diese Programmiersprache eine der letzten Wahlen sein, da sie am unteren Ende der Tabelle steht.

Nachweise

[1] https://www.hardwaretimes.com/amd-66-had-the-highest-revenue-growth-in-2021-followed-by-nvidia-at-62-intel-at-1-5-counterpoint-research/
[2] https://fortune.com/global500/
[3] https://data.worldbank.org/indicator/EG.USE.ELEC.KH.PC?end=2014&locations=EU&start=1960&view=chart
[4] https://www.statista.com/statistics/280704/world-power-consumption/
[5] https://yearbook.enerdata.net/total-energy/world-consumption-statistics.html
[6] https://sites.google.com/view/energy-efficiency-languages/home
[7] Original work in SLE’17 – Updated Functional results – 2020 (google.com)
[8] Stack Overflow Developer Survey 2023