Un effet secondaire dans la programmation se produit lorsque l'exécution d'une fonction entraîne autre chose que l'exécution stricte de la fonction et la réception de la sortie standard. Cela peut signifier que la valeur d'une variable change pendant qu'elle est calculée dans une fonction. Les langages de programmation déclaratifs ont rarement des effets secondaires; le code est simple et ne détaille pas toutes les étapes nécessaires pour terminer une fonction. Si les objets qu'ils utilisent sont immuables, ce qu'ils sont généralement en programmation déclarative, les fonctions se comporteront de la même manière à chaque exécution, sans avoir d'effets secondaires dans une autre partie du programme.
Un effet secondaire modifie souvent l'état du programme lui-même, pas seulement la zone locale dans laquelle il apparaît. Ceci est parfois appelé un changement «global», quand il change les valeurs de variables en dehors de la zone locale de cette fonction particulière. Bien sûr, pour qu'une application ou un programme informatique fonctionne, il doit permettre la modification par des effets secondaires: les résultats doivent parfois changer. Et les bases de données auront de nombreux effets secondaires à mesure que les données changent et muteront. Mais la programmation purement fonctionnelle présente également des avantages.
La programmation fonctionnelle, qui évite les effets secondaires, est plus facile à lire et à analyser pour les développeurs. Les fonctions pures (qui n'ont pas d'effets secondaires) effectuent le même calcul à chaque fois qu'elles sont répétées, sans variation ni effet secondaire. Éviter les effets secondaires dans un programme le rend plus lisible et plus fiable.