informatique

  Let me start with a well-established fact: by and large the programming community displays a very ambivalent attitude towards the problem of program correctness. A major part of the average programmer’s activity is devoted to debugging, and from this observation we may conclude that the correctness of his programs –or should we say: their patent incorrectness?– is for him a matter of considerable concern. I claim that a programmer has only done a decent job when his program is flawless and not when his program is functioning properly only most of the time. But I have had plenty of opportunity to observe that this suggestion is repulsive to many professional programmers: they object to it violently! Apparently, many programmers derive the major part of their intellectual satisfaction and professional excitement from not quite understanding what they are doing. In this streamlined age, one of our most under-nourished psychological needs is the craving for Black Magic, and apparently the automatic computer can satisfy this need for the professional software engineers, who are secretly enthralled by the gigantic risks they take in their daring irresponsibility. They revel in the puzzles posed by the task of debugging. They defend –by appealing to all sorts of supposed Laws of Nature– the right of existence of their program bugs, because they are so attached to them: without the bugs, they feel, programming would no longer be what is used to be! (In the latter feeling I think –if I may say so– that they are quite correct.)
  Permettez-moi de commencer par un fait bien établi : dans l’ensemble, le milieu de la programmation a une attitude très ambivalente à l’égard du problème de la correction des programmes. Une grande partie de l’activité du programmeur moyen est consacrée au débogage, et de cette observation nous pouvons conclure que l’exactitude de ses programmes – ou devrais-je dire : leur inexactitude patente – est pour lui un sujet de préoccupation considérable. Je prétends qu’un programmeur n’a fait un travail décent que lorsque son programme est impeccable et non lorsque son programme ne fonctionne correctement que la plupart du temps. Mais j’ai eu l’occasion de constater que cette suggestion est répugnante pour de nombreux programmeurs professionnels : ils s’y opposent violemment ! Apparemment, de nombreux programmeurs tirent la majeure partie de leur satisfaction intellectuelle et de leur excitation professionnelle d’une mauvaise compréhension de ce qu’ils font. En cette époque de rationalisation, l’un de nos besoins psychologiques les plus sous-alimentés est le besoin de Magie Noire, et apparemment l’ordinateur automatique peut satisfaire ce besoin pour les ingénieurs logiciels professionnels, qui sont secrètement fascinés par les risques gigantesques qu’ils prennent dans leur audace irresponsable. Ils se délectent des énigmes posées par la tâche de débogage. Ils défendent – en faisant appel à toutes sortes de lois supposées de la nature – le droit à l’existence de leurs bogues de programme, parce qu’ils y sont tellement attachés : sans les bogues, ils estiment que la programmation ne serait plus ce qu’elle était ! (Dans ce dernier sentiment, je pense – si je puis dire – qu’ils ont tout à fait raison.)