Processing
# Processing

Processing ist eine objektorientierte, stark typisierte Programmiersprache mit zugehöriger integrierter Entwicklungsumgebung. Die Programmiersprache ist auf die Einsatzbereiche Grafik, Simulation und Animation spezialisiert. Processing wird in einem quelloffenen Projekt entwickelt, das am Massachusetts Institute of Technology von Ben Fry (Broad Institute) und Casey Reas (UCLA Design|Media Arts) initiiert wurde. Processing hat den Charakter einer stark vereinfachten Version der Programmiersprache Java, ermöglicht Interaktionen und visuelle Elemente zu programmieren und richtet sich vorwiegend an Gestalter, Künstler und Programmieranfänger.

Die Klassenbibliotheken der Programmiersprache zielen vor allem auf das Einsatzgebiet von Processing ab und berücksichtigen die Themen Video, Grafik, Grafikformate, Sound, Animation, Typographie, 3D, Simulation, Datenzugriff und -transfer, sowie Netzwerkprotokolle.

Im Jahr 2005 wurde Processing mit einer Goldenen Nica des Prix Ars Electronica in der Kategorie Net Vision/Net Excellence ausgezeichnet.

## Versionen

| Version | Datum | Anmerkung |
| - | - | - |
| 1.0 | November 2008 | Erste bedeutende Beta-Version |
| 1.5 | April 2011 | Vereinfachte Entwicklungsumgebung für Android-Geräte |
| 2.0 | September 2012 | Große Überarbeitung der gesamten Sprache |
| 2.1 | Oktober 2013 | u. a. Java 7 in allen Plattformen, Einbettung der JRE in exportierten Anwendungen |
| 3.0 | September 2015 | Große Überarbeitung (u. A. Rendering, Editor, Interface) |

## Processing IDE

Processing ist eine Open-Source-Programmiersprache und -Umgebung, die speziell für Menschen entwickelt wurde, die in den Bereichen visuelle Kunst, Design und Elektronik arbeiten. Die Sprache basiert auf Java und wurde entwickelt, um das Schreiben von Code zugänglicher und benutzerfreundlicher zu gestalten.

## Verwendung

Die Processing IDE kann für eine Vielzahl von Projekten verwendet werden. Es ist besonders nützlich für die Erstellung von interaktiven Grafiken, Animationen und Spielen. Die Sprache bietet eine einfache Syntax und eine Vielzahl von Funktionen, die das Erstellen von visuellen Projekten erleichtern.

Darüber hinaus kann Processing auch verwendet werden, um mit verschiedenen Hardware-Plattformen wie Arduino zu interagieren. Dies ermöglicht es Benutzern, interaktive Projekte mit Sensoren und Aktoren zu erstellen.

## Beispiel

Ein Beispiel anhand eines Hallo-Welt-Programms:

Dieses Programm produziert keinen Fehler, aber auch keinen sichtbaren Text. Der Text wird lediglich in der Konsole von Processing ausgegeben. Will man den Text im Ausgabefenster sichtbar machen, muss man die text-Methode verwenden:

Zwei häufig verwendete Methoden in Processing sind die setup- und die draw-Methode. Setup wird verwendet, um die Zeichenfläche zu generieren und Startparameter festzulegen. Die Draw-Methode wird durchgehend wiederholt und kann durch die Einstellung der Framerate in der Setup-Methode geändert werden.

## Name: Processing, Proce55ing, P5

Weil zu Anfang die Domäne processing.org nicht verfügbar war, sind Reas und Fry mittels Leetspeak damals auf die Domain proce55ing.net ausgewichen. Noch lebendig ist hiervon die Kurzbezeichnung P5, etwa in der Anschrift p5js.org. P55 wird nicht verwendet.

## Tools

* GUI Builder Tool, ein GUI-Builder für die G4P-Bibliothek, welcher sich als Tool in die Processing-IDE integriert.

## Ähnliche Projekte

* Design By Numbers Processing basiert auf dem Experiment Design By Numbers Project, bei dem versucht wurde, Programmierung leicht unterrichtbar zu machen und das viele Grundzüge mit Processing teilt.
* iProcessing iProcessing ermöglicht es, native iPhone-Anwendungen mit Processing zu programmieren. Möglich gemacht wurde dies durch die Integration der Bibliothek Processing.js und eines JavaScript-Application-Framework in das iPhone.
* Mobile Processing Eine weitere Abzweigung des Projektes ist Mobile Processing von Francis Li, das die Benutzung der Processing-Sprache und -IDE auf mobilen Geräten, die Java unterstützen, ermöglicht.
* openFrameworks Framework basierend auf der Programmiersprache C++, das vergleichbare Funktionalität bietet und sich stark an Processing orientiert.
* Processing.js Processing.js ist eine vom jQuery-Entwickler John Resig verfasste Javascript-Portierung von Processing, speziell gestaltet für grafische Visualisierungen, Bilder sowie interaktive Inhalte und benötigt im Gegensatz zu Processing kein Java-Plugin. Sie benötigt hingegen die Webtechnologie HTML5, um mit JavaScript 2D- und 3D-Inhalte zu rendern. Dafür wird das HTML-Canvas-Element verwendet, auf dem alle Inhalte gezeichnet werden. Alle modernen Browser haben dieses Element implementiert.
* Processing in Clojure Clj-Processing ist eine Umsetzung von Processing in Clojure, einer Sprache der Programmiersprachenfamilie Lisp, die auch auf der Java-Plattform läuft.
* Processing Monsters Processing Monsters ist ein Projekt von Lukas Vojir mit dem Ziel, Interessierten die Sprache mit unterhaltenden Animationen beizubringen. Die „Monster“ sind einfache grafische Programme, die in Schwarz und Weiß gestaltet sind und auf Mausbewegungen reagieren.
* Spde Das Akronym Spde steht für Scala Processing Development Environment. Spde ersetzt die Originalsyntax von Processing und den Präprozessor durch die Programmiersprache Scala, die auch auf der Java-Plattform läuft und somit dieselben Einschränkungen (statische Objekte) aufweist.
* Wiring, Arduino, Energia, Fritzing Aus Processing hat sich das Projekt Wiring entwickelt. Es benutzt die Processing-IDE gemeinsam mit einer vereinfachten Version von C++, um Künstlern die Programmierung von Mikrokontrollern nahezubringen. Es gibt drei separate Hardwareprojekte, Wiring, Arduino und Energia, die die Wiring-Umgebung und -sprache benutzen. Ein weiteres Projekt ist Fritzing, das Designer und Künstlern ermöglicht, ihre interaktiven Prototypen zu dokumentieren, um aus diesen ein fertiges Produkt zu gestalten.
