Studie: Code in JS ist bis zu zehnmal komplexer als in anderen Sprachen

Die komplexeste Programmiersprache ist… C#, Java, JavaScript?

Jan Weddehage

© Shutterstock / alphaspirit

Programmiersprachen können Entwicklern oftmals Kopfzerbrechen bereiten. Insbesondere dann, wenn die Syntax einer Sprache Komplexität nicht reduziert, sondern fördert. Wie eine Erhebung des Unternehmens Seerene ergab, leidet vor allem das populäre JavaScript unter einem Komplexitätsproblem – aber stimmt das wirklich?

JavaScript ist heutzutage die Sprache für Front-End-Entwickler. Doch was unterscheidet JS von anderen Programmiersprachen wie COBOL, C, C++, C#, Java oder Python? Die Antwort: nicht besonders viel. JavaScript ist wie die genannten Beispiele im Wesentlichen eine prozedurale Sprache – mit einem entscheidenden Unterschied: JS hat ein Komplexitätsproblem.

Komplexitätsproblem: Die Daten sprechen dafür

Das Unternehmen Seerene hat über 400 Millionen Zeilen an Code ausgewertet, um in Erfahrung zu bringen, welche Programmiersprache Softwareentwicklern am meisten Kopfzerbrechen bereitet. Die Ergebnisse hat der Konzern in einer Infografik zusammengetragen. JavaScript führt das Feld eindeutig an.

Um den Komplexitätsgrad einer Sprache zu messen, wurde ermittelt, wie hoch der prozentuale Anteil an verschachteltem Code (viermal oder häufiger) in einem Projekt ist. Angeführt wird die Auswertung von JavaScript mit 8,36 Prozent. Deutlich dahinter liegen PHP mit 2,71 Prozent und Java mit 2,12 Prozent. C# belegt mit 1,14 Prozent den vorletzten Platz. Python bildet mit 0,95 Prozent das Schlusslicht.

Außerdem wurde auf Grundlage des Frageverhaltens der Nutzer von StackOverflow (Stand Juli 2015) geprüft, bei welcher Sprache die meiste Hilfe benötigt wird. Auch hier belegt JavaScript Platz eins in der Statistik. Dahinter folgen Java, PHP, C# und Python.

Ferner wurde der Frage nachgegangen, welcher Sprache es an Effizienz mangelt. Um dies festzustellen, wurde analysiert, wie viele Zeilen an Code bei jeder Änderung durchschnittlich überarbeitet werden müssen. Mit einem Wert von 1.500 führt JavaScript wiederum das Feld an. C folgt mit 1.100, dicht gefolgt von Visual Basic mit 950 und C# mit 900. Unter einen Wert von 900 schafft es nur C++.

International JavaScript Conference
Hans-Christian Otto

Testing React Applications

by Hans-Christian Otto (Suora GmbH)

Sebastian Witalec

Building a Robo-Army with Angular

by Sebastian Witalec (Progress)

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

User melden Zweifel an

Code in JavaScript ist bis zu zehnmal komplexer als in anderen Sprachen – so lautet das abschließende Fazit der Erhebung. Aber nicht alle User stimmen mit dem Ergebnis überein und machen ihren Unmut in den Kommentaren Luft. Generell wird der Sinn, Skriptsprachen mit anderen Programmiersprachen zu vergleichen, infrage gestellt. Beispielsweise suggeriere die Infografik, dass JavaScript eine komplexere Sprache als C# sei – das entspräche aber nicht der Realität.

Besonders in der Kritik stehen die zum Einsatz kommenden Metriken. Diskutiert wird, ob der Komplexitätsgrad einer Sprache hinreichend per Analyse von verschachteltem Code gemessen werden könne. Da etwa Closures oder anonyme Callbacks herkömmliche Features in JS seien, stelle die Verschachtelung keinen aussagekräftigen Parameter dar.

Außerdem darf daran gezweifelt werden, ob durch die Anzahl der zu überarbeitenden Codezeilen wirklich auf die Ineffizienz einer Sprache geschlossen werden kann. Der Kontext, in dem ein Projekt angesiedelt ist, findet derart nicht hinreichend Berücksichtigung. Erschwerend kommt hinzu, dass die Anzahl der Zeilen nur selten Auskunft über die mit ihnen verbundenen Veränderungen gibt. 1500 überarbeitete Codezeilen können mitunter deutlich effizienter als 900 sein.

Unklarheit herrscht ebenfalls über die Auswertung des Frageverhaltens. So wird nicht ausreichend berücksichtigt, dass es sich bei JavaScript seit knapp einer Dekade um die beliebteste Programmiersprache im Netz handelt. Demzufolge ist es wenig verwunderlich, dass viele Fragen gerade zu diesem Thema gestellt werden.

Ist JavaScript komplex?

Trotz der Vorbehalte der Untersuchung gegenüber – die Ausgangsthese bleibt: JavaScript tut wenig, um Komplexität zu vermeiden. Ein Grund dafür findet sich womöglich in der Historie: JavaScript ist ursprünglich für die Back-End-Entwicklung konzipiert worden. Angestoßen von der mobilen Revolution verlagerte sich das Einsatzgebiet jedoch zunehmend auf den Front-End-Bereich.

Lesen Sie auch: Aufwandsschätzungen für Entwickler: Mit Story Points die Komplexität erfassen

Der Wandel vollzog sich schnell; die Führungsetagen verlangten aber rasche Ergebnisse. Es blieb schlicht nicht genügend Zeit, um das chaotische Back-End-Erbe hinreichend aufzuarbeiten und die Sprache für die Front-End-Entwicklung fit zu machen. Das ist seit den späten 2000ern die Realität, mit der sich JavaScript-Entwickler rumschlagen müssen. Und ihr Leiden scheint  sich nun anhand von Daten belegen zu lassen.

Aufmacherbild: Businessman at the center of a maze via Shutterstock / Urheberrecht: alphaspirit

Verwandte Themen:

Geschrieben von
Jan Weddehage
Jan Weddehage
Jan Weddehage studiert an der Goethe Universität Frankfurt am Main und arbeitet seit März 2015 als Werkstudent bei Software & Support. Kontakt: jan[at]janweddehage.de
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "Die komplexeste Programmiersprache ist… C#, Java, JavaScript?"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Simon
Gast

Ein wichtiger Grund für die hohe Komplexität ist der asynchrone Character von js. Wieviele C oder C# Programme kennen Sie, Four so konsequent mit Callbacks oder Promises arbeiten?