Processing: Programmieren für Anfänger

Die kostenlose Programmierumgebung Processing eignet sich wunderbar für den Einstieg – schon drei Zeilen Code reichen, damit sich auf dem Bildschirm etwas tut. Eine Anleitung Schritt für Schritt.

In Pocket speichern vorlesen Druckansicht 174 Kommentare lesen
Lesezeit: 24 Min.
Von
Inhaltsverzeichnis

Mit der kostenlosen Programmierumgebung Processing bringen auch Anfänger mit wenigen Code-Zeilen komplizierte Vektorgrafiken und Animationen auf den Bildschirm oder verfremden Pixelbilder mit selbst ausgeknobelten Filtern. Strukturen aus zahlreichen zufällig verteilten Formen bilden dekorative Muster, ohne dass man sie mühsam im Zeichenprogramm zusammenklicken muss, denn mit Hilfe von Processing sind sie im Handumdrehen programmiert und als Vektorgrafik-Datei exportiert. Sogar die ersten Schritte in die 3D-Welt fallen mit Processing leicht.

Mehr Infos

Dies ist eine aktualisierte Version des Artikels "Kleinkunstprogramm", der zuerst in c't 24/2007 ab Seite 212 veröffentlicht wurde.

Da schon die erste Zeile Code auf Knopfdruck ein sichtbares Erfolgserlebnis produziert, setzen Design-Dozenten Processing schon seit Jahren in der Ausbildung ein. Processing verpackt die fertige Computerkunst auf Wunsch in ausführbare Anwendungen für Windows, Mac OS X und Linux. Inzwischen gibt es auch Erweiterungen für die Android-App-Programmierung sowie die JavaScript-Bibliothek p5.js, mit deren Hilfe man Processing-Apps in Webseiten einbinden kann – vor zehn Jahren exportierte man die eigenen Computerkunstwerke zu diesem Zweck noch als Java-Applets.

Die Demo eines interaktiven, rotierenden Gebirges findet man in Processing unter Beispiele/Demos/Graphics/Mesh Tweening ...

... die Planetensimulation mit Sonne, Merkur und Erde im selben Verzeichnis unter dem schlichten Namen Planets.

Dieser Applet-Export gelang seinerzeit reibungslos, weil Processing eigentlich gar keine eigene Programmiersprache, sondern nur eine pragmatische Verkleidung für Java ist. Seinen Code schreibt man prinzipiell in Java-Syntax. Zur Vereinfachung versteckt Processing freilich manche komplizierte Original-Operation in einen knappen Ein-Wort-Befehl: So speichert ein schlichtes save("bild.png") den aktuellen Inhalt des Programmfensters kurzerhand als Pixelgrafik.

Processing bietet aber nicht nur dank neuer Befehle manche praktische Abkürzung, man kann auch vieles Lästige weglassen, etwa Programm-Präludien à la Class MyClass { public static void main(String[] args) {..., die Anfänger verwirren und auch Routiniers nerven, wenn diese nur eben kurz was ausprobieren wollen. Gerade bei so einem kleinen Hack zwischendrin erfrischt die Konzentration aufs Wesentliche auch manchem Programmier-Profi das Herz. Dabei lässt Processing ihm Freiheiten: Man kann wahlweise imperativ oder objektorientiert programmieren – und auch beliebig schmutzig beides durcheinander. Wer weder mit dem einen noch mit dem anderen Begriff was anfangen kann, kommt trotzdem durch – mit etwas Geduld und dem Programmierparadigma "Versuch und Irrtum".

Die Schlichtheit seines Konzepts setzt dem Einsatz des Junior-Javas allerdings manche Grenzen – auf der Homepage des Projekts wie folgt ausgedrückt wird: "It enables the creation of software within a carefully designed set of contraints." Der Entwurf von GUI-Prototypen liegt offenbar außerhalb jener "sorgfältig gestalteten Einschränkungen" – fertige Vorlagen für Menüs und Knöpfe sucht man vergeblich, dazu muss man externe Bibliotheken wie controlP5 bemühen. Und die Suche nach Fehlern im Code bereitet mit den spartanischen Mitteln des Processing-Editors ab einer Programmlänge von 100 Zeilen keine Freude mehr – wenn sich da auch mit Erscheinen der Version Processing 3 einiges getan hat. Genau dort, wo der Spaß aufhört und ernsthafte Softwareentwicklung beginnt, sattelt man besser auf das Original-Java um und benutzt eine komfortable Programmierumgebung wie Eclipse. Um vorläufige, aber lauffähige Codeskizzen zu tippen oder gar die allerersten Programmierversuche überhaupt zu wagen, kann man hingegen getrost zum Processing-Editor greifen.

In welche Richtung solche ersten Schritte gehen könnten, zeigen die folgenden Codebeispiele. Der Reigen beginnt mit einem simplen Dreizeiler, der auch ohne jede Programmiererfahrung verständlich ist. Deutlich mehr Routine braucht man für interaktive Spiele, die gegen Ende Thema sind. Alle erwähnten Programme stehen als Zip-Archiv zum Download bereit – und können nach dem Import in die eigene Processing-Umgebung nach Herzenslust umgeschrieben, zerfleddert oder erweitert werden.

Processing gibt es kostenlos im Web für Windows, Mac OS X und Linux zum Download. Nach Auspacken des heruntergeladenen Archivs ist die Software ohne weitere Installation startklar. Eine separate Java-Umgebung einzurichten ist unter Windows nicht erforderlich, sofern man das Processing-Standardpaket auf den eigenen Rechner lädt.

Neben der eigentlichen Software bietet die (durchgehend englische) Processing-Homepage eine ausführliche Sprachreferenz, einführende Texte und jede Menge Beispielcode an. Was Processing-Fans mit dem Werkzeug in künstlerischer Hinsicht alles anstellen, findet man unter der Rubrik Exhibition.

Beim Programm Tree bestimmt der Mauszeiger, in welchem Winkel sich die Äste des stilisierten Baums gabeln.

Manche Beispiele sind auch fest in die Entwicklungsumgebung eingebaut. Man findet sie nach dem Programmstart im Menü unter Datei/Beispiele. Ein Mausklick auf einen Eintrag im dann aufklappenden Fenster lädt den Code des jeweiligen Beispiels in den Processing-Editor. Klickt man auf den Pfeil ganz links in der Symbolleiste, startet das Programm in einem neuen Fenster. Man beendet es, indem man dieses Fenster schließt oder den Stoppknopf in der Symbolleiste des Editors drückt.

Unter Basics liegen eine Reihe kurzer Codeskizzen, bei denen man manches Detail abspicken kann. Noch mehr Anregungen findet man in den anderen Verzeichnissen: Topics/Fractals and L-Systems/Tree etwa zeichnet einen Baum, sein Verzweigungswinkel hängt von der horizontalen Position des Mauszeigers ab. Bei Topics/Texture/TexturedSphere darf man wie bei Google Earth eine Weltkugel zum Rotieren bringen, Demos/Graphics/RotatingArcs animiert bunte, geometrische Formen, die entfernt an kinetische Kunstwerke der klassischen Moderne von Wladimir Tatlin oder Làszló Moholy-Nagy erinnern.

Getreu dem Konzept als Programmierkunst-Studio werden Programme in Processing konsequent als Skizzen ("Sketches") bezeichnet. Eine neue Programmskizze legt der Menüpunkt Datei/Neu an. Automatisch erhält sie einen Dateinamen nach dem Muster sketch_ mit angehängtem Datum und einem fortlaufenden Kleinbuchstaben. Datei/Speichern unter ... speichert das Programm unter einer selbst gewählten Bezeichnung. Beim Speichern legt Processing auf der Festplatte einen neuen Ordner mit dem Namen des Programms an, üblicherweise unter Eigene Dateien/Processing bei Windows, unter sketchbook im Home-Verzeichnis bei Linux und unter Dokumente/Processing auf dem Mac. Den Ort des eigenen "Skizzenbuchs" kann man über Datei/Einstellungen beliebig woanders hin verlegen. Die dort gelagerten Programme erreicht man über Datei/Sketchbook und ihren Namen. Will man fremde Programme öffnen, kopiert man sie entweder in ein passend benanntes Unterverzeichnis des Skizzenbuchs oder öffnet sie über den Dateidialog, den ein Klick auf Datei/Öffnen aufklappt. Processing-Code-Dateien tragen die Endung .PDE.