¿Cuál es la historia o explicación del término ‘efecto secundario’ utilizado por la comunidad de programación funcional para hablar sobre el estado y la IO?

En estos días, los “efectos secundarios” NO son lo que significa en medicina. Cuando lo dicen hoy se refieren a cualquier efecto observable que una función tenga fuera transformando la entrada en la salida. Las funciones que no tienen efectos secundarios se llaman “pura”.

Si crear software a partir de funciones puras le parece ridículo, también lo hizo históricamente para la comunidad. Hoy en día nos estamos dando cuenta cada vez más de que, por muy tontas que sean las funciones puras, las funciones con efectos secundarios son incluso más tontas 🙂

Se trata de costos. Para un gran sistema a largo plazo, usar solo funciones puras en alguna área podría ser más barato. Económicamente quiero decir.

Las cosas se ven afectadas aparte de la intención principal.

Puede descubrir que ha creado un efecto secundario al hacer algo que tenía la intención de hacer, lo que tuvo consecuencias imprevistas en otra parte …

Esta es la misma connotación que con la medicina. Toma una pastilla para cambiar algo, para solucionar un problema … … pero algún otro proceso no espera el cambio realizado y se comporta de manera diferente. Es un efecto aparte del cambio que buscabas afectar.