12. Das Python Ökosystem#

Als Python-Ökosystem bezeichnen wir den Zusammenschluss aus dem was die Softwareentwicklung mit Python ermöglicht. Dazu zählen wir unter anderem

  • bestehenden Quellcode (Module, Pakte),

  • Entwicklungsumgebungen und Werkzeuge,

  • Paketverwaltungsprogramme wie pip und conda,

  • Dokumentationen,

  • andere Technologien, die mit Python gut integrierbar sind

  • und vorallem die Gemeinschaft bzw. Unterstützer:innen

Lernziel

Wie nutze ich das Python-Ökosystem? Wie bringe ich Python „zum Laufen“? Wie nutze ich Pakte und Module (fremden Code) und die Jupyter Notebooks?

Dieses Kapitel soll Sie in der Praxis „in Gang“ setzen, sodass Sie mit dem Python-Programmieren loslegen können. Der Inhalt ist daher sehr Python spezifisch und hat nur wenig mit dem eigentlichen Computational Thinking zu tun.

Sie werden feststellen, dass das Python-Ökosystem reich, erwachsen und breit aufgestellt ist. Es wird täglich erweitert und verbessert. Blicken wir nur einmal auf einen Auszug bestimmter Pakete, welche wir nach deren Anwendungsbereich sortiert haben:

Die eine, objektiv beste Programmiersprache existiert nicht. Die Bewertung einer Sprache ist immer ein subjektives Maß und sollte immer auch das Ökosystem einer Sprache beinhalten. Und ja: Die Popularität einer Sprache ist ebenfalls ein wichtiger Faktor. Was nutzt uns die perfekte Programmiersprache, wenn sie niemand sonst benutzt?

Durch die gestiegenen Ansprüche an Software ist deren Komplexität gestiegen. Wollen Sie heute eine Webseite erstellen, die den Ansprüchen der heutigen Standards entspricht, werden Sie nicht damit beginnen reines Python, HTML, CSS und JavaScript zu schreiben. In der Praxis werden Sie sich mit Frameworks wie Django, jQuerry, Bootstrap, Vue und mehr beschäftigen. Diese Frameworks haben bereits viele wesentliche und sich immer wiederholende Probleme der Webentwicklung für Sie gelöst.

Auf stackshare.io können Sie nachlesen, welche Technologien hinter vielen bekannten Webanwendungen wie

stecken.

Selbstverständlich ändern sich die Ökosysteme ständig. Zu meiner kurzen Zeit als Webentwickler, um das Jahr 2006, war der sog. LAMP-Stack (Linux, Apache, MySQL, PHP/Perl) einer der gängisten Bündelungen an Technologie, die zur serverseitigen Webentwicklung genutzt wurde. Das hat sich mittlerweile geändert.

Ein anderes Beispiel ist die Entwicklung neuer Algorithmen aus dem Bereich des maschinellen Lernens. Sie werden im Normalfall das Rad in der Praxis nicht neu erfinden. Sie werden stattdessen analysieren welche Module (z.B. Scikit-learn, TensorFlow) Ihren Ansprüchen genügen und diese nutzen bzw. erweitern.

Als Entwickler*innen müssen wir in der Praxis unser reiches Ökosystem kennenlernen und effektiv nutzen. Dazu gehört insbesondere auch der bedachte Verzicht aufgeblähter Frameworks, die für unseren Anwendungsfall bzw. unser Ziel ungeeignet sind. Aus Sicht der Anwender*innen spielt es am Ende keine Rolle, welche tollen Technologien hinter Ihrer Anwendung stecken. Wichtig ist stattdessen, ob Ihre Anwendung das zu lösende Problem löst und ob die Anwender*innen eine gute Erfahrung mit Ihrer Anwendung machen, seien es Kunden einer Webanwendung oder Entwickler*innen, die Ihr Modul verwenden wollen.