Processing utilise le langage de programmation Java , avec des simplifications supplémentaires telles que des classes additionnelles et des alias pour les fonctions et opérations mathématiques. Il offre également une interface graphique pour simplifier la compilation et l'exécution.
Le langage et l'IDE Processing sont les précurseurs d'autres projets tels qu'Arduino et Wiring .
Casey Reas et Ben Fry , tous deux anciens membres du groupe Esthétique et calcul du MIT Media Lab . En 2012, ils ont fondé la Processing Foundation avec Daniel Shiffman , qui a rejoint l'équipe en tant que troisième responsable du projet. Johanna Hedva a intégré la Fondation en 2014 en tant que directrice du plaidoyer.À l'origine, Processing utilisait le nom de domaine proce55ing.net, orthographié selon la terminologie Leet , car le nom « processing » était déjà pris ; Reas et Fry ont finalement acquis le domaine processing.org et y ont transféré le projet en 2004. Bien que le nom original ait combiné des lettres et des chiffres, il a toujours été officiellement désigné par « processing » , mais l'abréviation « p5 » est encore utilisée occasionnellement (par exemple, dans « p5.js ») en référence à l'ancien nom de domaine.
En 2012, la Processing Foundation a été créée et a obtenu le statut d'organisme sans but lucratif 501(c)(3) , soutenant la communauté autour des outils et des idées issus du Processing Project. La fondation encourage les personnes du monde entier à se réunir chaque année lors d'événements locaux appelés environnement de développement intégré (IDE) pour l'organisation des projets.
Chaque sketch Processing est en fait une sous-classe de la PAppletclasse Java (anciennement une sous-classe de l'applet intégrée de Java) qui implémente la plupart des fonctionnalités du langage Processing.
Lors de la programmation avec Processing, toutes les classes ajoutées seront traitées comme des classes internes lors de la traduction du code en Java pur avant la compilation. Cela signifie que l'utilisation de variables et de méthodes statiques dans les classes est interdite, sauf si Processing est explicitement configuré pour coder en mode Java pur.
Processing permet également aux utilisateurs de créer leurs propres classes au sein du programme PApplet. Ceci autorise la manipulation de types de données complexes pouvant inclure un nombre quelconque d'arguments et évite les limitations liées à l'utilisation exclusive de types de données standard tels que : int (entier), char (caractère), float (nombre réel) et color (RGB, RGBA , hex).
Exemples
La version la plus simple possible d'un programme « Hello, world » en Processing est :
Cependant, en raison de la nature plus visuelle de Processing, le code suivant est un meilleur exemple de l'apparence et de la convivialité du langage.
Ben Fry a remporté le Prix national de design 2011 décerné par le Smithsonian Cooper-Hewitt National Design Museum dans la catégorie Design d'interaction. Le communiqué du prix précise :
Fort d'une formation en graphisme et en informatique, Ben Fry nourrit une fascination de longue date pour la visualisation des données. À la tête de Fathom Information Design à Boston, il conçoit des logiciels, des œuvres imprimées, des installations et des livres qui illustrent et expliquent des sujets aussi variés que le génome humain, les salaires des joueurs de baseball ou l'évolution des documents textuels. Avec Casey Reas, il a fondé Processing Project, un environnement de programmation libre destiné à l'enseignement de la conception informatique et au développement de logiciels interactifs. Ce projet offre aux artistes et aux designers des outils accessibles pour travailler avec le code, tout en incitant les ingénieurs et les informaticiens à réfléchir aux concepts de conception.
Licence
Les bibliothèques principales de Processing, le code inclus dans les applications et applets exportées, sont distribuées sous la licence publique générale limitée GNU (GNU LGPL) , permettant aux utilisateurs de diffuser leur code original sous la licence de leur choix.
L'IDE est distribué sous licence GNU GPL .
Projets connexes
Conception par numéros
Processing s'inspire des travaux originaux menés dans le cadre du projet Design By Numbers au MIT. Il partage nombre de ces idées et en est un descendant direct.
p5.js
En 2013, Lauren McCarthy a créé p5.js, une alternative JavaScript native à Processing.js bénéficiant du soutien officiel de la Processing Foundation. p5.js a conquis plus de 1,5 million d'utilisateurs.
Depuis avril 2022, p5.js est dirigé par Qianqian Ye, professeur associé adjoint d'arts médiatiques à l'USC.
ml5.js
ml5.js est une bibliothèque p5.js développée par l'ITP/IMA de l'Université de New York grâce à un financement et un soutien fournis par une subvention de Google Éducation.
Daniel Shiffman a réalisé des vidéos de démonstration de ml5 et est un contributeur de code notable.
Processing.js
Processing.js est un portage JavaScript abandonné qui permettait d'exécuter du code Java Processing existant sur le Web.
Initialement publié en 2008 par John Resig , le projet a ensuite été développé dans le cadre d'un partenariat entre la Fondation Mozilla et le Seneca College , sous la direction de David Humphrey, Al MacDonald et Corban Brook. Processing.js a conservé le même niveau de compatibilité avec Processing jusqu'à la sortie de son API 2.1.
Le projet a été abandonné en décembre 2018, deux ans après l'arrêt de son développement actif.
P5Py
p5 est une bibliothèque Python offrant des fonctionnalités de dessin avancées pour créer rapidement des simulations et des œuvres d'art interactives. Elle combine les principes fondamentaux de Processing (apprendre à coder dans un contexte visuel) avec la lisibilité de Python afin de rendre la programmation plus accessible aux débutants, aux enseignants et aux artistes.
Processing.py
Le mode Python pour Processing, ou Processing.py, est une interface Python pour la boîte à outils Java sous-jacente. Il a été principalement développé par Jonathan Feinberg à partir de 2010, avec les contributions de James Gilles et Ben Alkov.
Python 5
py5 est une version de Processing pour Python 3.8 et versions ultérieures. Elle permet d'utiliser les fichiers JAR Java de Processing avec l'interpréteur CPython via JPype. Elle offre quasiment toutes les fonctionnalités de Processing, mais avec du code Python au lieu de Java.
Câblage, Arduino et Fritzing
Processing a donné naissance à un autre projet, Wiring , qui utilise l'environnement de développement intégré (IDE) Processing avec une collection de bibliothèques écrites en C++ pour enseigner aux artistes la programmation de microcontrôleurs . Deux projets matériels distincts, Wiring et Arduino , utilisent désormais l'environnement et le langage Wiring. Fritzing est un autre environnement logiciel du même type, qui aide les concepteurs et les artistes à documenter leurs prototypes interactifs et à passer du prototypage physique au produit final.
Traitement mobile
Un autre projet dérivé, aujourd'hui abandonné, est Mobile Processing de Francis Li, qui permettait d'exécuter des logiciels écrits en utilisant le langage et l'environnement Processing sur des appareils mobiles fonctionnant sous Java. Aujourd'hui, certaines de ces fonctionnalités sont fournies par Processing lui-même.
iTraitement
iProcessing a été conçu pour aider les développeurs à créer des applications natives pour iPhone à l'aide du langage Processing. Il s'agit d'une intégration de la bibliothèque Processing.js et d'un framework d'applications JavaScript pour iPhone.
Spde
Spde (Scala Processing Development Environment) remplace la syntaxe Java réduite et le préprocesseur personnalisé de Processing par le langage de programmation Scala , prêt à l'emploi, qui s'exécute également sur la plateforme Java et impose certaines des mêmes restrictions, telles que l'interdiction des méthodes statiques, tout en permettant un code plus concis et en prenant en charge la programmation fonctionnelle .
JRubyArt
JRubyArt (anciennement nommé ruby-processing ) est un wrapper pour Processing dans le langage Ruby , qui s'exécute sur la plateforme Java en utilisant JRuby.
Quil
Quil est une bibliothèque d'animation interactive pour Clojure et ClojureScript basée sur Processing.
Esquisser
Sketch est une bibliothèque Common Lisp fortement inspirée de Processing.
Médias
Le clip de « House of Cards » de Radiohead a été créé à l'aide de Processing, combiné à des données issues de la technologie lidar , et utilisant du verre acrylique et des miroirs pour créer des scènes où l'image apparaît déformée, disparaît partiellement ou se désintègre comme emportée par le vent. L'artiste textile Libs Elliott utilise Processing pour concevoir des courtepointes géométriques partiellement aléatoires. Processing a également servi à créer des illustrations pour des publications telles que Nature et le New York Times , à réaliser des sculptures pour des expositions en galerie, à contrôler d'immenses murs d'images et même à tricoter des pulls.