Puedo ver los beneficios de los objetos mutables frente a los inmutables, como los objetos inmutables que eliminan muchos problemas difíciles de solucionar en la programación de subprocesos múltiples debido al estado compartido y de escritura. Por el contrario, los objetos mutables ayudan a tratar con la identidad del objeto en lugar de crear una copia nueva cada vez y, por lo tanto, también mejoran el rendimiento y el uso de la memoria, especialmente para objetos más grandes.
Una cosa que estoy tratando de entender es qué puede salir mal al tener objetos mutables en el contexto de la programación funcional. Como uno de los puntos que me dijeron es que el resultado de llamar a funciones en un orden diferente no es determinista.
Estoy buscando un ejemplo concreto real en el que sea muy evidente lo que puede salir mal usando un objeto mutable en la programación de funciones. Básicamente, si es malo, es malo independientemente de OO o paradigma de programación funcional, ¿verdad?
Creo que debajo de mi propia declaración responde esta pregunta. Pero aún así necesito algún ejemplo para poder sentirlo más naturalmente.
OO ayuda a gestionar la dependencia y a escribir programas más fáciles y fáciles de mantener con la ayuda de herramientas como encapsulación, polimorfismo, etc.
La programación funcional también tiene el mismo motivo de promover el código mantenible, pero mediante el uso de un estilo que elimina la necesidad de utilizar herramientas y técnicas de OO, una de las cuales creo que es minimizar los efectos secundarios, la función pura, etc.