Pythonista: Längere Leine unter iOS

Die Botschaft in kurz lautet: Pythonista ist ein in Erfüllung gegangener Traum. Aber der Reihe nach, ich greife mir selbst voraus. Der Traum drehte sich darum, auf iOS-Geräten eine lauffähige Python-Umgebung zu haben. Dieser Traum war bescheiden, ging es doch nur darum, mal eben ein paar Zeilen testen zu können. Einfach mal eine Eingebung in Python skizzieren, damit sie später ausgearbeitet werden kann, das wäre schön genug. Es gibt da auch einige Möglichkeiten wie etwa Python for iOS, aus diversen Gründen fühlten sich diese nie auch nur ansatzweise rund an. Es klemmte an vielen Ecken.

Pythons großes Plus, neben vielen anderen, die um den Titel der größten Stärke konkurrieren, ist die konzeptionelle Schlichtheit der Sprache. Alles in Python ist auf Effizienz getrimmt, wobei die Syntax dabei im Vorbeigehen schönen Code produziert. Python ist ebenso elegant wie schlicht, keine der Apps für iOS hat diese Eigenschaften Pythons bisher zur Geltung gebracht. Manche nennen es das Zen von Python, was begrifflich mindestens eine Etage oberhalb dessen ist, was meine absolute Schmerzgrenze ist; ich teile also den Begriff nicht, weiß aber genau, was gemeint ist. Wie auch immer ich es nennen würde, Pythonista hat es.

Wo anfangen bei aller Begeisterung? Pythonistas Code-Editor ist so bequem wie es eben geht auf einem mobilen Gerät mit virtueller Tastatur. Der Editor verfügt über Syntax-Highlighting, was ich mindestens erwarte, die Themes sind dann schon eher schönes Beiwerk. Doch die Code-Vervollständigung ist eine Erleichterung, auf die zu hoffen ich nicht gewagt hätte. Über der erweiterten Tastaturleiste, in der syntaxrelevante Zeichen schneller zu erreichen sind, blitzen bei Bedarf einfach die Schlüsselwörter und Modulnamen auf. Antippen, weiter coden. Auf dem Desktop erwarte ich das von der IDE meiner Wahl, in Pythonista beeindruckt es mich wegen der Hilfe, die es ist, aber auch wegen der trotz aller Funktionalität immer aufgeräumten Darstellung. Es wirkt einfach nicht überfrachtet, nichts fehlt und alles hat seinen Platz.

Und so bedienerfreundlich geht es weiter, da bringt Pythonista nicht nur die ausführliche Sprachdokumentation mit, sondern wertet auch diese weiter auf. Beispielsweise können Code-Snippets aus der Dokumentation heraus sofort im Editor geöffnet, was mir Trial-and-error-Lerner ordentlich Unterstützung bietet. Es ist fast so, als komme Pythonista immer den einen Schritt extra entgegen, der mich wohlfühlen lässt. Daher verwundert es kaum noch, muss aber umso deutlicher unterstrichen werden, dass Pythonista nicht nur die umfassende Sammlung der Module aus der Standardbibliothek mitliefert, sondern auch noch nützliche Module, die sich als Quasi-Standards etabliert haben. Requests, BeautifulSoup, feedparser, PIL oder Dropbox sind im alltäglichen Gebrauch unverzichtbar geworden, daher werden sie in Pythonista unterstützt. Aber heißt das jetzt wirklich das, was sich einige jetzt darunter schon vorstellen können?

Genau das heißt es. Pythonista ist kein einfacher Editor mit eingebautem Prompt, der unter iOS in seiner eigenen Kapsel agiert. Die Abschottung von der Außenwelt reißt Pythonista nieder. Natürlich können damit HTTP-Requests an Web-APIs geschickt oder eben grundsätzliche Bildverarbeitungsschritte automatisiert werden. Spätestens an dieser Stelle war ich von Pythonista und seinen Möglichkeiten gebannt. Doch da hört es noch nicht auf. Es gibt aber noch eine dritte Sammlung von Modulen, die Pythonista vollends zum unverzichtbaren Scripting-Tool auf iOS macht. In eigens für die App geschriebenen Modulen wird die Interaktion mit dem Betriebssystem – so weit es Apple erlaubt – möglich. Die Zwischenablage ist nun per Script zugänglich, Töne können ausgegeben werden und auch einige der bekannten Systemdialoge stehen bereit. Aber das ist noch immer nicht das Ende, denn Pythonista stellt noch einen Canvas zur Verfügung, auf dem eigene UI möglich wird, mitsamt der nötigen Touchkontrolle.

Ich fasse zusammen: Erstklassiger Editor, hervorragende Dokumentation, Zusatz-Module, das alles bietet Pythonista und setzt trotzdem noch einen drauf. Denn der Editor selbst ist erweiterbar, schließlich bringt Pythonista noch ein Modul für den Editor selbst mit, damit kann die Arbeit im noch an eigene Bedürfnisse und Gewohnheiten angepasst werden. In den Einstellungen werden die Scripts dann als Erweiterung des Editors eingebettet, nichts leichter als das. Pythonista gibt damit ein Stück Freiheit unter iOS zurück, die ich oft schmerzlich vermisst habe.

Dabei ist noch nicht alles perfekt, aber meist liegt das an Beschränkungen durch Apple. Zwar könnte ich prinzipiell damit Spiele und Apps erstellen, oder immerhin Prototypen davon, aber die Interaktion zwischen den Apps ist, von Apple gewollt, dürftig. Die kurze Leine, an die Apple uns bietet, nutzt Pythonista immerhin voll aus, also auch das URL-Schema für rudimentären Datenaustausch zwischen einzelnen Apps. Deshalb kann ich mir nun immerhin Scripte schreiben, die meine tägliche Arbeit auf dem iPhone oder iPad erleichtern. Aber nicht nur mir geht das so, auch andere haben die Möglichkeiten erkannt. Und im Forum schlagen schon massenweise grandiose Scripte auf, die noch viel mehr versprechen.Da liegen schon erste Ansätze für Datei-Manager, Spiele, Heimautomatisierung über WLAN mit dem Raspberry Pi sowie Editorerweiterungen. Auf einmal kann ich dank Pythonista auf iOS von ganz anderen Dingen träumen, die Freiheit ist wieder da.