Lumière sur le principe de moindre surprise en programmation informatique


Le principe (ou règle) de moindre surprise s'applique essentiellement au domaine informatique, quoique l'on puisse aisément le transposer à de nombreux autres domaines, notamment dans l'ingénierie en général.
En informatique, il sert essentiellement dans les domaines suivants :
On peut y voir une transposition, du domaine théorique au domaine pratique, du rasoir d'Occam ou principe d'économie. Lorsque deux éléments d'une interface entrent en conflit, il recommande de privilégier celui qui surprendra le moins l'utilisateur ou le programmeur.

De nombreux programmes utilisent, pour afficher l'aide associée :
  • la touche « Aide » sous Mac OS X ;
  • la touche « F1 » sous Windows et GNU/Linux ;
  • les options -h et --help pour les applications en ligne de commande sous GNU/Linux et BSD (cette syntaxe se retrouve également pour certains programmes portés depuis GNU/Linux vers Windows).
L'utilisateur s'attend à ce que l'aide soit affichée à partir d'une telle action, et les logiciels doivent donc s'y conformer.

Dans les commandes de base des systèmes dérivés d'UNIX, ce principe acquiert une importance capitale. Par exemple, pour la commande cp qui sert à copier des fichiers, il existe les options suivantes :
  • -r, qui permet de copier de façon récursive ;
  • -f, qui permet de forcer la copie s'il existe déjà un fichier portant ce nom à l'emplacement cible.
La commande rm (Unix), qui sert à effacer des fichiers, adopte les mêmes options avec la même signification : c'est une application du principe de moindre surprise. Car si, pour des raisons plus ou moins contingentes, les concepteurs de cette commande avaient décidé d'inverser ces deux options, cela pourrait avoir, pour l'utilisateur, des conséquences dramatiques. L'application de ce principe constitue ainsi l'une des principales règles de la programmation ; sa formulation, pour le programmeur, pourrait être la suivante :
Adapte le comportement de ton programme à celui que peut raisonnablement attendre son utilisateur.BY TAATJENE


Popular Posts