Mutable vs immutable : un concept essentiel dans la programmation moderne
mar, 13/01/2026 - 09:37
Dans les langages actuels, nous parlons beaucoup de mutable et d'immutable pour des objets, des types, des classes. Par définition, un objet mutable peut être modifié après sa création. Un objet immutable est l'inverse : il s'agit d'un objet que l'on ne peut pas modifier après sa création. Si on veut le modifier, il faut créer un nouvelle objet ayant une autre adresse mémoire que l'objet immutable que nous souhaitons modifier. Un objet ou une classe mutable peut donc être modifé, avec les risques d'effets de bord ou une difficulté à garder les bonnes valeurs. On peut modifier une liste, une collection, etc. En C#, par exemple, les Arrays et les lists sont mutables.
Un objet immutable reste inchangé après sa création. Il est donc constant dans le temps et on peut prévoir son comportement ou sa valeur. Il peut aider à améliorer la sécurité. En C#, l'immutabilité peut renforcer le bon comportement des threads, faciliter le debug mais il peut consommer plus de mémoire et à chaque modification souhaitée, il faut créer un nouvel objet.
Le choix entre mutable ou immutable dépend de l'objet à créer mais aussi des besoins que vous avez dans le développement. L'immutable apporte plus de sécurité et évite le risque de modifier des objets qui ne doit pas l'être. La mutabilité apporte une grande souplesse dans les manipulations et le comportement mais avec le risque de corrompre l'objet ou une valeur si la manipulation est mal faite.
En Python, les lists, les sets sont mutables, à contrario, les int, float, str, tuple ne le sont pas.

Image : Bharath Kumer Murugan / mutable et immutable en JavaScript

