À retenir
- Permet de manipuler des ensembles de données virtuellement infinis.
- Réduit la consommation de mémoire vive (RAM).
- Évite le gaspillage de puissance de calcul (CPU).
L'évaluation paresseuse est une technique de programmation qui consiste à attendre le dernier moment possible pour effectuer un calcul ou une action. Au lieu de tout préparer à l'avance, l'ordinateur ne travaille que si le résultat lui est explicitement demandé pour la suite du programme. C'est un peu comme un étudiant qui n'ouvrirait ses livres que la veille de l'examen plutôt que de réviser chaque jour.
Étymologie
Il s'agit de la francisation du terme anglais lazy evaluation. En informatique, le mot « évaluation » désigne le processus de calcul d'une expression pour obtenir une valeur, et « paresseuse » souligne le refus d'anticiper les calculs non requis.
Exemples d'usage
- Les générateurs (en Python par exemple) qui permettent de parcourir une liste de milliards d'éléments sans jamais les stocker tous en même temps dans la mémoire vive.
- Les flux de données (streams) en JavaScript ou Java, où chaque donnée est traitée uniquement lorsqu'on en a besoin pour l'étape suivante.
- L'évaluation court-circuit : dans un test
SI (A est faux ET B est vrai), l'ordinateur s'arrête après avoir vérifié A, car le résultat sera forcément faux quelle que soit la valeur de B.
Cas d'usage
Ce concept est massivement utilisé dans le traitement de données massives (Big Data) pour éviter de saturer la mémoire, ainsi que dans la programmation fonctionnelle pour manipuler des structures de données théoriquement infinies.
Bonnes pratiques
Utilisez l'évaluation paresseuse pour optimiser les performances, mais attention au débogage : comme le code n'est exécuté qu'au moment du besoin, une erreur peut apparaître bien après l'endroit où la donnée a été définie. Évitez aussi de l'utiliser si le calcul doit modifier un état extérieur (comme écrire dans une base de données), car cette action risque de ne jamais avoir lieu.
Synonymes
Antonymes
Conseil
Si vous débutez, commencez par explorer les concepts d'itérateurs et de générateurs. C'est la porte d'entrée la plus simple pour comprendre comment on peut traiter des données sans les charger entièrement en mémoire.
Questions fréquentes
Est-ce que l'évaluation paresseuse rend le code plus lent ?
Non, au contraire. Elle évite d'exécuter des instructions inutiles, ce qui rend globalement le programme plus efficace.
Est-ce le comportement par défaut des langages ?
Rarement. La plupart des langages utilisent l'évaluation 'stricte' (ils calculent tout de suite). La paresse est souvent une option qu'il faut activer via des fonctions spécifiques.