---
title: "Ancre de bateau (métaphore)"
type: "antipattern"
slug: "boat-anchor"
url: "http://localhost:3000/fr/antipatterns/boat-anchor.md"
description: "Métaphore désignant un équipement obsolète"
---
# Ancre de bateau (métaphore)

> Métaphore désignant un équipement obsolète

En [radioamateurisme](https://en.wikipedia.org/wiki/Amateur%5Fradio "Amateur radio") et en [informatique](https://en.wikipedia.org/wiki/Computing "Computing"), 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](https://en.wikipedia.org/wiki/Mooring%5F%28watercraft%29 "Mooring (watercraft)") pour un bateau. Des termes comme **[brique](https://en.wikipedia.org/wiki/Brick%5F%28electronics%29 "Brick (electronics)")**, **butoir de porte** et **presse-papiers** sont similaires.

## Radioamateurisme

En [radioamateurisme](https://en.wikipedia.org/wiki/Amateur%5Fradio "Amateur radio"), une _boat anchor_ ou _boatanchor_ désigne un vieil équipement [radio](https://en.wikipedia.org/wiki/Radio "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](https://en.wikipedia.org/wiki/Nuclear%5Felectromagnetic%5Fpulse "Nuclear electromagnetic pulse")), 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](https://en.wikipedia.org/wiki/CQ%5FAmateur%5FRadio "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](https://en.wikipedia.org/wiki/Wireless%5FSet%5FNo.%5F19 "Wireless Set No. 19") MK II, un [émetteur-récepteur](https://en.wikipedia.org/wiki/Transceiver "Transceiver") 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](https://en.wikipedia.org/wiki/CQ:%5FThe%5FRadio%5FAmateurs%27%5FJournal "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](https://en.wikipedia.org/wiki/Computing "Computing") é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](https://en.wikipedia.org/wiki/Source%5Fcode "Source code") [logiciel](https://en.wikipedia.org/wiki/Software "Software") laissé dans la [base de code](https://en.wikipedia.org/wiki/Codebase "Codebase") d’un système, généralement au cas où il serait nécessaire plus tard. C’est un exemple d’[anti-patron](https://en.wikipedia.org/wiki/Anti-pattern "Anti-pattern") et cela peut donc causer de nombreux problèmes aux personnes qui tentent de maintenir le [programme](https://en.wikipedia.org/wiki/Computer%5Fprogram "Computer program") 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](https://en.wikipedia.org/wiki/API "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](https://en.wikipedia.org/wiki/Source%5Fcontrol "Source control") du projet)
