Programmiersprachen-Rankings
27.07.2020, 11:01 Uhr
Wer misst, misst Mist
Physikstudenten lernen den Spruch aus der Überschrift im ersten Semester kennen und werden angehalten nicht nur ihre Ergebnisse sondern auch ihre Messmethoden akribisch zu dokumentieren.
Dass der Spruch aus der Überschrift auch bei Programmiersprachen-Rankings zutrifft, zeigen die Leser-Kommentare zum aktuellen Ranking der Zeitschrift IEEE Spectrum deutlich. In guter Tradition haben die Verfasser des Rankings ihre Messmethoden leidlich gut dokumentiert. Die gefundenen Ergebnisse führen in den Kommentaren allerdings zu sehr heftigem Widerspruch der Leser. Hier die Top-10-Liste der Sprachen im Vergleich zum aktuellen Tiobe-Ranking (in runden Klammern) und Redmonk (in eckigen Klammern):
- Python (Tiobe: C) [Redmonk: JavaScript]
- Java (Java) [Python]
- C (Python) [Java]
- C++ (C++) [PHP]
- JavaScript (C#) [C#]
- R (Visual Basic) [C++]
- Arduino (JavaScript) [Ruby]
- Go (R) [CSS]
- Swift (PHP) [TypeScript]
- Matlab (Swift) [C]
Die Unterschiede bedeuten nicht, dass eine der Erhebungen falsch oder fehlerhaft ist. Sie sind schlicht unter anderen Voraussetzungen entstanden. Das beginnt damit, welche Sprachen überhaupt in das Ranking aufgenommen wurden. Hier setzt auch die erste Kritik der IEEE-Leser an: Sie bemängeln, dass Plattformen wie Arduino und CUDA sowie Matlab (die zugehörige Programmiersprache wäre Simulink) in das Ranking von Sprachen aufgenommen wurden. Außerdem ist beispielsweise CoffeeScript (bei Tiobe auf Rang 62) im Ranking enthalten, TypeScript (bei Tiobe auf Rang 42) aber nicht – bei Redmonk kommt TypeScript sogar auf Rang 9. Der Aufbau der Erhebung scheint somit schon aus diesem Aspekt heraus etwas zweifelhaft.
Der zweite Kritikpunkt beruht darauf, dass das Ergebnis nicht dem Empfinden der Leser entsprechen. Das kann beispielsweise darauf hindeuten, dass Entwickler in ihrer eigenen Blase leben, wie man das Neudeutsch nennt. Wer beispielsweise Webseiten für Restaurants entwickelt, hat vielleicht keine Ahnung, wie beliebt wohl ABAP (Tiobe: 29, IEEE: 45) ist.
Ganz sicher hängen die Ergebnisse vom Aufbau der Messmethoden ab, die IEEE Spectrum hier dokumentiert hat. Elf Kriterien seien dabei ausgewertet worden, heißt es.
Das erste Kriterium wertet die Google-Suche aus, konkret: "using Google's API to search for the template 'X programming.' This number indicates the volume of online information resources about each programming language." Für .NET-Entwickler ist schon dieses Kriterium äußerst zweifelhaft – insbesondere, wenn man obige Zuordnungen (etwa Matlab statt Simulink) berücksichtigt. Schließlich sind ein großer Teil der Online-Ressourcen zu C# unter dem Stichwort .NET zu finden. C# wird von IEEE Spectrum auf Rang 23 geführt (Tiobe: 5) [Redmonk: 5]. Visual Basic auf Rang 27 (Tiobe: 6).
Die weiteren herangezogenen Kriterien sind:
- Google Trends,
- Twitter,
- GitHub,
- StackOverflow,
- Reddit,
- HackerNews,
- CareerBuilder,
- IEEE Job Site,
- IEEE Xplore Digital Library.
Was in der Dokumentation der Messmethoden fehlt ist die Gewichtung der Kriterien.
Das Kriterium Stellenanzeigen (CareerBuilder, IEEE Job Site) ist in zweierlei Hinsicht problematisch: Erstens, weil jede Jobbörse nur auf einen Ausschnitt der Jobangebote Zugriff hat und zweitens weil die Zahl der Anzeigen nicht unbedingt die Zahl der Neueinstellungen widerspiegelt. Fiktives Beispiel: Tesla sucht 2.500 "TES"-Entwickler in nur 3 Anzeigen, die weltweit geschaltet werden. Eine für das Fußvolk, eine für Teamleiter und eine für den CTO. Andererseits sucht die kreative 20-Mann-Firma einen einzelnen "ZXY"-Entwickler mit 20 unterschiedlichen Anzeigen.
Was stimmt also? Nun: Das Ergebnis von Tiobe stimmt und das von IEEE Spectrum stimmt auch. Sie sind unter gänzlich anderen Voraussetzungen entstanden. Aus der Sicht von .NET-Entwicklern ist das IEEE-Ranking so entstanden, dass CSharp schon vom Aufbau der Messmethode her benachteiligt wurde.
Vergleicht man die Auswertungen von IEEE Spektrum, Tiobe und Redmonk fällt auf, dass in den Top-10 aller drei Rankings die Sprachen Python, Java, C, C++ und JavaScript vorkommen. Der Schluss liegt also nahe, dass diese Sprachen wirklich sehr beliebt sind. Welche Sprachen die übrigen fünf Plätze der Top-10 belegen hängt dann von den gewählten Messmethoden ab.