Immutable

Définition, exemples et bonnes pratiques

À retenir

  • Une donnée immutable ne change jamais d'état.
  • Elle réduit drastiquement les bugs liés aux effets de bord.
  • Pour modifier une valeur, on génère une nouvelle instance au lieu de transformer l'existante.

En programmation, un objet ou une variable est dit immutable lorsqu'il ne peut plus être modifié après sa création. Imaginez un document plastifié : vous pouvez le lire autant de fois que vous le voulez, mais pour y changer une seule lettre, vous seriez obligé d'en imprimer une toute nouvelle version.

Étymologie

Emprunté au latin immutabilis (composé du préfixe privatif in- et de mutare, changer), le terme est devenu un anglicisme courant en informatique pour désigner des structures de données dont l'état est figé dans le temps.

Exemples d'usage

  • Les chaînes de caractères (Strings) dans des langages comme Python ou Java : toute modification crée en réalité une nouvelle chaîne en mémoire.
  • Les Tuples en Python, qui sont des listes que l'on ne peut pas agrandir ni modifier après leur définition.
  • Les variables déclarées avec const en JavaScript, bien que cela concerne surtout l'immuabilité de la référence.

Cas d'usage

L'immuabilité est massivement utilisée en programmation fonctionnelle. Elle est aussi essentielle dans le développement d'applications complexes (comme avec React ou Redux) pour suivre l'historique des changements sans risquer de modifier accidentellement des données partagées. Elle est également cruciale en multi-threading car si une donnée ne change jamais, plusieurs processus peuvent la lire en même temps sans risque de conflit.

Bonnes pratiques

Privilégiez l'immuabilité autant que possible pour rendre votre code prévisible et facile à tester. Attention toutefois à la consommation de mémoire : si vous manipulez d'immenses collections de données, créer une copie à chaque modification peut devenir coûteux sans mécanismes d'optimisation (comme le structural sharing).

Synonymes

immuable inaltérable constant figé

Antonymes

mutable modifiable variable

Conseil

Si vous débutez, essayez de coder en vous imposant de ne jamais modifier une variable existante. Vous découvrirez que cela force à mieux structurer votre logique et rend votre code beaucoup plus facile à relire par la suite.

Questions fréquentes

Pourquoi préférer l'immutable au mutable ?

Cela évite que deux parties d'un programme ne modifient la même donnée en même temps, ce qui est une source majeure de bugs difficiles à trouver.

Est-ce plus lent d'utiliser des objets immutables ?

Techniquement oui, car créer des copies consomme des ressources, mais les langages modernes sont optimisés pour que cet impact soit négligeable face aux gains de sécurité.