La complexité est parfois nécessaire

Ce matin je suis tombé sur ce bien chouette article intitulé « Le pouvoir de la complexité dans la communication visuelle » :

Un des axiomes de la communication technique est de garder les choses simples. Mais parfois, une communication complexe est la meilleure alternative.

De nombreux types d’informations ont leur propre vocabulaire accompagné de conventions pour la communication visuelle. Prenez l’exemple suivant :

La plupart d’entre vous reconnaîtront certainement ici de la musique, mais êtes-vous capable de lire la partition et d’identifier le morceau ? (en voici un enregistrement)

Si vous savez lire des partitions, vous pouvez tirer une énorme quantité d’information de cet extrait : les notes et les rythmes, les phrasés, les nuances (très fort ou très faible), quel instrument utiliser (cet extrait n’indique pas explicitement un piano, mais c’est suggéré par la façon dont la musique est organisée), les placements de doigts, etc. Dans cet exemple, la connaissance de la musique Italienne est utile pour comprendre « sempre pianissimo e senza sordini » (toujours très calme et sans sourdine) et d’autres phrases.

Voici un autre exemple différent d’un langage visuel spécialisé :

Voici le résultat du modèle complet :

Les modèles de tricots, comme la musique, utilisent un ensemble standard de symboles. Mais malheureusement pour la communauté mondiale du tricot, il existe de nombreuses variantes régionales. (Le problème est encore pire en crochet, où des termes comme « double crochet » [bride, en français] ou « treble/triple crochet » [double bride, en français, merci Madame pour la traduction] ont une signification différente dans les modèles en anglais Britannique et les modèles en anglais Américain). Ceci dit, il est faisable pour un tricoteur qui parle seulement anglais d’utiliser un modèle de tricot russe ou japonais.

Ces exemples m’ont immédiatement rappelé cette interview de Richard Feynman, prix nobel de physique. Je vous avais déjà montré cet extrait en février dernier en m’intéressant à la première partie de l’interview. Interrogé par un journaliste agacé qui cherche à comprendre pourquoi des aimants se repoussent quand on les colle. Dans cette deuxième partie, Richard Feynman lui explique pourquoi il ne peut pas lui répondre (à partir de 6:09).

Feynman: Magnets  FUN TO IMAGINE  4  But see NEW UPDATED file at https://tinyurl.com/ycphc432

Je ne peux pas vous expliquer cela dans des termes qui vous seraient familiers. Par exemple, si je vous expliquais que les aimants s’attirent comme s’ils étaient reliés par un élastique, je tricherais avec vous. Parce que rapidement vous me poseriez des questions concernant la nature des élastiques. Et si vous êtes suffisamment curieux, vous me demanderiez pourquoi des élastiques tendent à revenir à leur forme initiale, et je devrais alors vous expliquer cela en terme de forces électriques, ce qui était exactement ce que je voulais éviter de vous expliquer à la base. Donc j’aurais triché vraiment pauvrement.

Donc je ne vais pas pouvoir vous donner une réponse à votre question « Pourquoi est-ce que les aimants s’attirent ? », à part vous dire que c’est effectivement le cas. Et aussi vous dire que ça fait parti des éléments de ce monde, avec les forces électriques, les forces magnétiques et les forces gravitationnelles parmi tant d’autres. Si vous étiez étudiant je pourrais aller encore plus loin et vous expliquer que les forces magnétiques sont liées aux forces électriques, de manière très intime. Que la relation entre les forces de la gravité et les forces électriques reste inconnue. Et ainsi de suite.

Mais je ne peux vraiment pas faire un bon travail, voire même le moindre travail, pour expliquer les forces magnétiques dans des termes qui vous seraient plus familiers, parce que je ne le comprends pas moi même dans des termes qui vous sont plus familiers.

Tout cela m’a rappelé un travail qui m’a occupé en partie cette semaine. Il y a quelques années, nous avions développé un outil de génération de code HTML remplaçant certains codes de templates par des valeurs saisies dans un formulaire. A l’époque, on avait opté pour une écriture des codes de templates la plus simple possible, du genre [[field_type:field_name]]. Deux ans plus tard, en remettant le nez dans ce projet, cette écriture me semble des plus farfelues. A vouloir créer un système de templates lisible par n’importe qui, on a omis de rendre ça lisible pour un développeur. Notre outil étant destiné uniquement pour nous en interne, entre développeurs, il n’y avait aucune raison à vouloir chercher à simplifier cette écriture pour un néophyte.

Ça m’a rappelé la différence d’écriture qu’on peut trouver entre un template Smarty en PHP et un template WordPress. Smarty est un très bon système de template si vous souhaitez à tout prix masquer à votre audience (créateurs de thèmes, développeurs, intégrateurs) quelque chose qui pourrait ressembler à du code. Mais en tant qu’intégrateur, je trouve que c’est particulièrement horrible à lire et très rigide à manipuler. A l’inverse, WordPress propose simplement un ensemble de fonctions. Ça ressemble à du PHP, ça sent le PHP : c’est du PHP, et rien n’est fait pour essayer de le cacher. C’est probablement un peu plus décourageant pour un néophyte qui voudrait se lancer dans la création d’un thème WordPress.

Mais ça a le mérite d’imposer un minimum de rigueur. Si vous voulez jouer de la musique, il va falloir apprendre à lire des partitions ou des tablatures. Si vous voulez tricoter, il va falloir apprendre à lire des modèles de tricot. Si vous voulez comprendre comment fonctionnent des aimants, il va falloir comprendre la physique. Si vous voulez coder, il va falloir comprendre comment coder.

  1. Nico, le

    Oui, c’est une remarque qu’on se fait souvent au boulot, quand je prépare les interfaces d’admin, je demande à qui elles sont destinées, au client (comprenez néophyte) ou à nous.

    Car selon le public, je ne m’embarrasse pas de certains détails : les interfaces d’admin trop orientées débutants nous font perdre un temps fou.

  2. Thibault, le

    Ce genre de réflexion est trés importante. À force de vouloir simplifier à tout prix sans réfléchir à qui est destiné l’outil, on obtient des trucs batards inefficaces à la eZ Publish.

    Peut-être faut-il poser la question autrement ? Est-ce que la complexité est nécessaire, ou bien s’agit-il d’une notion relative ?

  3. François "cahnory" Germain, le

    Ça n’a pas trop de rapport (en fait peut-être mais je ne m’en souviens plus bien) mais j’avais un peu tiqué sur le raccourci pris sur l’un de tes posts précédents autour de la batterie (l’instrument).
    Je trouvais la comparaison pas tout à fait juste car s’il est vrai que l’on peut obtenir un bon résultat avec une batterie de base, certains résultats ne peuvent être obtenus qu’avec des batteries plus complexes. je n’avais pas relevé car, si je me souviens bien le but était surtout de démontrer que la complexité n’avait lieux que si elle était requise (donc point besoin de la batterie d’un Jeff Porcaro ou d’un Simon Phillips pour jouer du GG Allin) mais ça m’avais tout de même un peu gêné.
    Bref, ce post apporte la nuance qui manquait peut-être. Je résumerais ça par :
    « La solution la plus simple est toujours la meilleure, la solution la plus simple n’est pas toujours simple »

  4. bobi, le

    Hélas, le lien de la sonate ne propose pas un Adagio Sostenuto, voilà qui correspond plus à ce que qu’a composé Beethoven : https://www.youtube.com/watch?v=uNtm3O4bfz4

  5. le hollandais volant, le

    Je suis pas vraiment d’accord avec Richard Feynmann :

    « Je ne peux pas vous expliquer cela dans des termes qui vous seraient familiers. Par exemple, si je vous expliquais que les aimants s’attirent comme s’ils étaient reliés par un élastique, je tricherais avec vous. Parce que rapidement vous me poseriez des questions concernant la nature des élastiques. Et si vous êtes suffisamment curieux, vous me demanderiez pourquoi des élastiques tendent à revenir à leur forme initiale, et je devrais alors vous expliquer cela en terme de forces électriques, ce qui était exactement ce que je voulais éviter de vous expliquer à la base. Donc j’aurais triché vraiment pauvrement. »

    Non ce n’est pas de la triche : c’est celui qui pose la question à Faynman qui est maladroit : soit il veut des explications claires et compréhensibles, soit il veut faire de la physique théorique. Mais les deux ne sont pas compatibles pour le magnétisme.

    Si on est très curieux, on se posera pas cette question de « expliquez moi simplement les aimants ».

    Je pense que c’est à celui qui explique de connaître le niveau du public à qui il s’adresse et d’adapter son discourt.

    « Si vous voulez jouer de la musique, il va falloir apprendre à lire des partitions ou des tablatures. Si vous voulez tricoter, il va falloir apprendre à lire des modèles de tricot. Si vous voulez comprendre comment fonctionnent des aimants, il va falloir comprendre la physique. Si vous voulez coder, il va falloir comprendre comment coder. »

    Ça par contre, +1.
    Mais pour apprendre à coder, il faut déjà savoir ce que c’est « coder » et ça il est nécessaire de savoir comment l’expliquer simplement.

  6. Draeli, le

    Ça me fait penser à une réflexion qu’on m’avait fais il y a bien longtemps et que j’essaye de prendre en compte quand j’ai des questions qui me sont posés : « aussi compliqué sois la question et la réponse, tu ne peux répondre simplement qui si toi même tu maîtrise ton sujet ».
    Dans l’exemple donné, je pense qu’il ne peut y avoir de réponse simple concernant les aimants dans la mesure ou même le physicien n’est pas à même d’expliquer profondément toutes les implications (certaines parties du modèle physique servant de liant étant inconnu). Ainsi, le physicien ayant encore des inconnus, tant bien même étant-il celui qui a le savoir, il est lui même dans un état de non maîtrise total. Du coup, impossibilité d’avoir une explication simple. De faite, je pense que cette question pourra être expliqué simplement le jour ou on sera à même de faire le liant entre force électrique et gravité.
    D’ici la, la seul réponse que peut donner le physicien, c’est une réponse ou il « triche » car finalement il doit faire une adaptation de la question mais également une vulgarisation des principes. Ça rejoint un peu la « dégradation gracieuse » ou on fournit au navigateur (celui qui pose la question) une information qu’il comprendra et qui lui sera suffisante.

    Donc non je ne pense pas que la complexité soit nécessaire et quand elle l’est c’est peut être qu’on a atteint les limites d’un système. En clair, on devrait avoir un système adapté à chaque interlocuteur. Typiquement dans l’exemple entre Smarty et WordPress, c’est deux approches pour deux publiques. L’un pour les intégrateurs et l’autre pour les développeurs.

    Typiquement je pense que ton approche est pour le coup une « triche » car les partitions paressent compliqués mais c’est uniquement car elles sont dédiés à un type d’interlocuteur.

  7. Christophe BENOIT, le

    Tellement vrai la remarque sur Smarty et les fonctions WP. C’est ce qui m’a rebuté de CMSMS et m’a plongé dans WordPress il y a 5 ans.