Processing: nouveau jouet
Par Thomas Reiss le mardi 2 septembre 2008, 19:48 - Ma vie - Lien permanent
Grâce à un billet sur DLFP, j'ai découvert un petit programme qui m'a immédiatement plu! Processing. Moi qui aie toujours envisagé l'informatique comme étant quelque chose de plus ou moins sérieux - et surtout moins, je me languissais de ne plus trouver un environnement aussi instantané que ce que j'ai connu avec l'Amstrad CPC - mes toutes premières lignes de Basic - et l'Atari ST avec le GFA Basic...
Et voilà bien, après un essai de quelques minutes, un programme qui m'enthousiasme bien plus que le trio infernal Tomcat/Apache et JK (la suite arrivera... un jour).
A la
croisée entre un langage de programmation et une API, Processing fournie un mini-environnement de programmation que
l'on appréhende facilement grâce à sa simplicité et sa légèreté - même si ça
reste du Java. Il a été conçu par deux artistes américains, Benjamin Fry et
Casey Reas (voir l'article sur la Wikipedia, dans le but d'offrir aux artistes un outil
de création graphique interactif, simple d'accès et offrant un maximum de
possibilités créatrices.
Processing s'appuie sur Java, dont il conserve un peu la syntaxe, mais en en masquant les plus affreuses subtilités. L'environnement de développement permet de mettre au point son programme à l'ancienne, par différents essais où l'on voit se que ça donne, laissant ainsi libre court à notre imagination, et surtout remettant au goût du jour cette instantanéité et cette expressivité que l'on pouvait avoir avec des langages comme le GFA Basic.
La programmation est abordable sans lire de pavés de plusieurs centaines de pages, il suffit juste de connaître certaines particularité et de se référer à la documentation en ligne de Processing pour faire ses premiers pas.
Un programme avec Processing commence généralement par une méthode
setup() qui va tout simplement initialisé l'environnement de
travail - on s'en serait douter: taille du canvas, framerate, couleur de fond,
etc.
Par exemple :
void setup() {
size(200, 200);
background(0);
stroke(255,255,200);
}
On lui ajoutera encore une méthode draw() qui va se contenter
de redessiner l'espace de travail à chaque changement de frame. Voici un petit
exemple tout bête :
void draw() {
point(mouseX,mouseY); // dessine un point sous le curseur de la souris
}
Le programme résultant peut évidemment être exécuté depuis l'environnement de développement, mais il est également possible de le transformer en programme autonome, ou carrément de générer une applet Java pour frimer sur la blogosphère !
Cliquez ici pour voir le résultat
Voilà en tout cas une bien belle surprise qui gagne franchement à être connue. Processing permet d'envisager des choses intéressantes, tout en gardant une spontanéité perdue avec les nouveaux langages disponibles. Bien entendu, ce n'est pas avec Processing que l'on va programmer le FPS de la mort qui tue, mais c'est un outil vraiment très intéressant de prototypage et d'expérimentation. On soulignera qu'il permet d'utiliser OpenGL pour afficher de la 3D, qu'il permet d'interpréter les entrées du clavier et de la souris, et même de s'interfacer avec une carte Arduino, ouvrant vraiment très loin les possibilités d'interaction !
Pour aller plus loin:





Commentaires
Mouais bien tu vois la première fois que j'ai lu ce billet, je me suis dis bof.. encore un truc sans avenir...
Mais depuis que j'ai vu les demos de Vic en Processing, j'ai changé d'avis :)
Bon ca reste quand TRES (TROP ?) proche de java mais y'a de quoi s'amuser :) et le petit IDE est plutôt marrant, assez GFA ouais :)
Nan nan je dois pas... trop de choses a faire avant !
Tiens, et je n'ai même vu les démos de Vic ! J'avais simplement vu un moyen de jouer un peu... Bien entendu, je n'ai pas approfondi depuis.
J'ai aussi trouvé NodeBox (http://nodebox.net/code/index.php/H...) mais qui ne fonctionne que sur Mac OS X et qui s'appuie sur Python, une bonne excuse pour apprendre le Python car j'avoue être réfractaire au Java.
Un autre truc qui m'amuserait beaucoup, c'est Quartz Composer, toujours sur Mac. Le bidule te permet globalement de connecter différents générateurs avec différents effets... Le principe est un peu le même que Processing, mais tu organises ton code de manière graphique.
Enfin bon, comme toi, trop de choses à faire avant ;)