Création et langages de programmation Principe général L'objet multimédia apparaît de plus en plus comme une réunion de problématiques de création avec de la programmation informatique. Le bon fonctionnement d'une équipe est souvent relatif à la qualité des échanges entre ces deux pôles création et technique. Afin de fluidifier cette articulation fondamentale, l'idée est de fournir un espace de recherche et d'apprentissages qui réunisse créativité et conception de programmes informatiques. Pour ce faire nous proposons d'entrer dans une pratique de la programmation avec deux objectifs : 1) Un objectif de culture et de recherche : la programmation est abordée comme un élément de culture fondamentale dans le domaine du multimédia. Sa connaissance ainsi que sa maîtrise ouvrent des possibilités scénéristiques originales et spécifiques. Elle permet en outre d'élargir le multimédia (CDRom, DVD, Internet) à d'autres champs qui utilisent par exemple capteurs et robotique. 2) Le second objectif est de permettre à des personnes de formations en sciences humaines, littéraires ou artistiques de pouvoir apprendre à programmer. Apprendre à programmer comme on apprend à jouer d'un instrument de musique, avec le même plaisir et la même curiosité. Pour ceux et celles qui le souhaitent Il est offert à terme sur plusieurs semestres d'acquérir une réelle compétence de programmation qui sache conjuguer la part de création associée à l'imaginaire et la part technique prise au pied de la lettre, dans toute sa difficulté. L’axe de la création L’axe de la création est abordé à travers deux grandes orientations : 1) Le programmeur écrivain Du point de vue du programmeur écrivain la programmation est envisagée dans un sens artistique quasi littéraire : la programmation comme technologie d’expression et de formulation d’idées dégagée de toutes contraintes utilitaires (au rebours d’une programmation de service, d’un simple outillage) 2) La seconde orientation, intitulée « des arts plastiques à la démo numérique ou au jeux vidéos » est plutôt une orientation de recherche. L’idée initiale est de porter dans le champ multimédia certains processus d’analyse et de création empruntés aux arts plastiques. L’information est proposée comme une matière à laquelle il est possible de donner forme via une pratique de la programmation. Le programme apparaît comme un dispositif informationnel comme il y a des dispositifs plastiques. Ces deux orientations donnent en fait un état d’esprit qui va servir de cadre général à une pratique de la programmation. L’axe technique, pratiquer la programmation ou « jouer» de la programmation Entre en ligne de compte la question des langages de programmation : Qu’il s’agissent du C++, du Java, de l’ActionScript, du javascript, du PHP il y a un tronc commun de syntaxe que l’on retrouve entièrement dans le langage C. Le langage C est donc un peu une sorte d’épure de programmation qui ouvre un accès à pratiquement tous les langages ensuite. Comme dans une école d’ingénieurs les concepts fondamentaux de la programmation et surtout un noyau essentiel de syntaxe que l’on retrouve dans beaucoup de langages vont être abordés premièrement en C. L’idée est de faire un atelier de « robographes » en mode console 16 couleurs. Le « robographe » est à la programmation informatique ce que l’objet sonore de Pierre Scheaffer est à la musique et au son. C’est un objet algorithmique dans un langage de programmation mais qui a aussi sa correspondance dans l’imaginaire du programmeur, c’est à dire auquel correspond une image mentale propre aux investissements de sens. Le robographe est tout à la fois un programme et une création. Principaux concepts de programmation envisagés Fonction et algorithme / Variables et types de données (entiers, caractères) / Tableaux, structures, adresses (construction de la mémoire de l'ordinateur) / Opérateurs arithmétiques, relationnels ( supérieur à inférieur à supérieur ou égal, inférieur ou égale, égale à, différent de), logiques ( le ET, le OU, le NON_ négation de_ ) / Expressions (concerne surtout les déclarations et les affectations ) / Instructions de boucle (boucle for, while, do-while), de condition ( if, else if, else ), de branchement (switch et instruction de rupture "break"), "return" qui provoque la fin d'une fonction. Simultanément à l’apprentissage du C, et dans la mesure où ce n’est pas source de confusion pendant l’apprentissage, une relation est entretenue qui va du C à l’ActionScript. Pourquoi ActionScript ? 1) ActionScript peut être abordé comme un langage impératif fonctionnel (organisé autour de la notion de fonctions). Les onze premiers chapitres sur dix sept du livre « ActionScript, la référence » de Colin Moock, réalisateur du langage couvrent une approche non objet de la programmation. Mais également ActionScript peut être pleinement appréhendé comme un langage objet ou la structure de données « objet » prime sur la fonction. 2) La programmation dans flash fait l’objet d’une mise en scène très originale. C’est en soi une belle création qui vaut le coup d’œil (pourrait-on transposer le principe de Flash dans le domaine musical ? PatchWork à l’Ircam ?). Le fait de programmer un peu en C permet de mieux la comprendre et de mieux l’apprécier. 3) ActionScript est maintenant très proche du java, le passage pourra être facilité ensuite 4) ActionScript est directement lié à l’idée de créer des fictions numériques. Conclusion : Création de programmes de fictions… Dés lors qu’il y a maîtrise de la programmation il y a possibilité d’introduire des problématiques liées à l’intelligence artificielle dans le domaine des jeux vidéos et de toutes recherches scénaristiques propre à l’écriture informatique… à suivre !