# L’élégance en informatique
Je le concède volontiers, je suis un [geek informatique](https://fr.wikipedia.org/wiki/Geek#Informatique). Je ne suis pas que cela — heureusement ! — mais tout de même. Ceci pour dire que depuis les balbutiements de l’informatique personnelle (le [premier *Macintosh*](https://fr.wikipedia.org/wiki/Macintosh_128K), l’[*IBM PC*](https://fr.wikipedia.org/wiki/IBM_PC), mais oui…), j’ai utilisé une quantité considérable de logiciels, dans des domaines extrêmement variés — du traitement de texte à la photo en passant par la programmation, les bases de données, les utilitaires de toutes sortes… — à travers de nombreuses, de très nombreuses générations de logiciels. Beaucoup de ces logiciels n’existent même plus aujourd’hui et sont tombés dans l’oubli. Il y en a beaucoup que je ne regrette pas, mais il y en a un certain nombre auxquels je peux penser avec une pointe de nostalgie. Le point commun des logiciels que j’ai appréciés et que je regrette parfois, c’est qu’ils possédaient une certaine dose d’*élégance*.
Évidemment, on peut soutenir que l’élégance est quelque chose de subjectif et que son appréciation est propre à chacun. Pourtant, il est des objets, des œuvres d’art et même des personnes qui sont généralement considérés comme *élégants* par un certain nombre de gens. Il doit donc y avoir, de temps en temps, une sorte de consensus. Voici les qualités que j’apprécie dans les logiciels et qui me donnent un sentiment d’*élégance* quand je les trouve réunies dans le même produit.
#### La puissance discrète
La *puissance* d’un logiciel, c’est sa capacité à faire beaucoup de choses, surtout les choses utiles, bien sûr. *Microsoft Word* est un logiciel puissant, parce qu’il peut faire énormément de choses — au point qu’on dit qu’il est devenu, depuis bientôt 30 ans, une « usine à gaz » — en anglais, on parle de *bloatware*. Mais son interface est à l’avenant : pleine de cadrans et de boutons comme le tableau de bord d’un avion, envahissante, pas belle. On ne peut pas dire que *Word* soit un logiciel élégant. Tandis que *Typora*, par exemple, l’est :
* Les fonctions puissantes sont là : le formatage du texte, l’import, l’export, l’arborescence du document.
* Mais elles sont discrètes : l’espace de travail reste minimaliste. On va chercher les fonctions dont on a besoin dans les menus ou bien l’on a des raccourcis clavier à disposition.
* Il y a même un mode « plein écran », dans lequel la puissance demeure, mais où l’on reste face au texte, sans rien d’autre.
Les développeurs doivent trouver l’équilibre sur deux axes généralement parallèles :
<p style="text-align: center;">Minimalisme des fonctions ←—⭢ Exhaustivité des fonctions</p>
<p style="text-align: center;">Simplicité de l'interface ←—⭢ Complexité de l'interface</p>
Sur ce critère, l’élégance est là quand :
* Les développeurs ont choisi les bonnes fonctions, celles qui sont utiles 90 % du temps.
* Un bon équilibre entre *ni trop ni trop peu* de fonctions.
* Ces fonctions sont facilement accessibles.
* L’interface n’est pas intrusive.
* Dans les meilleurs logiciels, elle est carrément minimaliste.
#### L’évidence, la logique, la clareté de l’interface
Un logiciel élégant fait exactement ce qu’on attend de lui, à chaque commande — ni plus, ni moins. On pourrait dire que c’est la *moindre des choses*… et pourtant ! Combien de logiciels ont des commandes cryptiques, des sous-menus mal-placés… On dit d’un logiciel qu’il est « intuitif » quand on trouve facilement les commandes dans les menus, que les raccourcis-clavier sont logiques — même si on peut toujours les redéfinir —, quand on trouve facilement le chemin pour faire ce que l’on veut, quand on l’apprend assez facilement, quand il donne des feed-backs sur ce qu’il fait, quand les messages d’erreur sont clairs et les erreurs facile à corriger. Un logiciel élégant ne se mêle pas non plus de faire ce qu’*on ne lui a pas demandé*, sauf quand c’est pertinent et utile.
#### La facilité de l’apprentissage
Un logiciel élégant est facile à apprendre et cela découle généralement du point précédant — on se représente facilement ce que fait chaque commande et quand on cherche « comment faire telle ou telle chose », soit le raccourci classique fonctionne, soit on trouve la fonction exactement où on l’attend dans un menu.
#### La réactivité
Quand un tappe du texte dans un éditeur, on s’attend à ce que les caractères apparaissent au moment-même où l’on frappe les touches. Un délai, même minime, donne une impression de lourdeur. De même, lorsqu’on fait défiler verticalement le texte que ce soit avec la souris, en déplaçant le curseur ou avec les touches `Page Up` / `Page Down`, on s’attend à une réaction *immédiate* de l’affichage, idéalement avec un défilement “smooth” du texte. En français on parle de *réactivité*, ce qui est le contraire de « à la traîne ». La réactivité donne un sentiment de légèreté, tandis que la lenteur donne un sentiment de lourdeur. En anglais, on dit que le logiciel est “responsive” et, quand il l’est extrêmement, on dit alors qu’il est “snappy” ou “zippy”, ce qui traduit bien l’idée que ça « glisse tout seul ». La grande réactivité d’un logiciel participe à son *élégance*. Les meilleurs logiciels peuvent être très puissants *tout en restant* réactifs. C’est l’élégance suprême pour ce critère.
#### L’esthétique
C’est certainement le plus subjectif de tous les critères. En ce qui me concerne, je considère que la beauté et l’esthétique de l’interface d’un logiciel est un critère assez important. Pour moi, une interface élégante
* n’est pas triste, elle peut comporter des couleurs ;
* est plutôté légère — pas trop d’icônes, de boutons, de menus ; plutôt du côté de la sobriété, voire de la *zénitude* ;
* est aérée ;
* cache la puissance du logiciel ^[sa capacité à accomplir des tâches nombreuses ou complexes.]. À condition que la puissance ne soit pas présente au détriment d’autres facteurs, elle n’est pas à dédaigner. Dans un logiciel élégant, cette puissance est visuellement discrète, voire cachée.
* n’est pas *boutonneuse*. Certes, les boutons sont souvent très pratiques, mais ils se doivent de disparaître quand on n’en a pas besoin et réaparaître à la demande. *Ulysses*, par exemple, fait disparaître sa “toolbar” quand il est en mode « plein écran » ; mais elle réapparaît sitôt qu’on amène le pointeur de la souris près du haut de l’écran. C’est élégant.
 
<p style="text-align: center;"><a href="https://dr-spinnler.ch"><img src="https://dr-spinnler.ch/myfiles/logos/Olivier-Spinnler.png" class= "signature"/></a></p>
<p style="text-align: center; font-style: italic;">le 18 mars 2023
</p>
 
----------------------------------------------
#informatique #software