Feature

Python: Wie aus einem Nerd-Projekt eine der beliebtesten Programmiersprachen der jüngsten Zeit wurde

Castle Stalker – bekannt aus Monty Python and the Holy Grail (Joe Dunckley/Shutterstock)

Lesezeit: 8 Min. Gerade keine Zeit? Jetzt speichern und später lesen

Die 90er sind zurück. Und das nicht nur in den Kleiderschränken. Python, die Programmiersprache, die in den 1990er Jahren ihre erste Hochphase hatte, hat mit dem Aufkommen neuer Anwendungsbereiche seit einiger Zeit ein Comeback – und eine faszinierende Entstehungsgeschichte.

Auf eine gewisse Art ist der Aufstieg der Programmiersprache genauso surreal und überraschend wie die Sketche der britischen Comedy-Truppe Monty Python, nach der sie benannt wurde. Heute wird Python von Amateuren und professionellen Entwicklern gleichermaßen genutzt, bei nicht abreißender Beliebtheit unter Webentwicklern, Systemadministratoren und Data-Scientists. Anfang des Jahres wurde das erste Bild eines schwarzen Lochs mithilfe von Python zusammengefügt, ebenso wie es den Code bereitstellt, der hinter künstlichen Intelligenzen von zum Beispiel dieser nützlichen App steht. Netflix’ Streaming-Funktionalität und Teile von Instagram sind darin geschrieben, die Sprache wird bei Weltall-Erkundungen der Nasa eingesetzt und angehende Data-Scientists bauen ihre ersten Machine-Learning-Applikationen typischerweise mit Python.

Die Anfänge

Der Holländer und Programmierer Guido van Rossum hatte die Idee zur Python Ende der 1980er Jahre. Van Rossum war zu der Zeit am CWI tätig, dem nationalen Forschungsinstitut für Mathematik und Informatik der Niederlande in Amsterdam. Er arbeitete mit Amoeba, einem verteilten Betriebssystem, das nur über die UNIX-Shell oder über C zugänglich war. Für C gab es keine Library mit wiederverwendbaren Code-Snippets. Entwickler, die mit C arbeiteten, mussten mit jedem neuen Projekt quasi das Rad neu erfinden, außerdem war die Arbeit damit ein Minenfeld aus Fehlerquellen. Für die Shell gab es zwar eine Suite mit Kommandos für gängige Aufgaben, sie war aber einfach zu langsam – komplexere Logiken konnte sie nicht verarbeiten.

Frustriert von den Unzulänglichkeiten existierender Programmiersprachen entschied er, eine neue zu entwerfen. Van Rossum hatte innerhalb seines Teams am CWI bereits drei Jahre lang an der Konzeption der Programmiersprache ABC gearbeitet. Daher hatte er eine Vorstellung davon, welche syntaktischen Bausteine die neue Sprache benötigen würde und auch, welche Ressourcen er brauchen würde, um einen Interpreter zu bauen, der die Anweisungen eines Programmierers ausführt. Für die Konzeption seiner Sprache plante er, Anleihen bei Funktionalitäten von ABC zu machen.

Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

„Coden macht mir einfach Spaß“

Van Rossum konzipierte Python, um sich seinen Arbeitsalltag leichter zu machen – aber auch, weil er einfach Spaß an dem Projekt hatte. Er sagte über sich selbst: „Coden macht mir einfach Spaß.“ Ende der 80er war er mit diesem Mindset in guter Gesellschaft: Larry Wall erfand Perl, weil er vor einem Problem stand, das er mit den Mitteln, die ihm zur Verfügung standen (awk und Shell), nicht lösen konnte. John Ousterhout war auf der Suche nach einer Sprache, die sich für verschiedene Tools wiederverwenden ließ, und entwarf TCL (kurz für Tool Command Language).

Exkurs: In den frühen 80ern bauten Ousterhout und seine Studenten an der UC Berkeley Design Tools für integrierte Schaltkreise – und ihn störte, dass alle diese Tools ihre jeweils eigene Kommandosprache brauchten. Grafische Benutzeroberflächen waren damals noch nicht sehr verbreitet, Tools wurden typischerweise über die Kommandozeile bedient – und für jedes Tool wurden eigene Kommandos festgelegt. Das Hauptinteresse waren die Tools, nicht die Kommandosprachen, deshalb gab sich mit den Sprachen niemand besonders viel Mühe. 1987 kam Ousterhout die Idee, eine Embedded-Command-Language zu entwerfen, die als Library dienen sollte, mit Codebits – die sich für viele verschiedene Anwendungen wiederverwenden ließen und die Stück für Stück um den Code dieser Anwendungen erweitert werden konnten.

Der erste Prototyp

In nur drei Monaten stand der erste Prototyp. Van Rossum sagt selbst, dass er zu dieser Zeit kein besonders ausgefülltes Sozialleben hatte und viel Zeit in das Projekt steckte. Auch wenn viele wichtige Features der heutigen Version fehlten, würde man den Prototyp auch heute noch als Python erkennen. In der ersten Version geschriebene Programme würden wahrscheinlich auch heute noch laufen, so van Rossum. Funktionen, Einrückungen, Dictionaries und Tupel (geordnete Wertesammlungen) seien auf dieselbe Art und Weise definiert worden wie heute. Auch gab es damals schon den interaktiven Prompt, mit dessen Hilfe Berechnungen direkt ausgeführt werden können. Seine Kollegen machten 1989 sofort von dem Prototyp Gebrauch, van Rossum hatte aber trotzdem wenig Hoffnung, eine größere Anwenderbasis damit zu erreichen. Mitte der 80er hatte er bereits versucht, ABC durch das Verteilen von Tapes aus seinem Koffer zu mehr Bekanntheit zu verhelfen. Dabei musste er schmerzlich lernen, wie schwierig die Verbreitung einer neuen Programmiersprache in einer Zeit vor dem Internet war.

Erfolgsfaktor Internet

Mit dem Internet wurde die Verbreitung von Python deutlich einfacher. Van Rossum veröffentlichte Python 1991 über die alt.sources-Newsgroup (eine Newsgroup, die als Repository für das Teilen von nützlichem Source Code aller Art diente) unter einer Art Open-Source-Lizenz – den Begriff gab es damals nur noch nicht. Zum Zeitpunkt dieser ersten Veröffentlichung kam Python bereits mit Klassen, Listen und Strings, sowie den Funktionen lambda, map, reduce und filter (JavaScript, anyone?).

Desillusioniert von ABCs Misserfolg sechs Jahre zuvor gestand van Rossum der wachsenden Nutzerbasis Anfang der 90er wenig Bedeutung zu. Erst nach einiger Zeit begriff er, dass sein Projekt wirklich Potenzial hatte. In seinen Augen ist der Erfolg der Programmiersprache auf eben jene Gründe zurückzuführen, wegen derer er sie kreiert hatte: Python war die erste Programmiersprache, die Usability und Funktionalität auf einem hohen Level vereinte, ohne das eine für das andere zu opfern, wie das jeweils umgekehrt bei C oder der Unix Shell der Fall war.

Clean Code per Default

Es gab Perl – und wäre Perl mit Amoeba kompatibel gewesen, hätte van Rossum laut eigener Aussage wohl nie eine Notwendigkeit für Python gesehen. Perl findet mittlerweile kaum noch Anwendung und wurde im letzten Stack-Overflow-Report nicht einmal erwähnt, während Python als die am schnellsten wachsende Programmiersprache gilt. Python bietet eine saubere und unmissverständliche Syntax mit Einrückungen, die den Code zu Blöcken gruppiert. Der Effekt: Er ist standardmäßig zu einem hohen Grad verständlich und einfach lesbar. Das war die Absicht. Dahinter steckte der Gedanke, dass es beim Programmieren nicht nur darum geht, einem Computer Anweisungen zu erteilen, sondern auch darum, Ideen von Entwickler zu Entwickler zu kommunizieren. Bis dato schrieben viele Programmierer ihre Programme mit einem Mindset von „Hauptsache, das macht irgendwie, was es soll“ . Ob ihr Code auch verständlich und nachvollziehbar war, interessierte oft nicht.

Python gewinnt an Beliebtheit

Ab Mitte der 90er fand Python gehäuft Anwendung beim Schreiben von Skripts zur Audioaufnahme und in der Webentwicklung. Die Erstellung dynamischer Webpages war van Rossums Lieblings-Use-Case. Die Superpower, die schlussendlich wohl Pythons Popularität begründete, war, dass die Sprache Entwicklern erstmals eine Möglichkeit bot, in vergleichbar kurzer Zeit sehr leistungsstarke Skripte zu schreiben.

Außerdem war Python relativ einfach zu lernen und deshalb für Menschen mit ganz unterschiedlicher technischer Expertise und unterschiedlichen Zielen interessant. Administratoren nutzten sie für Automatisierungszwecke, Entwickler schätzten sie wegen der Möglichkeit zur funktionalen Programmierung und weil Python Klassen ohne Vererbung bietet. Wer sich eine fundamentale Grundkenntnis der Programmiersprache angeeignet hatte, konnte damit in relativ kurzer Zeit bereits ziemlich viel machen.

Mit der zweiten Hälfte der 90er war die Nutzerbasis weltweit stark angewachsen und der Vorläufer der Python Software Foundation wurde gegründet. Die zweijährig stattfindenden Python Workshops wurden größer und irgendwann zur jährlich von der PSF ausgerichteten Pycon. 2000 wurde Python 2.0 veröffentlicht. Das Open-Source-Projekt wurde von Mitgliedern des CWI in Amsterdam vorangetrieben. In seiner zweiten Version unterstützte Python zum ersten Mal Unicode. Außerdem neu waren List Comprehension (oder Listen-Abstraktion), die der mathematischen Mengen-Notation ähnelt, und ein vollständiges Garbage-Collector-Modul. Anfang der Nullerjahre wirkten so viele Menschen an der Sprache mit, dass ihr Fortbestand nicht länger an seiner Person festgemacht werden konnte. Unter frühen Usern war die Frage „Was, wenn Guido von einem Bus angefahren wird“ so etwas wie ein Running Gag gewesen. Nichtsdestotrotz spielte van Rossum weiterhin eine Schlüsselrolle bei Pythons weiterer Entwicklung, was ihm den Spitznamen „Benevolent Dictator for Life“ einbrachte.

Version 3.0, die 2008 gelauncht wurde, brachte einige signifikante Modernisierungen der Sprache mit sich, auch wenn Version 2 und 3 sich relativ ähnlich sind. Eine der auffälligeren Neuerungen war, dass das print-Statement zu einer print()-Funktion wurde. Seitdem durchlief die Programmiersprache, die gemeinhin mit der Schlange assoziiert wird, noch mehrere kleinere Versions-Updates, außerdem trat van Rossum letztes Jahr von seiner Rolle als Leitfigur hinter Python zurück. Der Grund: Mit Version 3.8 wurden im Oktober 2019 Assignment Expressions eingeführt. Ein signifikanter Teil der Community zeigte sich im Vorfeld nicht einverstanden. Die Gegner der Neuerung taten ihren Unmut online kund – van Rossum gab in der Konsequenz seinen Posten auf. Im Frühling dieses Jahres riefen Pythons Core-Entwickler eine Wahl für Mitglieder eines neu zu bildenden Lenkungsausschuss aus, der momentan durch Guido van Rossum, Barry Warsaw, Brett Cannon, Carol Willing und Nick Coghlan besetzt ist.

Ein Blick in die Zukunft

Python gewinnt zwar täglich an Beliebtheit, eine der größten Herausforderungen für die Script-Sprache ist aber der mangelhafte Support für mobile Plattformen. Beim diesjährigen Python-Language-Summit warnte Keith Magee, der Co-Founder von Beeware, vor den Konsequenzen für die Sprache, sollte das so bleiben. Die Marktabdeckung mobiler Endgeräte hat mittlerweile ein Ausmaß erreicht, das weder für Desktop-Computer, noch für Laptops jemals denkbar war. Das Beeware-Projekt zielt darauf ab, eine in Python geschriebene Anwendung auf verschiedenen Plattformen veröffentlichen zu können – und das idealerweise ohne Probleme mit unterschiedlichen Umgebungen, Build-Tools oder Kompatibilität. Aktuell ist das immer noch nicht reibungslos möglich – die Unterstützung der Sprache für andere Plattformen außer dem Standard-x86-Desktop-PC ist auch 2019 noch nicht ausgereift. Das Ziel sei, in naher Zukunft eine App aus dem App-Store oder von Google Play auf ein Smartphone downloaden zu können, der man es nicht anmerke, dass sie in Python geschrieben wurde, so Warsaw.

Eine weitere Sache seien laut Warsaw die limitierten Möglichkeiten Pythons  zur Verteilung von Tasks auf mehrere Kerne eines Prozessors. Innerhalb eines modernen Chips finden sich typischerweise weit mehr als ein Kern. Bisher ist es Python nicht möglich, diese Kapazitäten zu nutzen. Ein vielversprechendes Projekt ist die Arbeit von Eric Snow. Snow will in seinem Langzeitprojekt die aktuelle Version von Pythons Sub-Interpreter-Feature überarbeiten und die Art, wie jeder einzelne Sub-Interpreter mit Pythons Global Interpreter Lock interagiert, verändern. Warsaw schätzt laut zdnet, dass es mit Version 3.9 soweit sein könnte – also vielleicht in den nächsten eineinhalb bis zwei Jahren.

Die Python-Community arbeitet momentan daran, die Standard-Library der Sprache zu überarbeiten. Sie gilt zwar eigentlich als eine von Pythons Stärken, weil sie ein breites Spektrum gängiger Aufgaben abdeckt, und ist der Grund dafür, dass Python das Attribut „batteries included“ trägt, trotzdem gab es beim diesjährigen PLS Anregungen, ob es – aus einer Reihe von Gründen – nicht besser wäre, wenn man die Nutzer ihre Code-Libraries einfach selbst aus dem PyPI-Repo auswählen ließe.

Auch die personelle Zusammensetzung der Gremien, die die weitere Entwicklung Pythons begleiten und steuern, wird derzeit infrage gestellt. „Ich wünsche mir ganz allgemein mehr Repräsentation, nicht nur in Bezug auf Geschlechtergerechtigkeit, sondern auch im Hinblick auf Ethnien und alles andere“, so Mariatta Wijaya, eine der Core-Entwicklerinnen gegenüber ZD-Net. Die Nutzerbasis sei gerade auch in Ländern wie Afrika und Indien stark – und bislang unterrepräsentiert.

Die Ideen, die die Programmiersprache in den letzten Jahren prägten, stammten aus der Community – von Leuten, die Pythons Möglichkeiten bis aufs Letzte ausreizen und so neue Anwendungsfelder erschließen, wie zum Beispiel die Erstellung des ersten Bildes von einem schwarzen Loch, so Warsaw.

Übrigens, aktuell ist Python in Version 3.8.2 verfügbar.

Ebenfalls interessant:

Meistgelesen

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar
Conduit
Conduit

Schöner Artikel zu Python und der Geschichte vieler Programmiersprachen, allerdings hätte man Batteries included nun wirklich besser übersetzen können. Das ist wie „Batterien im Lieferumfang enthalten“ gemeint, d.h. Produkt auspacken, Batterien einstecken und sofort loslegen.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 70 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Luca Caracciolo (Chefredakteur t3n) & das gesamte t3n-Team

Anleitung zur Deaktivierung