« The craft of programming »¶
Texte, partie 1¶
« The craft of programming » [1]
Même si tous les graphistes travaillent avec un ordinateur, il est paradoxal de constater que quelques-uns seulement ont un rapport créatif à la technique informatique. La machine est très souvent considérée comme une black box mystérieuse, hermétique, compliquée, quand ceux ou celles qui en saisissent la logique ne sont pas taxés de techniciens ou d’exécutants…
La programmation n’est pas un impératif technique pour les travaux d’édition, mais la conception dépend néanmoins de l’informatique, ce qui pourrait induire une réflexion sur les outils numériques. « Quiconque est impliqué dans la production culturelle, avec, pour, ou autour d’un ordinateur devrait savoir comment lire, écrire et penser les programmes informatiques [2]. »
Par ailleurs, malgré l’engouement actuel pour le livre d’art et l’édition bien pensée [3], il est absurde d’envisager un avenir sans commande sur média numérique. Comme il est inimaginable de travailler sur des formes papier sans connaître les processus d’impression, comment penser pouvoir produire des formes numériques sans en maîtriser les rouages ? Comment concevoir sérieusement un site web si l’on n’est pas familier, d’une part avec le média lui-même, et d’autre part avec la réalisation technique, c’est-à-dire la programmation ? Il est nécessaire que « les designers et les développeurs ne soient placés en équipe que si chacun a une connaissance du champ d’expertise de l’autre [4]. » Il ne s’agit pas de former des développeurs professionnels, mais des designers suffisamment autonomes pour développer leurs prototypes, ayant aussi la possibilité de faire entrer la programmation informatique dans leur méthode de création.
On peut alors envisager le design logiciel non plus comme une technique au sens réducteur du terme, mais comme partie intégrante du processus de design graphique. « La puissance créative, c’est écrire le code du filtre, c’est décider comment il marche, ce n’est pas l’utiliser [5]. »
[1] « La fabrication de l’acte de programmation » Crow, David. « Magic box : craft and the computer », art. cit., p. 24.
[2] « Anyone involved in cultural production on, in or around a computer should know how to read, write and think about programs. » Davidson, Drew. Beyond Fun : Serious Games and Media, p. 81
[3] On peut observer depuis quelques années une multiplication des salons indépendants d’édition d’art (salons Light et Offprint à Paris, Motto Fair à Berlin…)
[4] « Only practitioners who combine procedural literacy with a conceptual and historical grounding in art and design can bridge this gap and enable true collaboration. » Seuls les praticiens possédant à la fois des techniques de programmation et un bagage historique et conceptuel en art et en design peuvent franchir ce fossé et engager une véritable collaboration (avec les développeurs). Mateas, Michael. « Procedural literacy : educating the new media practitioner ». On the Horizon, no 1, 2005.
[5] « Creative power comes from writing the code of the filter, deciding how it works, not from using it. » Texte de présentation de la typographie Robotfont éditée par LettError. www.letterror.com/content/nypels/robotfont.html
Points abordés¶
- le rapport du graphiste à la machine : plus souvent comme une boîte noire que réellement intégrée au processus créatif
- un rapport conflictuel voire une conception péjorative de la maîtrise technique.
- l’idée que toute personne impliquée dans des travaux dépendant d’outils logiciels « devrait savoir comment lire, écrire et penser les programmes informatiques »
- l’idée qu’il serait absurde d’envisager le futur sans commande sur média numérique
- une analogie entre l’impensabilité de la création pour l’imprimé sans connaître les processus d’impression, et la situation analogue pour les médias numériques
- l’idée que pour travailler ensemble, designers et développeurs doivent avoir un certain degré de connaissance du champs d’expertise de l’autre
- la précision qu’il ne s’agit pas de faire des designers des développeurs dans le sens des personnes assurant la position de développeur – même si c’est parfois le cas –, mais des personnes capables de réaliser des prototypes et d’intégrer la programmation dans leur pratique
- l’idée que la partie créative peut se loger davantage dans la création du logiciel que dans son usage
Personnes ou organismes abordés¶
- Michael Mateas, directeur du Center for Games and Playable Media de l’université de Santa Cruz
Texte, partie 2¶
Créer son outil, c’est faire des choix qui détermineront le résultat final, comme n’importe quel choix de conception. David Crow évoque The craft of programming, craft étant entendu au sens des Arts and Crafts, avec une relation à l’artisanat, à la main. Le code est une matière à modeler comme peut l’être un pain de terre glaise ou un bloc de texte.
Programmer, c’est articuler des structures logiques en les appliquant à des données, ce qui génère un résultat. Le travail du code ne regarde pas tant les données de base, ni le résultat, mais le traitement de ces données par l’enchaînement des instructions. La finalité, ce sont les données représentées, le contenu mis en forme, sans qu’aucun autre artefact extérieur n’intervienne. Dans le cas d’un logiciel comme Processing, le code textuel est interprété par la machine pour générer une matrice de pixels, elle-même perçue comme une image. L’équivalence du texte à l’image est directe, mécanique. Le rapport image/texte, à la base même du design graphique, n’est plus ici directement maîtrisé et visualisé (comme avec un logiciel WYSIWYG ou des morceaux de papier), mais dissocié dans le temps, asynchrone.
Ce décalage entre conception et visualisation du résultat entraîne nécessairement une perte de maîtrise : il n’y a plus de retour visuel immédiat sur ce que l’on dessine. C’est dommageable si l’on poursuit un objectif formel précis, mais cela génère également souvent des surprises graphiques nées du contenu même. Ces surprises sont autant d’ouvertures formelles potentielles, émanant directement des données de base.
De nouvelles méthodes de création pourraient ainsi émerger des techniques de programmation : Github [6], par exemple, est un site web destiné aux programmeurs qui permet à la fois un partage du code et une archive, version après version. La spécificité de cet outil est de pouvoir forker un projet, c’est-à-dire se l’approprier et en proposer une modification ou un autre développement. Les programmes sont ainsi enrichis de nombreuses variations incluant de nouvelles fonctions ou de nouvelles applications. Le code est partagé par tout le monde et tout le monde peut faire évoluer n’importe quel projet dans n’importe quelle direction.
[6] http://www.github.com
Points abordés¶
- l’idée que les choix opérés lors de la création de l’outil déterminent la production de l’outil
- l’idée que créer son outil, c’est donc opérer des choix relatifs à ce qui sera produit
- l’idée que la programmation peut être envisagée comme un artisanat, une matière à modeler
- l’idée que programmer est mettre en place un système qui s’applique à des données et génère un résultat
- l’idée que le travail de programmation concerne principalement le système, moins que les données de base et le résultat, qui est la finalité
- est donné l’exemple du logiciel Processing, lequel permer, à partir de textes, de programmes, de générer des images
- l’idée qu’avec la programmation s’installe une temporalité différente d’avec le wysiwyg, une asynchronicité
- l’idée que cette asynchronicité entraîne une forme de perte de maîtrise, de retour visuel immédiat
- l’idée que cette perte peut-être dommageable lorsque l’on cherche à obtenir un résultat précis (ce qui est relatif, certains résultats étant plus simples à obtenir avec la programmation) mais génératrice d’inattendu, et donc de potentialités
- l’idée que de nouvelles méthodes de création peuvent émerger de la pratique de la programmation
- git et github, un système de gestion de version utilisé en programmation, est montré comme un exemple où le code est disponible et modifiable par tous (au-delà des questions de licence)
Personnes ou organismes abordés¶
- David Crow, head of design, Manchester Metropolitan University. L’article cité est “Magic Box: Craft and the Computer.” Eye Magazine, Winter 2008.
- Processing, un logiciel dont le but est de promouvoir la programmation, notamment dans le champs des arts visuels [7] .
- Git, un logiciel de gestion de version, principalement pensé pour et utilisé par les développeurs
- Github, une plate-forme en ligne basée sur le logiciel git et proposant une interface web.
[7] | Processing Foundation. “Overview. A Short Introduction to the Processing Software and Projects from the Community.” Processing.org. |
Texte, partie 3¶
Si l’on reconnaît la possibilité de créer des objets de design graphique en programmant, ce type d’outil propose une toute nouvelle méthode de conception : un design mutualisé, partagé. Il s’agirait alors à la fois d’utiliser des fragments développés par d’autres et de mettre ses créations à disposition de la communauté [8].
Même s’il est admis depuis une quinzaine d’années que les designers graphiques devraient être à l’aise avec leur outil, l’ordinateur, la réalité est tout autre et peu de graphistes se frottent au développement. Mais depuis 2007, la dimension sociale d’Internet est de plus en plus marquée et de véritables réseaux de designers-développeurs se concentrent autour d’initiatives comme Github, Processing ou Arduino, installant de nouvelles structures de création – autant d’incitations à repenser les relations entre design, outils de création et programmation.
[8] C’est dans cet esprit de coopération qu’ont été créées les licences Creative Commons, qui protègent le créateur de l’oeuvre originale en même temps qu’elles en autorisent l’adaptation. http://www.creativecommons.org
Points abordés¶
- l’idée que dans le contexte du design graphique généré par la programmation, des outils permettent une mise en commun des processus, et leur modification
- si l’idée que les designers devraient être à l’aise avec l’outil ordinateur peut sembler évidente, la réalité est toute autre (la situation a-t-elle changée depuis 2012 ?)
- que toutefois, des designers ayant une pratique de la programmation se fédèrent autour de plate-formes comme Github, Processing, Arduino, et expérimentent de nouvelles pratiques et méthodes qui sont autant d’occasion de repenser la relation design/outil/programmation.
Personnes ou organismes abordés¶
- Arduino, une plate-forme facilitant la programmation de micro-contrôleurs et l’accès au prototypage physique (entendu par là la possibilité de sortir du cadre de l’écran à l’aide de caoteurs et actionneurs).