zurück zum Artikel

Programmiersprache des Jahres ist Java

Programmiersprache des Jahres ist Java

Zum Jahreswechsel hat sich heise Developer die Frage gestellt, welche Programmiersprache tatsächlich das Prädikat der "Sprache des Jahres" verdient.

Die Top 10 beim PYPL

Die Top 10 beim PYPL

Die "Sprache des Jahres"? Wer dieses Prädikat tatsächlich verdient, fragt sich heise Developer zum Jahreswechsel. Begonnen sei damit, wie überhaupt Berechnungsmethode aussieht: Wie bei klassischen Sprachen gilt auch hier, dass jedes Messverfahren andere Ergebnisse bringt.

Beim Popularity of Programming Language Index (PYPL [1]) setzt man auf die Suche nach Tutorials: Je mehr Entwickler nach Tutorials zu einer bestimmten Programmiersprache suchen, desto interessanter ist sie.

Dieser Ansatz unterscheidet sich von TIOBE [2] – der Benchmark-Klassiker arbeitet mit "Webseiten als Ganzes", was eine andere Demographie ergreift. Die Analysten von RedMonk arbeiten mit einem Algorithmus [3], der Daten aus GitHub und StackOverflow untersucht. Interessant ist hier, dass die Korrelation zwischen den beiden Faktoren im Laufe der Jahre schlechter wurde, um sich dieses Jahr wieder zu verbessern.

Letzter Stand beim TIOBE-Index im Dezember 2016

Letzter Stand beim TIOBE-Index im Dezember 2016

Zu guter Letzt setzt man beim IEEE [4] (Institute of Electrical and Electronics Engineers) auf eine ganze Liste an Faktoren, die von GitHub-Repositories bis zu Erwähnungen auf Twitter reicht. Ein Besuch auf der Website zur Erklärung der Methode [5] ist schon für alle jene interessant, die sich für Rankings im Allgemeinen und Besonderen interessieren.

Die Top 10 bei IEEE

Die Top 10 bei IEEE

Die Sprache des Jahres ist definitiv Java. Das liegt an einem einfachen Grund: Mit der zunehmend größer werdenden Rechenleistung fallen die Schwächen der JVM (Java Virtual Machine) immer weniger ins Gewicht. Zudem pflegt Oracle die von Sun übernommene Sprache behutsam und doch effizient, was sich auf das Ökosystem als Ganzes positiv auswirkt.

Nicht zuletzt dank Googles massiver Rückendeckung – Android Things [6] sei hier exemplarisch genannt – und der im Vergleich zu JavaScript rigiden Sprachspezifikation ist und bleibt die Sprache das Go-to-Werkzeug für fast alle Aufgaben vom Prozessrechner bis zur Workstation. Mit dem Vaadin-Framework beziehungsweise ihm zugrunde liegenden GWT lassen sich dabei sogar Webapplikationen realisieren, ohne eine Zeile JavaScript zu schreiben. Im Embedded-Bereich gibt es neben dem JNI (Java Native Interface) mittlerweile sogar ganze VMs, die auf Mikrocontrollern laufen – am Achtbitter mag das zum Schmunzeln verleiten, während es auf einem STM32-IS in manchen Bereichen sehr sinnvoll sein kann.

Für Java spricht die enorme Portabilität. Dies ist nicht nur aus wartungstechnischer Sicht sinnvoll: Weniger Duplizität bedeutet weniger Fehlerquellen, die Koppelung der Algorithmen (und das Vorhandensein einer einheitlichen Ausführungsumgebung) reduziert Probleme im Bereich der Kooperation.

Doch was ist mit C/C++ und JavaScript, die fast immer in der Spitzengruppe der Programmiersprachen-Rankings zu finden sind? Gegen Ersteres spricht die komplexe Syntax, deren Vermittlung an Fortbildungseinrichtungen mehr Arbeit voraussetzt. Zudem erfährt C – außerhalb von Qt und Rust – nicht sonderlich viel Weiterentwicklung. JavaScript ist über diese beiden Kritikpunkte erhaben, lebt aber mit der Gegenseite. Der sehr "offene" Sprachstandard erleichtert das "Sich-in-den-Fuß-schießen", während die rapide Weiterentwicklung der diversen Bibliotheken immer wieder für Inkompatibilitäten und Ärger sorgt. In Sachen .NET ist und bleibt C# der König: Visual Basic verliert weiter an Bedeutung, während andere .NET-Sprachen nicht wirklich in die Gänge kommen.

Top 5 bei GitHub

Top 5 bei GitHub

Toplisten haben die unangenehme Eigenschaft, eindimensional zu sein. Zudem haben existierende Sprachen den Vorteil, "da zu sein". Ein wichtiger Aspekt ist schnelles Wachstum: Neben Swift muss man hier auch Go, Rust und TypeScript nennen. Hierbei sollte man auch einen Blick auf die Rangliste von bei GitHub gepflegten Programmiersprachen [7] werfen – ein Open-Source-Ansatz beim Sprachdesign scheint sich in vielerlei Weise auszuzahlen.

Bei der Automatisierung häufig anzutreffender Prozesse hat man derweil die Wahl zwischen diversen Shell-Sprachen und Python. Dieser Kampf ist klar zugunsten von Python ausgegangen – die Sprache steigt in der Beliebtheitsskala, während klassische Shell-Programmiersprachen unpopulärer werden.

Im Embedded-Markt braut sich ein kleines Stürmchen zusammen: Ließ sich hier vor einigen Jahren noch mit einem Plädoyer zugunsten der didaktischen Günstigkeit von Assembler punkten, dürfte das mittlerweile weniger schön ausfallen. Das Ranking des IEEE – es handelt sich hier um die einzige Datenquelle, die den Embedded-Bereich spezifisch herausbricht – sieht Arduino mit 69,5 Punkten an dritter Stelle hinter C (100) und C++ (95,8) – Assembler ist zwar rund 1,5 Punkte weiter hinten, was aber im Bereich der Messgenauigkeit liegt.

Im Zusammenhang mit der zunehmenden Verbreitung von Echtzeitbetriebssystemen im Arduino-Bereich [8] ist hier noch einiges zu erwarten: Wer ein RTOS (Real-time Operating System) auf Basis von Arduino mit einem Modulationsdomänenanalysator verbindet, sieht, dass Bit-Banging von Protokollen hier nicht wirklich möglich ist.

Ein alter Spruch besagt, dass eine Aufgabe immer dann besonders einfach ist, wenn man das dazu passende Werkzeug hat. Aus diesem Grund gehört der Flur nun unseren Lesern: Verraten Sie doch uns und Ihren Mitlesern im Artikelforum, wie sie das Thema einschätzen ... (Tam Hanna) / (ane [9])


URL dieses Artikels:
http://www.heise.de/-3583597

Links in diesem Artikel:
[1] http://pypl.github.io/PYPL.html
[2] http://www.tiobe.com/tiobe-index/
[3] http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/
[4] http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2016
[5] http://spectrum.ieee.org/ns/IEEE_TPL_2016/methods.html
[6] https://www.heise.de/meldung/Internet-der-Dinge-Google-bringt-Android-Things-3570595.html
[7] https://github.com/showcases/programming-languages
[8] https://www.heise.de/meldung/Roboterarme-Schmaehbriefe-und-der-Flurfunk-Arduino-Developer-Summit-Tag-zwei-3253302.html
[9] mailto:ane@heise.de