eBook „Einstieg in Python“ Python will einen Zahn zulegen

Von Filipe Pereira Martins & Anna Kobylinska

Immer mehr Anwendungen entstehen in Python, denn die Skriptsprache ist bekannt für leichte Lesbarkeit, leistungsstarke Bibliotheken und entwicklerfreundlichen Pragmatismus. Im dritten Quartal 2022 erschien Python 3.11, das einen Geschwindigkeitszuwachs von bis zu 60 Prozent bringen soll.

Ob Datenwissenschaft, Internet of Things, Desktop- oder auch Web-Entwicklung: die Liste der Anwendungsgebiete von Python ist lang.
Ob Datenwissenschaft, Internet of Things, Desktop- oder auch Web-Entwicklung: die Liste der Anwendungsgebiete von Python ist lang.
(© Mongta Studio - stock.adobe.com / Unsplash)
eBook Einstieg in Python
eBook „Einstieg in Python“
(Bild: Dev-Insider)

E-Book zum Thema

Das eBook „Einstieg in Python“ zeigt unter anderem, wie man die besten Erweiterungen findet und wie sich diese in der Praxis einbetten lassen.


Beinahe drei Jahrzehnte lang fristete Python ein wenig glamouröses Dasein im Schatten der großen Programmiersprachen aus der C-Familie vor sich hin. Mit dem Aufkommen von Datenwissenschaften als ein universell nachgefragter Anwendungsfall startet Python jetzt richtig durch.

Python hat jetzt im Sommer 2022 die begehrte erste Position im TIOBE Programming Community Index erobert und ist auf dem Weg, zum dritten Mal in Folge in die „Hall of Fame der Programmiersprachen“ von TIOBE aufgenommen zu werden.

In der jährlichen Umfrage von StackOverflow vom Mai 2022 („Stackoverflow 2022 Developer Survey“) konnte sich Python unter den Teilnehmern aus der Gruppe „Learning to Code“ neben JavaScript und HTML/CSS als eine der drei beliebtesten Sprachen bewähren. An der Erhebung haben im Mai 2022 mehr als siebzig tausend Entwickler teilgenommen.

Python liegt übrigens gleichauf mit Rust in der Liste der meist begehrten Skript-, Programmier- und Markupsprachen unter all jenen Entwicklern, die damit derzeit (noch) nicht arbeiten: auf Platz eins.

Her mit den vielen Daten!

Python-Code steht hoch im Kurs. Von „klassischen“ Datenwissenschaften über KI/ML, das Internet of Things, Desktop-Anwendungen mit einem GUI bis hin zur Web-Entwicklung im Front- und Backend – die Liste möglicher Anwendungsfälle ist lang. Der pragmatische Umgang mit Datentypen und die robusten wissenschaftlichen Bibliotheken sind die tragenden Säulen von Pythons Popularität.

Doch jede Sprache hat auch Schwächen und Python ist keine Ausnahme. Im Großen und Ganzen ist hier die Ausführung zu langsam. Zum Glück mangelt es nicht an Bemühungen, die Leistungsdefizite zu überwinden.

Eben diesem Ziel widmet sich die Initiative Faster CPython Project, die im vergangenen Jahr (2021) Guido van Rossum, der Erfinder und Hauptentwickler von Python, der sogenannte „Benevolent Dictator for Life“, mit der Unterstützung von Microsoft gegründet hatte. Die Vision ist, Python an die Leistung von Sprachen wie C oder Java heranzuführen.

Mit performanten kompilierten C-Sprachen gleichzuziehen wird wohl eher nicht klappen, da macht sich die Gemeinde keine Illusionen. Die Kernentwickler von Python halten es aber für machbar, zumindest zu schnellen Implementierungen von Skriptsprachen wie V8 für JavaScript oder luajit für lua aufzuschließen. Das wäre schon ein gewichtiger Fortschritt.

Konkret soll die Referenzimplementierung der Sprache, CPython, in der Version 3.11 (bereits für Oktober 2022 geplant) doppelt so schnell wie sein Vorgänger (3.10) und ihre Nachfolger innerhalb von nur vier Jahren fünfmal schneller werden.

Die Hauptbemühungen fokussieren auf die Erschaffung eines „spezialisierenden, adaptiven Interpreters“, mit dem sich der Code „aggressiv, aber in einem sehr kleinen Bereich spezialisieren“ ließe und in der Lage wäre, sich „rapide und mit geringen Performance-Kosten“ aus einer fehlgeleiteten Spezialisierung herauszunavigieren.

Eine ähnliche Lösung ist Numba, ein quelloffener JIT-Optimierungscompiler für CPython. Er nutzt die LLVM-Compiler-Infrastruktur, um Python-Syntax in Maschinencode zu kompilieren. Numba entstand mit der Finanzierung von Anaconda, einer Distribution der Programmiersprachen Python und R für wissenschaftliche Berechnungen.

Numba bietet Unterstützung für NumPy, das Hauptpaket für wissenschaftliches Computing in Python und beschleunigt die Ausführung numerischer Python-Funktionen auf der CPU oder GPU, ist jedoch weder auf breitere Python-Anwendungsfälle ausgerichtet noch kann dieser Compiler ganze Python-Programme optimieren.

Eine weitere beschleunigte Drop-In-Implementierung ist das Projekt Pyston. Pyston, ursprünglich eine Initiative von Dropbox-Entwicklern, ist heute ein eigenständiges Projekt mit einer von Grund auf neu konzipierten Codebasis. Dieser Drop-In-Ersatz für CPython verspricht einen Leistungszuwachs um 35% bis 65% bei der Ausführung von unverändertem Python-Code. Dropbox hatte seinerzeit Python auf Grund der schwachen Performance zugunsten anderer Sprachen verworfen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung
eBook Einstieg in Python
eBook „Einstieg in Python“
(Bild: Dev-Insider)

E-Book zum Thema

Das eBook „Einstieg in Python“ zeigt unter anderem, wie man die besten Erweiterungen findet und wie sich diese in der Praxis einbetten lassen.


Instagram, ein Unternehmen der Meta-Gruppe (der Stammorganisation von Facebook), hatte sich stattdessen entscheiden, Python in Eigenregie zu beschleunigen. Das hat anscheinend ganz gut geklappt und die Implementierung braucht sich nicht zu verstecken. Meta hat sie nämlich im vergangenen Jahr unter dem Namen Cinder veröffentlicht.

Cinder nutzt eine Reihe von Leistungsoptimierungen wie Inline-Caching von Bytecode, „eifrige“ Evaluierung von Coroutines, einen Method-at-a-Time-JIT- und einen experimentellen typspezialisierten Bytecode-Compiler, der sich auf Typ-Annotationen stützt. So innovativ es alles sein mag, bietet Meta für diese Codebasis keinen Support.

Das Faster CPython Project dürfte sich von den vielen Initiativen der Python-Gemeinde sicherlich inspirieren lassen. Auf die Resultate darf man gespannt sein.

Nützliche neue Features in Python 3.11

Die Entwicklung von Python hat der Sprache in den letzten paar Releases viele nützliche Ergänzungen beschert, darunter syntaktische Konstrukte, die eine leistungsfähigere und prägnantere Programmierung ermöglichen. Zu den jüngsten Ergänzungen zählen:

  • Mustervergleiche (ab Python 3.10)
  • der „Walross-Operator“ (ab Python 3.8)
  • der Nur-Positional-Parameter
  • Python-Tests

Python 3.11 bringt neue Syntax-Features, darunter Exception Notes, also Annotationen zu einer Ausnahme, zum Beispiel:

>>> try:...     raise TypeError('bad type')... except Exception as e:...     e.add_note('Das ist eine Notiz, warum es schiefgegangen ist')...     raise...Traceback (most recent call last):  File "<stdin>", line 2, in <module>TypeError: bad typeDas ist eine Notiz, warum es schiefgegangen ist>>>

So etwas ist eine wirklich nützliche Sache, denn man kommt schneller voran. Kein Wunder, dass Python so beliebt ist. Die vor kurzem eingeführte Syntax für Type-Hinting in Python ermöglicht Linters und Codequalitätswerkzeugen von Drittanbietern, den Code vor der Ausführung vorab zu analysieren und mögliche Fehler zu erkennen, bevor sie zur Laufzeit auftauchen können.

Type-Hinting kommt Entwicklern größerer Projekte sehr entgegen. Je mehr man Python-Code gemeinsam mit anderen schreibt oder teilt, desto nützlicher – gar unverzichtbarer – wird dieses Feature.

Type Hinting wird standardmäßig nicht zur Laufzeit erzwungen, es lässt sich aber mittels Pydantic auf Wunsch so einstellen. Viele weit verbreitete Python-Projekte, wie FastAPI, machen von Pydantic ausgiebigen Gebrauch.

Mit jeder neuen Version von Python dürften auch in Zukunft immer wieder ausgefeiltere und leistungsfähigere Typ-Annotationen hinzukommen. Type-Hinting bleibt jedoch im Allgemeinen ein optionales Feature.

Richtige Prioritäten

Ende Oktober 2022, etwas mehr als ein Jahr nach der Veröffentlichung von Python 3.10 am 4. Oktober 2021, erreichte Python die stabile Version 3.11. Der Support für Python 3.10 soll erst im Oktober 2026 auslaufen. Der aktuelle Maintenance-Status trägt die Bezeichnung „Bugfix“.

In dieser Phase arbeitet die Gemeinde sowohl an Verbesserungen der Cybersicherheit als auch an anderen, „profanen“ Bugfixes. Die Python-Versionen 3.7, 3.8 und 3.9 haben den Maintenance-Status „Security“ und qualifizieren sich deshalb nur noch für das Beheben von richtig bedrohlichen Bugs.

Nicht zu unterschätzende Risiken haben ihren Ursprung in der Softwarelieferkette, jedoch nicht zwangsweise in Bugs der betreffenden Sprache selbst. Python ging dieses Jahr unverschuldet an den Pranger. Forscher der Sicherheitsspezialistin Check Point Research schlugen nämlich wiederholt Alarm. Sie hatten gravierende Sicherheitslücken in PyPi, dem Python Package Index, aufgedeckt.

PyPi ist das beliebteste Repository für Python-Code und -Bibliotheken mit mehr als 600.000 aktiven Nutzern. In Reaktion auf die Sicherheitspannen hat das PyPI-Repository eine Sicherheitsrichtlinie eingeführt, die von den Betreuern kritischer Projekte die Nutzung von Zwei-Faktor-Authentifizierung mit einem Hardware-Schlüssel verlangt. Nein, nicht alle sind damit zufrieden, denn es bedeutet zusätzliche Arbeit. Viele hinterfragen auch den unmittelbaren Nutzen. Denn 2FA adressiert nur einen Teil des Problems. Immerhin muss man aber irgendwann, irgendwo, anfangen.

Supply-Chain-Verwundbarkeiten sind jetzt aber natürlich keine Besonderheit von Python. Für Python gibt es aber zumindest Hilfsmittel, um den Angreifern einen Riegel vorzuschieben (zum Beispiel pip-tools), und die Gemeinde ist wachsam und bei der Sache. Das ist sicherlich woanders nicht automatisch der Fall.

Das explosive Wachstum von Datenwissenschaften und ML/KI in Kombination mit der Verfügbarkeit leistungsstarker Bibliotheken treibt die Popularität von Python in neue Höhen. Das eBook „Einstieg in Python“ von Dev-Insider dient als Einstiegshilfe.

E-Book zum Thema

Einstieg in Python

eBook Einstieg in Python
eBook „Einstieg in Python“
(Bild: Dev-Insider)

Python ist zur beliebtesten Programmiersprache der Welt aufgestiegen. Von grafischen Benutzeroberflächen über Algorithmen des maschinellen Lernens und KI-Engines bis hin zu Spielen und mobilen Apps: Immer mehr Anwendungen entstehen damit.

Dieses eBook dreht sich deshalb um die folgenden spannenden Themen:

  • Aktuelle Trends und Entwicklungen rund um Python
  • Wie die ersten Schritte in Python erfolgreich werden
  • Anwendungsbeispiele in der Programmiersprache

(ID:48751225)