Python – Die Sprache für schnelle Prototypen, Datenanalyse und künstliche Intelligenz

Python ist eine universelle gut lesbare höhere Programmiersprache. Code-Blöcke werden statt mit geschweiften Klammern durch Einrückungen strukturiert.

Python unterstützt die objektorientierte, aspektorientierte und die funktionale Programmierung, wenn es um die Programmierparadigmen geht. Ferner bietet es eine dynamische Typisierung. Wie viele dynamische Sprachen wird Python oft als Skriptsprache genutzt. Die Sprache weist ein offenes, gemeinschaftsbasiertes Entwicklungsmodell auf, dass durch die gemeinnützige Python Software Foundation gestützt wird, die die Definition der Sprache in der Referenzumsetzung CPython pflegt.

Kurze Zeitreise

Die Sprache wurde Anfang der 1990er Jahre von Guido van Rossum am Centrum Wiskunde & Informatica in Amsterdam als Nachfolger für die Programmiersprache ABC entwickelt und war ursprünglich für das verteilte Betriebssystem Amoeba gedacht.

Wie in meinem Beitrag über GitHub bereits erwähnt, geht der Name nicht auf die gleichnamige Schlangengattung zurück, sondern bezog sich ursprünglich auf die englische Komikertruppe Monty Python. In der Dokumentation finden sich daher auch einige Anspielungen auf Sketche aus dem Flying Circus. Trotzdem etablierte sich die Assoziation zur Schlange, was sich unter anderem in der Programmiersprache Cobra sowie dem Python-Toolkit „Boa“ und schlussendlich in dem heutigen Logo wiederfindet. Die erste Vollversion erschien im Januar 1994 unter der Bezeichnung Python 1.0. Gegenüber früheren Versionen wurden einige Konzepte der funktionalen Programmierung implementiert, die allerdings später wieder aufgegeben wurden.

Python 2.0 erschien am 16. Oktober 2000. Neue Funktionen umfassten eine voll funktionsfähige Garbage Collection (automatische Speicherbereinigung) und die Unterstützung für den Unicode-Zeichensatz. In Version 2.6 wurde eine Hilfe eingebaut, mit der angezeigt werden konnte, welche Code-Sequenzen vom Nachfolger Python 3 nicht mehr unterstützt werden und daher in darauf aufbauenden Versionen nicht mehr funktionsfähig sind.

Python 3.0 (auch 3000 genannt) erschien am 3. Dezember 2008 nach längerer Entwicklungszeit. Es beinhaltet einige tiefgreifende Änderungen an der Sprache, etwa das Entfernen von Redundanzen bei Befehlssätzen und veralteten Konstrukten. Da Python 3.0 hierdurch teilweise inkompatibel zu früheren Versionen ist, beschloss die Python Software Foundation, 2.7 parallel zur Version 3 bis Ende 2019 weiter mit neuen Versionen zu unterstützen.

Freuen dürfen wir uns auf die mittlerweile Version 3.12, die im Oktober dieses Jahres folgen soll.

Wieso Python?

Es wurde mit dem Ziel größter Einfachheit und Übersichtlichkeit entworfen. Die Sprache kommt mit relativ wenigen Schlüsselwörtern aus und ist mit einer reduzierten Syntax auf Übersichtlichkeit optimiert. Dadurch lassen sich Python-basierte Skripte deutlich kleiner bzw. kompakter formulieren als in anderen Sprachen.

Van Rossum legte bei der Entwicklung großen Wert auf eine Standardbibliothek, die überschaubar und leicht erweiterbar ist. Dies war das Ergebnis seiner schlechten Erfahrung mit der Sprache ABC, in der das Gegenteil der Fall ist. Dieses Konzept ermöglicht, Module aufzurufen, die in anderen Programmiersprachen geschrieben wurden, etwa um Schwächen von Python auszugleichen. Beispielsweise können für zeitkritische Teile in maschinennäheren Sprachen wie C implementierte Routinen aufgerufen werden. Umgekehrt lassen sich damit Module und Plug-ins für andere Programme schreiben, die die entsprechende Unterstützung bieten. Dies ist unter anderem bei Blender, Cinema 4D, GIMP, Maya, OpenOffice bzw. LibreOffice, PyMOL, SPSS, QGIS oder KiCad der Fall. Über die ich bereits geschrieben habe und noch schreiben werde.

Wie bereits erwähnt, ist Python eine Multiparadigmensprache. Dies bedeutet, es zwingt den Programmierer nicht zu einem bestimmten Programmierstil, sondern erlaubt, dass für die jeweilige Aufgabe am besten geeignete Paradigma zu wählen. Die Freigabe nicht mehr benutzter Speicherbereiche erfolgt durch Referenzzählung. Datentypen werden dynamisch verwaltet, eine automatische statische Typprüfung wie z. B. bei C++ gibt es nicht. Jedoch unterstützt Python ab Version 3.5 optionale Typ-Annotationen, um eine statische Typprüfung mithilfe externer Software, wie zum Beispiel Mypy, zu vereinfachen.

Wann Python?

Python ist für die meisten gängigen Betriebssysteme frei erhältlich und bei den meisten Linux-Distributionen im Standardumfang enthalten. Um es in Webserver einzubinden, wird Webserver-umgreifend WSGI verwendet, welches die Nachteile von CGI umgeht. WSGI stellt eine universelle Schnittstelle zwischen Webserver und Python(-Framework) zur Verfügung.

Sowohl in der Wirtschaft, Wissenschaft als auch in der Spielebranche erfreut sich Python einer großen Beliebtheit, da es auf der einen Seite einsteigerfreundlich ist und auf der anderen Seite auch leistungsfähig genug, um theoretische Grundlagen der Programmierung zu vermitteln bzw. um moderne Anwendungen bis hin zu komplexen Datenanalysen, grafischer Programmierung oder Datenbankanwendungen zu entwickeln. Ganz zu schweigen von den Möglichkeiten in Bezug auf Machine learning bzw. künstliche Intelligenz. Doch diese Themen werde ich auch in zukünftigen Beiträgen angehen.

An dieser Stelle sei auch das Projekt „100-Dollar-Laptop“ erwähnt. Denn da wurde Python als Standardsprache der Benutzeroberfläche verwendet. Da der 100-Dollar-Rechner für die Schulausbildung von Kindern konzipiert war, sollte bei Benutzung der dafür gestalteten grafischen Benutzeroberfläche „Sugar“ auf Knopfdruck der gerade laufende Python-Quellcode angezeigt werden. Damit sollte Kindern die Möglichkeit gegeben werden, die dahinter liegende Informationstechnik real zu erleben und nach Belieben „hinter die Kulissen“ zu schauen oder sogar anzupassen. Doch darüber schreibe ich in einem zukünftigen Beitrag, da sich dieses Projekt komplexer entwickelt hat, als man es annehmen möchte.

Fazit

Python kann verhältnismäßig schnell erlernt werden und man kann damit sehr kurze Programmtexte schreiben. Dies verbessert die Verständlichkeit einer Anwendung, erleichtert die Fehlersuche und verkürzt die Entwicklungszeit. Es unterstützt unterschiedliche Paradigmen (Programmierstile).

Auch gibt es viele frei verfügbare Erweiterungen (sogenannte Module) für spezielle Anwendungsbereiche wie etwa Grafik, Astronomie, Mathematik, Spracherkennung, Quantencomputer und künstliche Intelligenz.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.