Das sind die beliebtesten Programmiersprachen
Es gibt eine babylonische Vielfalt von Programmiersprachen. Dabei haben alle ihre Vor- und Nachteile sowie Anwendungsgebiete. Dominik Gruntz, Professor für Informatik an der FHNW, gibt eine Übersicht über die beliebtesten und meistgenutzten Programmiersprachen.
Seit vielen Jahren sind die Toppositionen der Programmiersprachen gesetzt: Java, PHP, C/C++, C# und Javascript. Andere Programmiersprachen konnten sich nur in Nischen etablieren, wie etwa Objective-C für die Programmierung des iPhones oder Python für das wissenschaftliche Rechnen und für Machine Learning.
Die universelle Programmiersprache braucht es nicht mehr
In den vergangenen zehn Jahren haben viele alternative Sprachen an Popularität gewonnen und es scheint, dass die etablierten Sprachen den neuen Ansprüchen nicht mehr genügen. Neue Konzepte erlauben es, gewisse Probleme einfacher und eleganter zu lösen sowie gewisse Klassen von Programmierfehlern zu vermeiden, wie etwa die Herausforderung von Multiprozessorkernsystemen. Häufig werden solche Konzepte, wenn sie sich in der Praxis bewährt haben, von den etablierten Sprachen aufgenommen. Man könnte also meinen, dass die Entwicklung auf eine einzige "Lingua franca" zusteuert, die der aktuellen babylonischen Programmiersprachenverwirrung ein Ende bereitet.
So eine universelle Programmiersprache wird jedoch nicht entstehen, denn sie ist nicht mehr nötig! In heutigen Architekturen kommunizieren Module über definierte Programmierschnittstellen (etwa über REST-Schnittstellen), und diese Module können in unterschiedlichen Sprachen programmiert werden. Natürlich darf in einer Firma nicht jeder Mitarbeitende seine eigene Programmiersprache nutzen. Aber es ist typisch, dass in einem Projekt unterschiedliche Programmiersprachen eingesetzt werden, etwa Typescript für das Web-Front-End, Kotlin für Android- und Swift für iOS-Applikationen sowie Go in der Cloud. Es ist daher durchaus möglich, für ein neues Teilprojekt auf eine neue Programmiersprache zu setzen und damit einen Schritt in die Zukunft zu wagen. Zeit also, die Vorteile der Programmiersprachenvielfalt zu nutzen!
In der Tabelle gibt es eine Übersicht über die am häufigsten verwendeten sowie den von den Programmierenden am meisten geliebten Programmiersprachen. Im Folgenden gehen wir auf jede davon kurz ein.
Klickt man auf die Tabelle, erscheint oben rechts die Option, die Tabelle im Vollbild zu betrachten.
C und C++
C und C++ sind nach wie vor beliebte Programmiersprachen in der System- und Anwendungsprogrammierung, insbesondere dann, wenn Effizienz wichtig ist. C ist zudem häufig die erste Programmiersprache, die auf einer neuen Hardware-Plattform unterstützt wird. Viele der heutigen Datenbanksysteme wie zum Beispiel Oracle, MySQL oder MongoDB sind in C++ programmiert.
Python
Python ist eine Programmiersprache, die sich durch Einfachheit auszeichnet und daher im Grundlagenfach Informatik an unseren Gymnasien eingesetzt wird. Python ist die Sprache in den Bereichen Data Science und Machine Learning, wird aber auch zunehmend im Embedded-Bereich genutzt. Python ist plattformunabhängig, das heisst, Python-Programme können auf fast allen Betriebssystemen ausgeführt werden. Der Name Python geht übrigens nicht (wie das Logo vermuten liesse) auf die gleichnamige Schlangenfamilie zurück, sondern auf die britische Komikergruppe Monty Python.
Java
Java-Programme werden in einen Byte-Code übersetzt und von einer virtuellen Maschine (der JVM) interpretiert. Dieser Code ist unabhängig von Betriebssystem und Hardware und kann sowohl auf Smartphones, Desktop-Rechnern und auf Servern ausgeführt werden. Die JVM ist sehr effizient und verwendet Konzepte wie Just-in-time-Kompilierung und Hotspot-Optimierung, um die Ausführungsgeschwindigkeit zu erhöhen. Auch wenn die Programmiersprache Java an Bedeutung verlieren wird und wohl COBOL als Legacy-Sprache ablösen wird, so sieht die Zukunft der JVM rosig aus, denn viele neue Programmiersprachen verwenden die JVM als Zielplattform. Aktuell ist Java immer noch eine der populärsten Programmiersprachen. Rund 70 Prozent der professionellen Vollzeit-Entwickler weltweit verwenden Java.
Javascript
Javascript ist eine Programmiersprache, die 1995 von Netscape für interaktive Websites entwickelt wurde. Javascript-Programme werden im Browser ausgeführt und verwendet, um Formulardaten zu prüfen oder um im Hintergrund Daten nachzuladen. Javascript hat mit Java nur den Namen gemein, ist aber ansonsten eine völlig eigenständige Programmiersprache und wird auch auf Servern oder in Mikrocontrollern eingesetzt oder für die Entwicklung von mobilen Applikationen verwendet.
C#
C# ist die wichtigste Programmiersprache in der Welt des .NET-Frameworks von Microsoft. C# wurde 2001 als Konkurrenz zu Java entwickelt. C# wird vollständig von Microsoft kontrolliert, was den Effekt hat, dass Erweiterungen der Sprache rasch umgesetzt werden können. Entwickelt wurde C# von Anders Hejilsberg, der neben C# auch Turbo-Pascal, Delphi und Typescript entwickelt hat.
Scala
Scala ist an der EPFL von Martin Odersky entwickelt worden, der an der ETHZ promoviert hat und unter Niklaus Wirth an der Entwicklung von Modula-2 und Oberon beteiligt war. Scala ist eine funktionale und objektorientierte Programmiersprache, die auf der JVM läuft. Scala wird von vielen Start-ups verwendet, aber auch von grossen Firmen wie Linkedin oder Twitter. Netflix verwendet Scala im Gebiet Machine Learning. Gemäss Stackoverflow-Umfrage 2020 ist Scala mit den höchsten Löhnen assoziiert.
Go
Go ist eine Sprache von Google, hat aber seine Wurzeln ebenfalls in der Schweiz. So war Robert Griesemer, der an der ETH Zürich studiert und bei den Professoren Hanspeter Mössenböck und Niklaus Wirth promoviert hat, massgeblich an der Entwicklung von Go beteiligt. Go ist statisch typisiert und wird zu Maschinencode kompiliert und verfügt über eine automatische Speicherbereinigung. Go ist insbesondere für die Entwicklung von Microservices in der Cloud relevant. Die Werkzeuge Docker und Kubernetes sind in Go programmiert.
Rust
Rust wurde von Mozilla entwickelt und wird von der Rust Foundation weiterentwickelt, die diesen Februar von Mozilla, Google, Microsoft, AWS und Huawei gegründet worden ist. Rust unterstützt ein Ownership-Typsystem, welches die Grundlage für eine sichere Speicherverwaltung ohne automatische Speicherbereinigung bildet. Rust gilt als besonders sicher und eignet sich deshalb für die Systemprogrammierung sowie für die Weiterentwicklung des Internet of Things (IoT). Google hat kürzlich Android für Rust geöffnet, was heisst dass Bestandteile des Android-Betriebssystems nun auch in Rust programmiert werden können. Bekannt ist, dass der Bluetooth-Stack neu in Rust geschrieben wird. Grund für den Wechsel hin zu Rust als Alternative zu C und C++ ist laut Google, dass mit Rust Speicherfehler nicht mehr auftreten können, die häufig die Ursache für Stabilitätsprobleme und auch die Ursache für viele schwerwiegende Sicherheitslücken sind. Rust führt bei der Stackoverflow-Umfrage 2020 die Liste der beliebtesten Sprachen an.
Kotlin
Kotlin ist eine objektorientierte Sprache, die von JetBrains entwickelt wurde. Kotlin wird (wie Scala) als besseres Java gesehen und hat eine Syntax, die wesentlich schlanker ist als jene von Java. Kotlin unterstützt viele moderne Features, die nach und nach auch in Java aufgenommen werden. Kotlin wird insbesondere für die Entwicklung von nativen Android-Applikationen verwendet.
Typescript
Typescript ist eine neue Sprache von Microsoft, die nach Javascript übersetzt wird. Alle existierenden in Javascript geschriebenen Bibliotheken können in Typescript verwendet werden. Im Gegensatz zu Javascript ist Typescript statisch typisiert. Das heisst, gewisse Fehler können bereits vom Compiler zur Übersetzungszeit abgefangen werden und treten nicht erst dann auf, wenn Nutzerinnen und Nutzer eine Website verwenden. Typescript ist die Sprache, die Javascript in ein paar Jahren sein wird, die aber bereits heute in allen Browsern verwendet werden kann. Typescript ist damit eigentlich keine neue Sprache, sondern lediglich das Javascript aus der Zukunft.
Für jede Programmiersprache gibt's ein Ranking
In der Tabelle wird das Ranking dieser Programmiersprachen gemäss PYPL-Index (Popularity of Programming Language) angegeben. Dieser Index wird aufgrund von Suchanfragen nach Programmier-Tutorials bei Google erstellt. Ausser dem PYPL-Index gibt es noch weitere Rankings wie der TIOBE-Index oder die Redmonk-Rankings, und natürlich die Resultate der Umfragen auf Stackoverflow. Es gibt so viele Rankings, dass man für jede Programmiersprache ein Ranking findet, auf dem diese Sprache auf Platz eins zu finden ist.
Die Art der Entwicklungsmethodik und insbesondere auch die Programmiersprachen, die in einer Firma verwendet werden, spielen für Entwicklerinnen und Entwickler eine entscheidende Rolle bei der Wahl des Arbeitgebers. Unternehmen, die Schwierigkeiten beim Rekrutieren von IT-Fachkräften haben, sollten daher darauf achten, dass sie neuen Programmiersprachen und Technologien offen gegenüberstehen.