Ca, c’est un catch 22

5 décembre 2010 par Arnaud

« Ca, c’est un catch 22 » dit-on parfois en anglais, surtout dans le milieu de l’informatique. Dans le langage courant, ça veut dire un « no-win » : impossible de gagner. Par extension, c’est devenu parfois la fameuse expression française « devoir choisir entre la peste et le cholera ».

Si on revient à la programmation, imaginons qu’un booléen (une variable qui ne peut avoir pour valeur que 0 ou 1) soit justement à 1. Une portion de code « catch 22 » va la changer à 0. S’il est déjà à 0 ? Le code va la laisser à 0.

Catch 22, c’est en fait le nom d’un livre de Joseph Heller, un vétéran de la 2ème guerre mondiale qui a connu un succès fabuleux. L’histoire est assez simple : le capitaine Yossarian, pilote de bombardier, est coincé sur une ile au large de l’Italie fasciste alors que les conflits font rage. Son commandement est composé de pas mal de gratte-papier,  tous plus ou moins sains d’esprit, qui ne font que suivre les procédures et les commandements aveugles d’une administration qui ne comprend pas vraiment les réalités du terrain. Yossarian est un poltron et il est parfaitement conscient qu’on l‘envoie au casse-pipe juste à cause de décisions prises par des ronds de cuir. Il sait également que dans le règlement militaire, une personne mentalement instable ne peut pas faire partie d'une équipe de pilotage d'avion (il est navigateur). Malheureusement, il se heurte au fameux article Catch 22 qui stipule que toute personne qui veut éviter de se faire tuer est finalement complètement saine d’esprit. En pure algorithmique on pourrait résumer par cela :

  • Si homme sain d’esprit -> peut aller combattre
  • Si homme fou ->  peur de combattre -> comportement normal -> homme sain d’esprit -> peut aller combattre

C’est la situation « no-win » de ce savoureux ouvrage que je vous invite à lire. Le wikipédia en français est hélas assez court donc je donne également la version anglaise plus étoffée.

Catch 22

source Image