Ces échanges grotesques remettent une nouvelle fois en évidence, qu'on a affaire à des gens qui ne savent pas ce qu'est un
descripteur, et qui n'ont aucune idée de la mission de décrire quelque chose.
Il se confirme qu'un grand nombre de nos outils intellectuels nécessaires, ne nous ont pas été enseignés dans la tribu même qui détient un monopole d'enseignement, mais ailleurs. Ici chez les informaticiens, spécialité génie logiciel.
Dans cette peuplade des matheux, ils prétendent faire franchir à tous les élèves de 4e et 3e l'étape du calcul littéral, avec un taux d'échecs terrifiant : ils n'ont aucune idée de ce qu'est un identificateur, et ont depuis longtemps oublié l'usage des identificateurs en clair (pourtant pratiqués par nos instits en CM1).
En revanche les créations des informaticiens sont souvent grevées d'un baptême honteusement mal fait, négligent. On ne va pas en dresser la liste ici, de leurs baptêmes mal foutus. Mal dénommée, la discipline de la programmation "
orientée objets", qui désigne en fait une organisation hiérarchique par classes et héritages. C'est dans cette discipline que l'on rencontre la notion la plus aboutie des
descripteurs de quelque chose, normalisables et transmissibles à moindre coût à d'autres programmeurs, à qui on cesse de demander qu'ils soient toujours plus géniaux.
Une calculatrice HP48GX incarne pas mal une telle programmation "
orientée objet". Avec encore de sérieuses lacunes, dans l'air du temps. Vous entrez au clavier les 9 coordonnées d'une matrice 3 x 3, mais il n'y a rien pour la raccorder à une base. Si vous voulez faire un descripteur en physique, il vous faut au minimum ajouter au record de ces coordonnées, un pointeur vers une base, et quatre entiers courts signés, qui donnent la dimension physique MKSA - à supposer toutefois que les coordonnées soient dimensionnellement homogènes, ce qui n'arrive jamais en coordonnées sphériques. Et bien entendu les pointeurs vers les méthodes pour traiter tout cela correctement, inclusivement pour les changements de bases.
Bertrand Meyer était allé plus loin, en définissant la
programmation contractuelle. Il donne le contre-exemple suivant : La première fusée Ariane 5 est devenue folle après quelques secondes de vol, et il a fallu la détruire (
4 juin 1996). Et pourtant le langage ADA est un des plus robustes du marché. Sauf qu'une routine prévue pour le maintien des gyroscopes avant le départ, a débordé la zone où déposer le quotient d'une division. Avec Ariane 4, cela ne pouvait pas déborder les 16 bits prévus. Mais Ariane 5 accélérait plus fort... et ADA ne supporte pas l'interfaçage contractuel des sous-programmes, l'erreur n'a donc pas été détectée avant analyse de l'accident.
En programmation contractuelle, la subroutine aurait dû comporter une zone de plus, décrivant les conditions initiales prérequises envers l'appelant. C'est là qu'il aurait été détecté, à la compilation et à l'édition de liens validés, qu'un prérequis (la taille du dividende) n'était plus respecté par les conditions de vol d'Ariane 5.
Dans tout travail interprofessionnel, il faut prendre le temps de définir et normaliser les obligations contractuelles respectives.