Ancre de bateau (métaphore).
Métaphore désignant un équipement obsolète
En radioamateurisme et en informatique, une ancre de bateau ou boatanchor désigne quelque chose d’obsolète, d’inutile et d’encombrant – ainsi nommé parce que, métaphoriquement, son seul usage productif serait d’être jeté à l’eau comme corps-mort pour un bateau. Des termes comme brique, butoir de porte et presse-papiers sont similaires.
Radioamateurisme
En radioamateurisme, une boat anchor ou boatanchor désigne un vieil équipement radio. Le terme s’emploie habituellement pour parler de matériel radio volumineux et lourd des décennies passées, qui utilisait des tubes. Dans ce contexte, les boat anchors sont souvent appréciées de leurs propriétaires, qui mettent en avant leurs atouts (par exemple l’immunité aux IEM), même si du matériel plus récent est plus performant.
L’une des premières utilisations du terme est apparue dans un numéro de 1956 du CQ Amateur Radio Magazine. Le magazine publia la lettre d’un lecteur cherchant des « schémas ou données de conversion » pour un Wireless Set No. 19 MK II, un émetteur-récepteur issu des surplus de guerre, afin de le modifier pour l’utiliser sur les bandes amateurs. Le rédacteur ajouta cette réponse :
« La seule conversion dont nous semblons disposer dans nos dossiers ici, à CQ, requiert 100 pieds de cordage de Manille de 1 pouce, dont une extrémité doit être solidement attachée autour de l’émetteur-récepteur MK II. Cela transforme alors l’appareil en une belle ancre pour un petit bateau. Si des lecteurs ont de meilleures conversions, nous serons ravis d’en entendre parler. — NDLR. »
— CQ: The Radio Amateurs' Journal, octobre 1956
L’emploi du terme par le rédacteur suscita l’intérêt de certains lecteurs et, en février 1957, CQ publia un article de suivi accompagné de photos.
Ordinateurs
La métaphore se transpose directement des vieilles radios aux vieux ordinateurs. Elle a aussi été étendue pour désigner des logiciels reliques.
Matériel
Les premiers ordinateurs étaient des appareils physiquement volumineux et lourds. À mesure que les ordinateurs sont devenus plus compacts, le terme ancre de bateau s’est popularisé parmi les utilisateurs pour signifier que le matériel informatique plus ancien et plus encombrant était obsolète et n’avait plus d’utilité.
Logiciel
Le terme ancre de bateau a été étendu au code logiciel laissé dans la base de code d’un système, généralement au cas où il serait nécessaire plus tard. C’est un exemple d’anti-patron et cela peut donc causer de nombreux problèmes aux personnes qui tentent de maintenir le programme contenant le code obsolète. Le problème majeur vient du fait que les programmeurs auront du mal à distinguer le code obsolète, qui ne fait rien, du code fonctionnel, qui fait quelque chose.
Par exemple, un programmeur peut enquêter sur un bogue dans le système de gestion des entrées du programme ; il parcourt donc le code à la recherche de code relié à l’API de gestion des entrées. Évidemment, si le programmeur tombe sur du code obsolète de gestion des entrées, il risque fort de se mettre à le modifier et à le déboguer, perdant un temps précieux avant de se rendre compte que le code sur lequel il travaille n’est jamais exécuté et ne fait donc pas partie du problème qu’il essaie de résoudre. Parmi les autres problèmes figurent l’allongement des temps de compilation et le risque que les programmeurs relient accidentellement du code fonctionnel au code défunt, le ressuscitant par inadvertance.
Une solution recommandée pour traiter les ancres de bateau dans le code source consiste à les retirer de la base de code et à les placer dans un emplacement distinct, de sorte qu’on puisse s’y référer si nécessaire, mais qu’elles ne soient ni compilées ni prises pour du code « fonctionnel ». (Par exemple, les supprimer en sachant qu’elles sont conservées dans la gestion de versions du projet)