La présente rubrique offre au lecteur plusieurs programmes, dont je m’empresse de préciser qu’ils sont hautement perfectibles. Voici par exemple l’algorithme de Needleman et Wunsch pour l’alignement global de deux séquences. Je dois dire, pour justifier les imperfections de mes propres travaux, que leur réalisation m’a permis de découvrir que beaucoup d’algorithmes publiés en pseudo-code étaient, disons, elliptiques, voire incomplets ou carrément faux (ce que sont probablement quelques-uns de mes programmes, je le sais et ce travail est inachevé). Bref, s’il faut un temps pour élaborer un algorithme en pseudo-code et pour en dériver le programme correct dans un langage de programmation, par exemple Scheme, croire que sera faible devant risque de conduire à une déception. Il est certes possible d’imaginer des méthodes pour dériver quasi-automatiquement le programme du pseudo-code, et d’ailleurs j’en propose une, empruntée à William Saurin qui m’a précédé dans cet enseignement et à qui cette rubrique doit beaucoup, mais le résultat n’en est pas infaillible. De tels méthodes sont des aides, pas des panacées.
Merci au passage à mon étudiant Meier Faraj, qui a analysé mes programmes avec perspicacité.
Au passage, voici une remarque inspirée par une conversation avec un collègue qui prenait la défense de Cobol en ces termes : « Cobol est le seul langage de programmation qui s’apprenne en trois jours ». Sans me prononcer sur la véracité de ce jugement, je dirais que s’il est véridique, c’est un vrai problème : parce si ce langage (ou un autre, Perl ou JavaScript au hasard) peut s’apprendre en trois jours, on n’apprend pas à programmer en trois jours, parce que pour cela il faut acquérir des concepts et de la méthode. Or, savoir utiliser un langage de programmation sans savoir programmer est la source de grandes catastrophes dont Cobol fut prodigue, en témoignent les millions de lignes de programme « en plat de spaghettis » qui servent aujourd’hui encore à gérer vos comptes bancaires et vos contrats d’assurance.