Wo Python nicht die erste Wahl ist
Benutzeroberflächen für Desktop, Browser und Smartphone
Alle drei Umgebungen hatten Bildschirme. Dort beginnen die Unterschiede, statt dort zu enden.
Eine Benutzeroberfläche ist der Teil eines Programms, den ein Mensch tatsächlich benutzt: Schaltflächen, Felder, Text, Menüs, Gesten und Meldungen. Stell dir ein Werkzeug für dein persönliches Budget in drei Varianten vor. Auf einem Laptop installiert, in einem Browser geöffnet, auf einem Smartphone installiert. Dieselben Summen, drei verschiedene Welten.
Desktop
Python kann Desktopfenster erstellen. Die Standardbibliothek enthält tkinter, das Python mit einem Werkzeugsatz für Fenster, Schaltflächen und Menüs verbindet. Weitere Werkzeugsätze gibt es ebenfalls.
Für ein internes Werkzeug, ein Laborprogramm oder etwas, das auf bekannten Computern genutzt wird, kann das sehr gut sein. Eine Sprache übernimmt die Oberfläche, die Dateien, die Berechnungen und die Verbindungen zu allem anderen.
Der Kompromiss zeigt sich, wenn das Programm andere Menschen erreichen soll. Ein Python-Programm braucht Python selbst und alle verwendeten Pakete. Werkzeuge zum Paketieren können das zu etwas bündeln, das ein Mensch starten kann. Aber eine für Windows erstellte Version ist keine für macOS. Jedes System, dessen Unterstützung du versprichst, ist ein weiteres, für das du etwas vorbereiten und testen musst.
Also: machbar mit Kompromissen und gut geeignet, wenn das Programm einen klaren Zweck hat und du weißt, auf wessen Computern es läuft.
Browser
Eine Browserseite besteht aus HTML für die Struktur, CSS für das Aussehen und JavaScript für das Verhalten. Browser verstehen diese drei direkt.
Python kann dort ebenfalls laufen. Dieser Kurs ist der Beweis: Python Land verwendet Pyodide, das Python über WebAssembly in den Browser bringt. WebAssembly ist ein portables Format, das Browser ausführen können. Dadurch werden Lernen im Browser, Datenerkundung und wissenschaftliche Demonstrationen ohne Installation möglich. Das ist wirklich spannend.
Python bleibt dabei an die Regeln des Browsers gebunden. Die Laufzeitumgebung muss zuerst heruntergeladen werden, manche Python-Module erwarten ein Betriebssystem, das dort nicht vorhanden ist, und lange Berechnungen verlangen Aufmerksamkeit, sonst reagiert die Seite nicht mehr.
Python ist im Browser also für klar umrissene Zwecke mit bekannten Grenzen nützlich. Für die Hauptoberfläche eines gewöhnlichen Webprodukts ist es meist nicht die erste Wahl.
Der Server ist eine andere Frage, und die Antwort hat sich nicht geändert: vorne JavaScript, dahinter Python, das Regeln anwendet und eine API bereitstellt.
Smartphone
Eine native Smartphone-App wird mit den Bedienelementen, Diensten und Auslieferungsverfahren der jeweiligen Plattform entwickelt. Bei Apple steht Swift im Mittelpunkt, bei Android Kotlin. Diese Sprachen sind am engsten mit der Dokumentation und den Beispielen für Bildschirme, Gesten, Benachrichtigungen, Kameras, Berechtigungen und die App-Prüfung verbunden.
Mobile Entwicklung mit Python gibt es, und sie ist kein Spielzeug. Briefcase kann iOS- und Android-Projekte mit Python-Anwendungen erzeugen, und Kivy kann Python für Android paketieren. Für ein Team, dessen Anwendung dazu passt, können sie die richtige Lösung sein.
Für die Hauptoberfläche einer neuen Smartphone-App für Verbraucher ist Python jedoch meist nicht die erste Wahl. Nicht, weil es das nicht könnte, sondern weil sowohl die Oberfläche als auch der Weg zur Auslieferung zu Ökosystemen gehören, die auf anderen Werkzeugen aufbauen.
Python kann trotzdem große Teile dieses Produkts übernehmen: den Server, die Datenaufbereitung, das Modell, die Tests und die Regeln, die das Produkt bewusst nicht auf dem Smartphone ausführt.
Was, wenn die Oberfläche ein Spiel ist?
Eine Spiel-Engine liefert wiederverwendbare Bausteine, um ein Spiel darzustellen, Eingaben zu verarbeiten und seine Welt ablaufen zu lassen. Wenn dein Projekt von einer Engine abhängt, sind deren unterstützte Sprachen wichtig. Godot unterstützt beispielsweise offiziell GDScript, C#, C und C++. GDScript ähnelt Python an manchen Stellen, ist aber eine andere Sprache.
Python kann für kleine Spiele und Werkzeuge rund um die Spieleproduktion nützlich sein. Für den Hauptcode eines Spiels in einer Engine, die auf eine andere Sprache ausgelegt ist, ist es meist nicht die erste Wahl. Beginne mit der Engine und den Geräten, die du erreichen möchtest. Wähle dann eine Sprache, die sie unterstützt.
Wähle passend zu deinem Weg
Auf dem Desktop ist Python oft machbar und manchmal ausgezeichnet, wobei du die Paketierung bedenken musst. Im Browser bestimmen dessen eigene Sprachen die sichtbare Oberfläche. Auf dem Smartphone bieten die Werkzeuge der Plattform den direktesten Weg.
Nichts davon mindert Pythons Wert. Es zeigt dir, wo du es einsetzen solltest.
Der nächste Einwand betrifft die Geschwindigkeit. „Python ist langsam“ klingt, als wäre damit etwas geklärt. Aber dahinter steckt dieselbe Frage wie in dieser Lektion: Wobei langsam, und gemessen an welcher Anforderung?
Mehr erfahren
Godots Leitfaden zu Skriptsprachen erklärt die unterstützten Möglichkeiten. Das ist optionales Hintergrundwissen auf Englisch, keine Empfehlung, diese Engine für jedes Spiel zu wählen.