21

The best way to describe what I mean by "Legacy code" comes from this website

That stuff that other people wrote. They've all since left the company, [or worse, they're still here but not working on it], so there's nobody left who knows how it works. It really needs to be refactored properly (preferably rewritten), but there's no time, and everything's using it.

The concept is fairly common, especially in large enterprise software, and is largely studied (random example [pdf])

Online translators mention "code hérité", but I am not really convinced. "Bagage technique" comes to mind, but doesn't feel very accurate either.

Considering I want to mention this in a potential interview, how should I refer to it to another working professional (in French)?

3
  • 9
    Note that we mix a lot of English words in IT discussions in French, and the person that you are talking to may not be aware of the French equivalent of this expression. I heard "legacy" much more than any French alternative, related to antiquated code produced either in-house or externally. Commented Jun 29, 2012 at 13:46
  • 1
    Fourth Hot question on StackExchange, congrats ! stackexchange.com/questions
    – Lierre
    Commented Jun 29, 2012 at 17:59
  • By the way, your title doesn't match the text in your question; that's why you get so many different answers! "Legacy code" I would translate as code historique, but inherited code or "stuff that other people wrote. They've since left the company" would be code hérité in my mind.
    – Mr Lister
    Commented Jun 30, 2012 at 11:54

6 Answers 6

18

Personally, I use the statement « code historique ». Example :

Le développement a pris plus de temps que prévu car j'ai dû refactoriser du code historique. [Development took longer than expected because I had to refactor some legacy code.]

« Bagage technique » means another thing entirely. It refers to technical knowledge.

1
  • I like how simple and straight-to-the-point this is. I'd have no problem using it in interviews and it does convey exactly the meaning. Thanks!
    – rahmu
    Commented Jun 29, 2012 at 17:34
14

Code hérité utilisé seul me parait mauvais, hériter est censé être un verbe transitif. Si tu ajoutes un complément, je pense que cette traduction est très bonne. Exemple :

du code hérité de la version Fenêtre 95 du projet

Pour traduire legacy code dans son utilisation sans complément voici quelques propositions :

  • Code fossile. — Traduction un peu libre, mais avec beaucoup de charme, qui insiste sur l'aspect historique du legacy code et sur son caractère figé. Traduction très compréhensible et très adaptée à une utilisation pratique.
  • Code vétuste.Qui n'est plus utilisable, en raison de sa conception dépassée. — Cette proposition insiste sur l'incompatibilité du legacy code avec le code actuel, le sens de vétuste colle parfaitement. Ne sonne sans doute pas très bien en utilisation pratique.
  • Code obsolète.Qui n'est plus en usage; tombé en désuétude. — C'est un vieux mot français tombé en désuétude — ou devenu obsolète — mais qui est revenu dans la langue sous l'influence de l'anglais. Certains le considère comme un anglicisme, mais je pense que ce n'est que son usage abusif qui est un anglicisme. Il est vrai que ce mot a en anglais un sens un peu plus large et qu'il est beaucoup plus répandu. Cette traduction est immédiatement compréhensible, même par un anglophone.
  • Code caduc.Sens propre : Qui menace ruine, vieux, délabré., mais beaucoup de sens dérivés inusités — Traduction un peu plus audacieuse, assez percutante et avec deux belles allitérations. Traduction moins facilement compréhensible, mais adaptée à une utilisation pratique.
  • Code suranné. — Qui a cessé d'être en usage, qui ne se fait, ne se porte ou ne se dit plus et se réfère à une époque révolue. — Le sens de suranné colle parfaitement au sens de legacy code, car il y a bien la notion de péremption et de révolu, mais ce n'est pas la traduction la plus immédiatement compréhensible.

Par « adapté à une utilisation pratique », j'entends qui sonne suffisamment bien pour être utilisé répétitivement, propre à désigner la notion autant qu'un exemple particulier. Pour cela, je préfèrerais fossile ou obsolète. Pour un besoin ponctuel vétuste et suranné conviendront. Caduc est plus pour briller dans les diners mondains d'informaticiens francophiles.

If you have trouble reading French, I can translate this answer. I suppose you don't since you asked a very specific question.

9
  • +1 plus pour la poésie (en particulier l'allitération de code caduc que je trouve très belle) que pour le côté pratique... je ne me vois vraiment pas utiliser ces termes avec des collègues :) Commented Jun 29, 2012 at 16:05
  • 3
    I have no problem with French whatsoever. I write in English because of my qwerty keyboard and would not allow myself to write without the proper ... accents (diacritic seems more appropriate). As for your suggestions, they are brilliant but I'm afraid they'd make me sound overly pedantic, especially as I'm not a native French. For what it's worth I learned "caduc" and "suranné" today :) Giving an upvote, but not accepting because I mentioned I am looking to use the idiom in job interviews, not francophile mundanities. Impressive answer nonetheless!
    – rahmu
    Commented Jun 29, 2012 at 17:26
  • 2
    Also, I just realized "Fenêtre 95". You sir, just made my day.
    – rahmu
    Commented Jun 29, 2012 at 17:27
  • 2
    Non, vraiment, je n'utiliserais aucun de ces termes dans une discussion... Soit j'aurai l'air pédant comme dit plus haut, soit je serai amené de toute façon à utiliser le terme legacy code histoire de clarifier les choses... Commented Jun 29, 2012 at 20:50
  • 1
    Toutes ces traductions véhiculent des connotations péjoratives qui ne sont pas forcément opportunes, et en tout cas pas initialement présentes dans le terme anglais legacy code, plus neutre. Ces appellations sont plus des jugements de valeur sur le code qu'une réelle appellation technique (descriptive). Réponse néanmoins intéressante à de nombreux points de vue, mais pas loin d'être hors-sujet quand même... Commented Jul 2, 2012 at 10:48
7

The most neutral french translation for legacy code would be code existant, or l'existant if you want to broaden the phrase to abstractions around the code, like interfaces, flow, GUI, etc…

I'm afraid every other translation could have side meanings, and is not 100% safe to use, unless you exactly know the exact implication of the person you're talking to with said legacy code.

1
  • +1. If you're refering to some code when talking to its authors, you certainly won't use code fossile or any other expressions carrying too much grievance... Commented Jul 2, 2012 at 10:53
6

It depends of the context you want to associate with this "legacy code".

If you want to induce a notion of bad quality, I would use "dette technique", yet this is often translated as "technical debt".

If you only want to talk about some old code, I would use "code historique" as @Stamm.

5

If I really had to translate this expression, I would use du vieux code (if not being specific) or l'ancien code du système X (if talking about a particular project / piece of software).

However, as mentionned in the comments, if the person you are talking to is familiar with the concept, specially if he/she is a tech person, using the original English term is your safest bet.

3

Différentes traductions possibles

Un informaticien expérimenté ne touche pas un code qui fonctionne et qui est toujours en usage, même s'il date de Mathusalem, c'est pourquoi j'ai souvent entendu parlé de code hérité que l'on améliore avec des solutions de contournement, et parfois des verrues lorsque la situation se dégrade.

Sinon il refait l'application, change de langage, ..., du code pourri, qui de ce fait ne sera plus Legacy code.

4
  • 1
    bof. hérité might introduce confusions with inheritance which is a different concept
    – rds
    Commented Jul 11, 2012 at 8:57
  • 1
    @rds Non : "hériter (verbe donc action de recevoir) d'un code pourri", n'a rien à voire avec l'héritage (nom, donc définition d'un patrimoine reçu) des langages orientés objet,
    – Personne
    Commented Jul 12, 2012 at 6:28
  • Comment ça? En programmation orientée objet, une classe hérite d'une autre. C'ets bien le même verbe qui est utilisé dans des contextes et usages différents. Moi, je trouve que ça peut être confus quand on parle de code hérité (par exemple, ma MainActivity a hérité d'un code pourri, si c'est une critique du framework Android ou une critique de l'ancienne version de MainActivity)
    – rds
    Commented Jul 15, 2012 at 10:06
  • @rds Désolé d'avoir été abrupt, ... et pas très explicite : en fait la discrimination se fait sur les mot code qui ne peut pas hériter de qui que ce soit, mais qui peut être reçu en héritage [pourri] ; alors que vous évoquez une classe qui, en Java, hérite au moins de la classe racine Object. Cependant son code peut être pourri, et alors ses héritières peuvent parler de code hérité : cela concerne une classe, un paquetage, une application ...
    – Personne
    Commented Jul 15, 2012 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.