Software Development

The rise of the Python

Anfang der 1990er Jahre von unseren Nachbarn in den Niederlanden entwickelt, erfreut sich die Programmiersprache Python in den letzten Jahren stetig zunehmender Beliebtheit. Zum dritten Mal in Folge schneidet der Allrounder im zuletzt erschienenen „Stack Overflow Developer Report” gut ab. Ein Grund für uns, einen Blick auf die Ergebnisse, auf mögliche Gründe für die wachsende Beliebtheit und auf einige Aspekte der Sprache und deren Ökosystem zu werfen.

Python überholt Java als die Programmiersprache, die Entwickler laut einer Stack-Overflow-Umfrage am liebsten nutzen

Stack-Overflow-Ergebnisse

Zunächst ein Blick auf die Zahlen und Aussagen der Umfrage, an der rund 90.000 Entwickler teilgenommen haben. Die größten Teilnehmergruppen stammen aus den USA und Europa. Auch Entwickler aus Indien beteiligten sich zu einem nicht unerheblichen Anteil.

Die für uns interessanteste Aussage ist, dass Python abermals an Bedeutung gewonnen hat. Nachdem Python in 2017 bereits PHP und in 2018 C# als „most commonly used programming language” abgelöst hat, überholt Python 2019 sogar Java und sortiert sich im Gesamtranking auf Platz Nummer vier ein.

Vor Python (39,4 %) stehen auf den Platzierungen eins bis drei:

  1. JavaScript (69,7 %)
  2. HTML/CSS (63,1 %)
  3. SQL (56,5 %)

Diese Platzierung ist bei genauer Betrachtung auch plausibel. Selbst wenn du dich für Java, Python oder andere GPLs (General-Purpose-Languages) für ein Projekt entscheidest, spielen JavaScript, HTML/CSS und SQL in der Regel lückenlos mit den Ökosystemen der Hochsprachen zusammen.

Wenn du zum Beispiel im Webbereich auf Java, Python oder PHP als Basis setzt, kommst du um clientseitiges JavaScript, HTML/CSS und SQL selten herum.

Auch bei den Desktop-Anwendungen lässt sich in den letzten Jahren ein Trend zu Webtechnologien erkennen, insbesondere bei der Umsetzung von Benutzeroberflächen.

Heiß geliebt!

Die Umfrage bringt einen weiteren Punkt hervor, der vermuten lässt, dass sich die Beliebtheit von Python noch nicht im Zenit befindet. Stack Overflow fragte nach den „most loved, dreaded and wanted languages”. Auch hier schneidet Python positiv ab.

Im Ranking der „most loved languages”, also der Sprachen, die Entwickler verwenden und gerne weiterhin verwenden möchten, steht Python mit 73,1 % an zweiter Stelle hinter Rust mit 83,5 %.

Herkömmliche Hochsprachen stehen demgegenüber tiefer im Ranking. Die Bereitschaft der befragten Entwickler, auch in Zukunft auf

  • Java (53,4 %)
  • C++ (52,0 %)
  • PHP (45,8 %) und
  • C (42,5 %)

zu setzen, ist deutlich geringer.

Die „most dreaded languages”, lesen sich fast in umgekehrter Reihenfolge zu den “most loved languages”. Dabei handelt es sich um Sprachen, die Entwickler derzeit einsetzen (müssen), aber wenig Interesse daran haben, sie auch in Zukunft zu verwenden. Sowohl Python als auch Rust „schafften“ es nicht in dieses Ranking.

Dann gibt es noch die Liste der „most wanted languages” mit den Sprachen, die derzeit nicht verwendet werden, Entwickler aber gerne in Zukunft lernen würden. Mit der Erstplatzierung von Python (25,7 %) im dritten Jahr in Folge zeigt sie, wie hoch das Interesse an dieser nicht gerade neuen Sprache ist.

Wer verwendet Python?

Der letzte Aspekt zeigt sich erst nach einem genaueren Blick: Im professionellen Umfeld scheint es einen Zusammenhang zwischen der Erfahrung eines Entwicklers und den von ihm eingesetzten Programmiersprachen zu geben.

Sowohl Python wie Kotlin werden vornehmlich von Entwicklern mit weniger Erfahrung eingesetzt, anders als beispielsweise VBA, F# und Clojure, die eher vom erfahrenen Lager verwendet werden.

Leider ist im Stack-Overflow-Bericht bislang nur eine Zusammenfassung verfügbar, die nicht erkennen lässt, wie es in diesem Zusammenhang mit Sprachen wie Java, C und C++ bestellt ist.

Laut Aussage der Studie sind die Ergebnisse teilweise mit Vorsicht zu genießen. Auch Stack Overflow ist sich darüber klar, dass sie zwar eine große Plattform mit vielen Usern haben, diese jedoch nicht zweifelsfrei einen Durchschnitt aller aktiven Entwickler weltweit darstellen.

Dennoch: Der Trend, der sich in dieser Studie im Bezug auf Python abzeichnet, lässt sich durchaus auch aus den Studien von RedMonk, TIOBE und PYPL ablesen, auch wenn sie im Detail zu leicht abweichenden Ergebnissen kommen.

 

Was macht Python aus?

Das Erste, das einem immer wieder begegnet, wenn man beginnt, sich mit Python zu beschäftigen, ist der Anspruch der Programmiersprache, einen gut lesbaren, knappen Programmierstil zu fördern. Daher wird Python oftmals für Einsteiger empfohlen. (Der Name stammt übrigens nicht vom Reptil, sondern von der Komikergruppe Monty Python.)

Diese Einfachheit soll durch eine reduzierte und auf Übersichtlichkeit optimierte Syntax erreicht werden. Das zeigt sich zum Beispiel durch den Verzicht auf Klammern zur Strukturierung von Code-Blöcken und durch die Reduktion auf wenige Schlüsselwörter.

Die wesentlichen Ziele und Regeln wurden 2004 als „The Zen of Python” in einer Sammlung kurzer, humorvoller Phrasen zusammengefasst.

Was Python weiter auszeichnet, ist die hohe Flexibilität in der Unterstützung verschiedener Programmierparadigmen. Die Sprache unterstützt objektorientierte, aspektorientierte und funktionale Programmierung. Python kommt, wie auch andere dynamisch typisierte Sprachen, oftmals als Skriptsprache zum Einsatz und kann verwendet werden, um die Funktionalität von Plattformen und Tools, die dies unterstützen, zu erweitern.

Außerdem bietet Python eine mächtige Standardbibliothek, die überwiegend plattformunabhängig ist. Daher sind die damit geschriebenen Programme in der Regel auf Unix, MacOS und Windows ausführbar.

 

Warum erfreut sich Python zunehmender Beliebtheit?

Die Sprache macht bereits beim ersten Ausprobieren einen guten Eindruck. Es ist durchaus nachvollziehbar, dass sie für den Einstieg in die Programmierung empfohlen wird.

Dennoch kann dies nicht der alleinige Grund sein, warum Python immer beliebter wird – Python gibt es immerhin schon seit 1994. Die aktuelle Major-Version 3 existiert seit 2008 und ist somit auch nicht gerade neu.

Auch andere Sprachen bieten Plattformunabhängigkeit, eine umfangreiche Standardbibliothek und Unterstützung für ein breites Einsatzgebiet.

Gründe für die steigende Beliebtheit von Python könnten aber weitere Aspekte der Sprache und ihres Umfelds sein. So bietet das Ökosystem von Python für viele Anforderungen Lösungen an.

Python ist umgeben von einem gesunden Ökosystem

Python-Anwendungen lassen sich in einer Vielzahl von Entwicklungsumgebungen erstellen. Es gibt Erweiterungen für Eclipse, Visual Studio und Visual Studio Code. JetBrains pflegt mit PyCharm eine auf die Python-Entwicklung fokussierte Entwicklungsumgebung und bietet darüber hinaus kostenlosen Educational Content.

Mit Jupyter Notebook existiert eine interaktive Umgebung mit Python-Support, die Datenverarbeitung, -aufbereitung und -darstellung in webbasierten Dokumenten ermöglicht. Für Disziplinen wie Data-Science und Computational Science sowie für andere wissenschaftliche Anwendungen scheint Jupyter mit seinem „Notebook“ ein sehr mächtiges Tool zu sein, um Computercode und Rich-Text-Elemente gleichermaßen darstellen und verwenden zu können. Damit kann man sich eine explizite Aufbereitung von Ergebnissen in Dokumenten sparen. Ein sehr interessanter Ansatz!

Der gute Python-Support sehr mächtiger und etablierter Tools wie TensorFlow, das zum Beispiel zur Entwicklung von Machine-Learning-Applikationen dient, dehnt die Anwendungsbereiche der Sprache weiter aus.

Heute ist es für eine Hochsprache wichtig, die Entwicklung von Webanwendungen zu unterstützen. Auch hier bieten Python und sein Ökosystem einiges; FullStackPython gibt einen guten ersten Einblick. Als Vertreter populärer Frameworks erwähnen wir an dieser Stelle Django, Flask und Pyramid. Die Beispiele dieser Frameworks sehen sehr vielversprechend und einfach aus, ganz im Sinne von Python selbst.

Auch für Desktop-Anwendungen gibt es im Python-Umfeld Antworten. PyQt5 macht das Qt-Framework für Python nutzbar. TkInter ist eine weitverbreitete weitere Möglichkeit, um Python-Anwendungen mit einem Graphical User-Interface auszustatten. Und wie diese Auflistung zeigt, gibt es noch viele weitere plattformunabhängige wie plattformabhängige Lösungen, die die Entwicklung von Python-Anwendungen mit GUI unterstützen.

 

Auf den Punkt gebracht

Die gesammelten Eindrücken drängen die These auf, dass sich der Aufstieg Pythons nicht nur durch die gute, leicht verständliche Basis der Sprache erklären lässt. Auch ihr Einsatz in aufstrebenden Bereichen wie Data-Science, Machine-Learning und in wissenschaftlichen Anwendungen dürften eine Erklärung sein.

Der Einsatz von Python in einer Vielzahl interdisziplinärer Themen ist Indiz für den leichten Zugang, den die Sprache bietet. Ferner wird Python auch dem Anspruch an Robustheit und Flexibilität in größeren Softwareprojekten gerecht, sowohl in Web- wie auch in Desktop-Anwendungen.

Man kann also von einem wirklichen Allrounder sprechen. Wie stark eine geringere Fehlertoleranz bei der Entwicklung im Vergleich zu Java und Co., bei komplexeren Anwendungen ins Gewicht fallen, lässt sich generell nicht ohne weiteres sagen.

Eine Vielzahl von Frameworks, Tools und Material im World Wide Web unterstützt das Erlernen und Anwenden von Python ausgezeichnet.

 

Was kann der Vormarsch von Python bedeuten?

Ein Trend in der Softwareentwicklung, den Großkonzerne wie Spotify, Netflix, Amazon oder Twitter geprägt haben, ist es, einzelne Dienste einer größeren Anwendung nicht nur organisatorisch, sondern auch technisch stark voneinander zu entkoppeln. Das eröffnet mehr technische Freiheiten in der Implementierung und auch bei der Wahl der Technologien für einen bestimmten Anwendungsservice.

Dieser Ansatz bietet aber nicht nur technische Vorteile. Er gibt Unternehmen auch die Möglichkeit, Projekte leichter zu skalieren und ferner auch flexibler auf die Vorlieben vor allem junger Arbeitnehmer einzugehen und so die Anforderungen eines sich stetig ändernden Marktes vielleicht besser zu erfüllen.

Wer sagt denn, dass man sich bei der Entwicklung von Desktop-Anwendungen auf ganz bestimmte Programmiersprachen, Frameworks oder Paradigmen festlegen muss?

Vielleicht ist es besser, mehr auf Architekturmuster zu setzen, wie sie sich seit einigen Jahren im Web-Umfeld etablieren. Die Vor- und Nachteile technisch homogener Anwendungen sollte man neu bewerten, wenn die Lebenszyklen einer Software viele Trends am Markt überdauern und Unternehmen Gefahr laufen, für die eingesetzten Technologien früher oder später keine motivierten und qualifizierten Nachwuchskräfte mehr zu finden.

Auch wenn C, C++ und Java wahrscheinlich noch immer den größten Anteil an neu geschriebener Software ausmachen, sollte man sich darüber klar sein, dass ein erheblicher Teil der IT-Fachkräfte offensichtlich ein großes Interesse daran hat, Neues auszuprobieren, Trends zu verfolgen und einen konservativen Weg eher ablehnt.

Als Unternehmen am Markt bestehen

Unternehmen, die jedem Trend folgen, dürften sich zwar verzetteln, aber es ist sicherlich ein zeitgerechter Ansatz, noch mehr darauf zu achten, Neuem wenigstens eine Chance zu geben.

Wegen des allgegenwärtigen Fachkräftemangels in einem Arbeitnehmermarkt, der sich in den nächsten Jahren eher noch verschärfen dürfte, sollten Unternehmen überlegen, inwieweit sie sich zunehmend auch nach ihren zukünftigen Arbeitnehmern richten können.

Unternehmen sollten mutiger werden – im Einsatz von Programmiersprachen, Technologien und Methoden. Klar, das bringt ein höheres Risiko mit sich: im Hinblick auf die Wartung einer heterogenen Landschaft von Technologien und ganz allgemein im Hinblick auf technische Fehlgriffe und aufwandsbezogene Fehlschläge. Unter dem Strich dürfte diese Risikobereitschaft in einem bestimmten Bereich aber das Gesamtrisiko des Unternehmens reduzieren, nicht mehr am Markt – einschließlich des Arbeitsmarktes – bestehen zu können.

Hast du schon mit Python gearbeitet? Teile deine Erfahrungen mit Python in einem Kommentar, oder verrate mir, welche Sprache bei dir auf Nummer eins steht (und warum)!

   
Über Johannes Dicks

Johannes Dicks arbeitet seit 2010 für die itemis AG. Ihm ist wichtig, den stetigen Wandel unserer Branche im Bezug auf Methoden und Formen der Zusammenarbeit im Blick zu haben, diese mit klassischen Vorgehensweisen der Softwareentwicklung zusammenzubringen und bestehende Strukturen zu hinterfragen. Ein gutes technologisches Verständnis, nutzerzentrierte Entwicklung, ein interdisziplinärer Austausch und Empathie sind nur einige Punkte, die für ihn zu erfolgreichen Projekten, Produkten und Innovation führen.